| Index: chrome/browser/intents/web_intents_registry_unittest.cc
|
| diff --git a/chrome/browser/intents/web_intents_registry_unittest.cc b/chrome/browser/intents/web_intents_registry_unittest.cc
|
| index 0ff565e4ce7be39a415ee157c1b067767c714224..ef1a1e1008edf08118ef52cafcbda5a357283b10 100644
|
| --- a/chrome/browser/intents/web_intents_registry_unittest.cc
|
| +++ b/chrome/browser/intents/web_intents_registry_unittest.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/scoped_temp_dir.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "chrome/browser/extensions/test_extension_service.h"
|
| +#include "chrome/browser/intents/default_web_intent_service.h"
|
| #include "chrome/browser/intents/web_intents_registry.h"
|
| #include "chrome/browser/webdata/web_data_service.h"
|
| #include "chrome/common/chrome_paths.h"
|
| @@ -127,6 +128,16 @@ class TestConsumer: public WebIntentsRegistry::Consumer {
|
| MessageLoop::current()->Quit();
|
| }
|
|
|
| + virtual void OnIntentsDefaultsQueryDone(
|
| + WebIntentsRegistry::QueryID id,
|
| + const DefaultWebIntentService& default_service) {
|
| + DCHECK(id == expected_id_);
|
| + default_ = default_service;
|
| +
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + MessageLoop::current()->Quit();
|
| + }
|
| +
|
| // Wait for the UI message loop to terminate - happens when OnIntesQueryDone
|
| // is invoked.
|
| void WaitForData() {
|
| @@ -139,6 +150,9 @@ class TestConsumer: public WebIntentsRegistry::Consumer {
|
|
|
| // Result data from callback.
|
| std::vector<webkit_glue::WebIntentServiceData> services_;
|
| +
|
| + // Result default data from callback.
|
| + DefaultWebIntentService default_;
|
| };
|
|
|
| TEST_F(WebIntentsRegistryTest, BasicTests) {
|
| @@ -327,3 +341,57 @@ TEST_F(WebIntentsRegistryTest, GetIntentsWithMimeMatching) {
|
| EXPECT_EQ(services[2], consumer.services_[2]);
|
| EXPECT_EQ(services[3], consumer.services_[3]);
|
| }
|
| +
|
| +TEST_F(WebIntentsRegistryTest, TestGetDefaults) {
|
| + DefaultWebIntentService default_service;
|
| + default_service.action = ASCIIToUTF16("share");
|
| + default_service.type = ASCIIToUTF16("type/*");
|
| + // Values here are just dummies to test for preservation.
|
| + default_service.user_date = 1;
|
| + default_service.suppression = 4;
|
| + default_service.service_url = "service_url";
|
| + registry_.RegisterDefaultIntentService(default_service);
|
| +
|
| + TestConsumer consumer;
|
| +
|
| + // Test we can retrieve default entries by action.
|
| + consumer.expected_id_ = registry_.GetDefaultIntentService(
|
| + ASCIIToUTF16("share"),
|
| + ASCIIToUTF16("type/plain"),
|
| + GURL("http://www.google.com/"),
|
| + &consumer);
|
| +
|
| + consumer.WaitForData();
|
| +
|
| + EXPECT_EQ("service_url", consumer.default_.service_url);
|
| + EXPECT_EQ(1, consumer.default_.user_date);
|
| + EXPECT_EQ(4, consumer.default_.suppression);
|
| +
|
| + // Test that no action match means we don't retrieve any
|
| + // default entries.
|
| + consumer.default_ = DefaultWebIntentService();
|
| + ASSERT_EQ("", consumer.default_.service_url);
|
| + consumer.expected_id_ = registry_.GetDefaultIntentService(
|
| + ASCIIToUTF16("no-share"),
|
| + ASCIIToUTF16("type/plain"),
|
| + GURL("http://www.google.com/"),
|
| + &consumer);
|
| +
|
| + consumer.WaitForData();
|
| +
|
| + EXPECT_EQ("", consumer.default_.service_url);
|
| +
|
| + // Test that no type match means we don't retrieve any
|
| + // default entries (they get filtered out).
|
| + consumer.default_ = DefaultWebIntentService();
|
| + ASSERT_EQ("", consumer.default_.service_url);
|
| + consumer.expected_id_ = registry_.GetDefaultIntentService(
|
| + ASCIIToUTF16("share"),
|
| + ASCIIToUTF16("notype/plain"),
|
| + GURL("http://www.google.com/"),
|
| + &consumer);
|
| +
|
| + consumer.WaitForData();
|
| +
|
| + EXPECT_EQ("", consumer.default_.service_url);
|
| +}
|
|
|