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

Unified Diff: chrome/browser/ui/intents/web_intent_picker_controller_browsertest.cc

Issue 10204010: Handling default service in the web intents picker controller. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
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_);
+}
« no previous file with comments | « chrome/browser/ui/intents/web_intent_picker_controller.cc ('k') | chrome/browser/ui/intents/web_intent_picker_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698