Index: chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm |
diff --git a/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm b/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm |
index 4f0c1bcc3d6191433d516bf9584c15fe603397f8..dbee2f73ab05821c5b9ed1683f1ac30df1692392 100644 |
--- a/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm |
+++ b/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm |
@@ -7,7 +7,10 @@ |
#include "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_controller.h" |
#import "chrome/browser/ui/cocoa/intents/web_intent_picker_cocoa2.h" |
#import "chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.h" |
+#import "chrome/browser/ui/cocoa/intents/web_intent_view_controller_message.h" |
+#import "chrome/browser/ui/cocoa/intents/web_intent_view_controller_progress.h" |
#include "chrome/browser/ui/cocoa/run_loop_testing.h" |
+#import "chrome/browser/ui/cocoa/spinner_progress_indicator.h" |
#include "chrome/browser/ui/intents/web_intent_picker_delegate_mock.h" |
#include "chrome/browser/ui/tab_contents/tab_contents.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
@@ -58,6 +61,16 @@ IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, View) { |
[[controller_ view] window]); |
} |
+// Test the "waiting for chrome web store" state. |
+IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, Waiting) { |
+ model_.SetWaitingForSuggestions(true); |
+ EXPECT_EQ(PICKER_STATE_WAITING, [controller_ state]); |
+ WebIntentViewControllerProgress* progress_controller = |
+ [controller_ progressViewController]; |
+ EXPECT_NSEQ([controller_ view], [[progress_controller view] superview]); |
+ EXPECT_TRUE([[progress_controller progressIndicator] isIndeterminate]); |
+} |
+ |
// Test the "no matching services" state. |
IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, NoServices) { |
model_.SetWaitingForSuggestions(false); |
@@ -66,3 +79,29 @@ IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, NoServices) { |
[controller_ messageViewController]; |
EXPECT_NSEQ([controller_ view], [[message_controller view] superview]); |
} |
+ |
+// Test the "installing a service" state. |
+IN_PROC_BROWSER_TEST_F(WebIntentPickerViewControllerTest, Installing) { |
+ // Add a suggested service. |
+ std::vector<WebIntentPickerModel::SuggestedExtension> suggestions; |
+ WebIntentPickerModel::SuggestedExtension suggestion( |
+ ASCIIToUTF16("Title"), "1234", 2); |
+ suggestions.push_back(suggestion); |
+ model_.AddSuggestedExtensions(suggestions); |
+ |
+ // Set a pending extension download. |
+ model_.SetWaitingForSuggestions(false); |
+ model_.SetPendingInstallExtensionId(suggestion.id); |
+ EXPECT_EQ(PICKER_STATE_INSTALLING_EXTENSION, [controller_ state]); |
+ |
+ WebIntentViewControllerProgress* progress_controller = |
+ [controller_ progressViewController]; |
+ EXPECT_NSEQ([controller_ view], [[progress_controller view] superview]); |
+ SpinnerProgressIndicator* progress_indicator = |
+ [progress_controller progressIndicator]; |
+ EXPECT_FALSE([progress_indicator isIndeterminate]); |
+ |
+ int percent_done = 50; |
+ model_.SetPendingInstallDownloadPercent(percent_done); |
+ EXPECT_EQ(percent_done, [progress_indicator percentDone]); |
+} |