OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/utf_string_conversions.h" | 5 #include "base/utf_string_conversions.h" |
6 #include "chrome/browser/ui/browser.h" | 6 #include "chrome/browser/ui/browser.h" |
7 #include "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_co
ntroller.h" | 7 #include "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_co
ntroller.h" |
8 #import "chrome/browser/ui/cocoa/intents/web_intent_message_view_controller.h" | 8 #import "chrome/browser/ui/cocoa/intents/web_intent_message_view_controller.h" |
9 #import "chrome/browser/ui/cocoa/intents/web_intent_picker_cocoa2.h" | 9 #import "chrome/browser/ui/cocoa/intents/web_intent_picker_cocoa2.h" |
10 #import "chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.h" | 10 #import "chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.h" |
| 11 #import "chrome/browser/ui/cocoa/intents/web_intent_progress_view_controller.h" |
11 #import "chrome/browser/ui/cocoa/key_equivalent_constants.h" | 12 #import "chrome/browser/ui/cocoa/key_equivalent_constants.h" |
12 #include "chrome/browser/ui/cocoa/run_loop_testing.h" | 13 #include "chrome/browser/ui/cocoa/run_loop_testing.h" |
| 14 #import "chrome/browser/ui/cocoa/spinner_progress_indicator.h" |
13 #include "chrome/browser/ui/intents/web_intent_picker_delegate_mock.h" | 15 #include "chrome/browser/ui/intents/web_intent_picker_delegate_mock.h" |
14 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 16 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
15 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 17 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
16 #include "chrome/test/base/in_process_browser_test.h" | 18 #include "chrome/test/base/in_process_browser_test.h" |
17 #include "content/public/browser/web_contents.h" | 19 #include "content/public/browser/web_contents.h" |
18 #import "testing/gtest_mac.h" | 20 #import "testing/gtest_mac.h" |
19 | 21 |
20 namespace { | 22 namespace { |
21 | 23 |
22 NSString* const kTitle = @"A quick brown fox jumps over the lazy dog."; | 24 NSString* const kTitle = @"A quick brown fox jumps over the lazy dog."; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 | 64 |
63 // Test the close button. | 65 // Test the close button. |
64 IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, CloseButton) { | 66 IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, CloseButton) { |
65 EXPECT_NSEQ([controller_ view], | 67 EXPECT_NSEQ([controller_ view], |
66 [[controller_ closeButton] superview]); | 68 [[controller_ closeButton] superview]); |
67 EXPECT_NSEQ(kKeyEquivalentEscape, [[controller_ closeButton] keyEquivalent]); | 69 EXPECT_NSEQ(kKeyEquivalentEscape, [[controller_ closeButton] keyEquivalent]); |
68 EXPECT_CALL(delegate_, OnUserCancelledPickerDialog()); | 70 EXPECT_CALL(delegate_, OnUserCancelledPickerDialog()); |
69 [[controller_ closeButton] performClick:nil]; | 71 [[controller_ closeButton] performClick:nil]; |
70 } | 72 } |
71 | 73 |
| 74 // Test the "waiting for chrome web store" state. |
| 75 IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, Waiting) { |
| 76 model_.SetWaitingForSuggestions(true); |
| 77 EXPECT_EQ(PICKER_STATE_WAITING, [controller_ state]); |
| 78 WebIntentProgressViewController* progress_controller = |
| 79 [controller_ progressViewController]; |
| 80 EXPECT_NSEQ([controller_ view], [[progress_controller view] superview]); |
| 81 EXPECT_TRUE([[progress_controller progressIndicator] isIndeterminate]); |
| 82 } |
| 83 |
72 // Test the "no matching services" state. | 84 // Test the "no matching services" state. |
73 IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, NoServices) { | 85 IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, NoServices) { |
74 model_.SetWaitingForSuggestions(false); | 86 model_.SetWaitingForSuggestions(false); |
75 EXPECT_EQ(PICKER_STATE_NO_SERVICE, [controller_ state]); | 87 EXPECT_EQ(PICKER_STATE_NO_SERVICE, [controller_ state]); |
76 WebIntentMessageViewController* message_controller = | 88 WebIntentMessageViewController* message_controller = |
77 [controller_ messageViewController]; | 89 [controller_ messageViewController]; |
78 EXPECT_NSEQ([controller_ view], [[message_controller view] superview]); | 90 EXPECT_NSEQ([controller_ view], [[message_controller view] superview]); |
79 } | 91 } |
| 92 |
| 93 // Test the "installing a service" state. |
| 94 IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, Installing) { |
| 95 // Add a suggested service. |
| 96 std::vector<WebIntentPickerModel::SuggestedExtension> suggestions; |
| 97 WebIntentPickerModel::SuggestedExtension suggestion( |
| 98 ASCIIToUTF16("Title"), "1234", 2); |
| 99 suggestions.push_back(suggestion); |
| 100 model_.AddSuggestedExtensions(suggestions); |
| 101 |
| 102 // Set a pending extension download. |
| 103 model_.SetWaitingForSuggestions(false); |
| 104 model_.SetPendingExtensionInstallId(suggestion.id); |
| 105 EXPECT_EQ(PICKER_STATE_INSTALLING_EXTENSION, [controller_ state]); |
| 106 |
| 107 WebIntentProgressViewController* progress_controller = |
| 108 [controller_ progressViewController]; |
| 109 EXPECT_NSEQ([controller_ view], [[progress_controller view] superview]); |
| 110 SpinnerProgressIndicator* progress_indicator = |
| 111 [progress_controller progressIndicator]; |
| 112 EXPECT_FALSE([progress_indicator isIndeterminate]); |
| 113 |
| 114 int percent_done = 50; |
| 115 model_.SetPendingExtensionInstallDownloadProgress(percent_done); |
| 116 EXPECT_EQ(percent_done, [progress_indicator percentDone]); |
| 117 } |
OLD | NEW |