Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm

Issue 11009017: Mac Web Intents Part 11: Progress view (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: a Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698