Index: chrome/browser/ui/intents/web_intent_picker_controller_browsertest.cc |
diff --git a/chrome/browser/ui/intents/web_intent_picker_controller_browsertest.cc b/chrome/browser/ui/intents/web_intent_picker_controller_browsertest.cc |
index f89997c9ae8f18ab4458fba32dfcad510df6aceb..bfa8ec04e89511c1d85d9fb70559d19c48ef107c 100644 |
--- a/chrome/browser/ui/intents/web_intent_picker_controller_browsertest.cc |
+++ b/chrome/browser/ui/intents/web_intent_picker_controller_browsertest.cc |
@@ -11,9 +11,8 @@ |
#include "base/stringprintf.h" |
#include "base/string_util.h" |
#include "base/utf_string_conversions.h" |
+#include "chrome/browser/intents/default_web_intent_service.h" |
#include "chrome/browser/favicon/favicon_service.h" |
-#include "chrome/browser/intents/web_intents_registry.h" |
-#include "chrome/browser/intents/web_intents_registry_factory.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/intents/web_intent_picker.h" |
@@ -286,6 +285,16 @@ class WebIntentPickerControllerBrowserTest : public InProcessBrowserTest { |
true); |
} |
+ void SetDefaultService(const string16& action, |
+ const std::string& url) { |
+ DefaultWebIntentService default_service; |
+ default_service.action = action; |
+ default_service.type = kType1; |
+ default_service.user_date = 1000000; |
+ default_service.service_url = url; |
+ web_data_service_->AddDefaultWebIntentService(default_service); |
+ } |
+ |
void OnSendReturnMessage( |
webkit_glue::WebIntentReplyType reply_type) { |
controller_->OnSendReturnMessage(reply_type); |
@@ -562,3 +571,31 @@ IN_PROC_BROWSER_TEST_F(WebIntentPickerControllerBrowserTest, |
EXPECT_EQ(0, picker_.num_installed_services_); |
EXPECT_TRUE(dispatcher.replied_); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(WebIntentPickerControllerBrowserTest, |
+ DefaultsTest) { |
+ AddWebIntentService(kAction1, kServiceURL1); |
+ AddWebIntentService(kAction1, kServiceURL2); |
+ |
+ SetDefaultService(kAction1, kServiceURL1.spec()); |
+ |
+ webkit_glue::WebIntentData intent; |
+ intent.action = kAction1; |
+ intent.type = kType1; |
+ IntentsDispatcherMock dispatcher(intent); |
+ controller_->SetIntentsDispatcher(&dispatcher); |
+ |
+ ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer(( |
+ content::Source<content::WebContentsDelegate>(browser()))); |
+ controller_->ShowDialog(kAction1, kType1); |
+ new_tab_observer.Wait(); |
+ |
+ EXPECT_EQ(2, picker_.num_installed_services_); |
+ |
+ // The tab is shown immediately without needing to call OnServiceChosen. |
+ ASSERT_EQ(2, browser()->tab_count()); |
+ EXPECT_EQ(GURL(kServiceURL1), |
+ browser()->GetSelectedWebContents()->GetURL()); |
+ |
+ EXPECT_TRUE(dispatcher.dispatched_); |
+} |