| Index: chrome/browser/search_engines/default_search_manager_unittest.cc
|
| diff --git a/chrome/browser/search_engines/default_search_manager_unittest.cc b/chrome/browser/search_engines/default_search_manager_unittest.cc
|
| index cfa6e5e0fd1f25e4beed6aa9dd667fafca9ce86e..19c0fca167630cc25e679654d66ce50b4cda0d86 100644
|
| --- a/chrome/browser/search_engines/default_search_manager_unittest.cc
|
| +++ b/chrome/browser/search_engines/default_search_manager_unittest.cc
|
| @@ -153,59 +153,81 @@ class DefaultSearchManagerTest : public testing::Test {
|
| DISALLOW_COPY_AND_ASSIGN(DefaultSearchManagerTest);
|
| };
|
|
|
| +// Test that a TemplateURLData object is properly written and read from Prefs.
|
| +TEST_F(DefaultSearchManagerTest, ReadAndWritePref) {
|
| + DefaultSearchManager manager(pref_service(),
|
| + DefaultSearchManager::ObserverCallback());
|
| + TemplateURLData data;
|
| + data.short_name = base::UTF8ToUTF16("name1");
|
| + data.SetKeyword(base::UTF8ToUTF16("key1"));
|
| + data.SetURL("http://foo1/{searchTerms}");
|
| + data.suggestions_url = "http://sugg1";
|
| + data.alternate_urls.push_back("http://foo1/alt");
|
| + data.favicon_url = GURL("http://icon1");
|
| + data.safe_for_autoreplace = true;
|
| + data.show_in_default_list = true;
|
| + base::SplitString("UTF-8;UTF-16", ';', &data.input_encodings);
|
| + data.date_created = base::Time();
|
| + data.last_modified = base::Time();
|
| +
|
| + manager.SetUserSelectedDefaultSearchEngine(data);
|
| + TemplateURLData* read_data = manager.GetDefaultSearchEngine(NULL);
|
| + ExpectSimilar(&data, read_data);
|
| +}
|
| +
|
| // Test DefaultSearchmanager handles user-selected DSEs correctly.
|
| TEST_F(DefaultSearchManagerTest, DefaultSearchSetByUserPref) {
|
| size_t default_search_index = 0;
|
| - DefaultSearchManager manager(pref_service());
|
| + DefaultSearchManager manager(pref_service(),
|
| + DefaultSearchManager::ObserverCallback());
|
| ScopedVector<TemplateURLData> prepopulated_urls =
|
| TemplateURLPrepopulateData::GetPrepopulatedEngines(pref_service(),
|
| &default_search_index);
|
| + DefaultSearchManager::Source source = DefaultSearchManager::FROM_POLICY;
|
| // If no user pref is set, we should use the pre-populated values.
|
| ExpectSimilar(prepopulated_urls[default_search_index],
|
| - manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK,
|
| - manager.GetDefaultSearchEngineSource());
|
| + manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_FALLBACK, source);
|
|
|
| // Setting a user pref overrides the pre-populated values.
|
| scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user");
|
| manager.SetUserSelectedDefaultSearchEngine(*data.get());
|
|
|
| - ExpectSimilar(data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_USER,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_USER, source);
|
|
|
| // Updating the user pref (externally to this instance of
|
| // DefaultSearchManager) triggers an update.
|
| scoped_ptr<TemplateURLData> new_data = GenerateDummyTemplateURLData("user2");
|
| - DefaultSearchManager other_manager(pref_service());
|
| + DefaultSearchManager other_manager(pref_service(),
|
| + DefaultSearchManager::ObserverCallback());
|
| other_manager.SetUserSelectedDefaultSearchEngine(*new_data.get());
|
|
|
| - ExpectSimilar(new_data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_USER,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(new_data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_USER, source);
|
|
|
| // Clearing the user pref should cause the default search to revert to the
|
| // prepopulated vlaues.
|
| manager.ClearUserSelectedDefaultSearchEngine();
|
| ExpectSimilar(prepopulated_urls[default_search_index],
|
| - manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK,
|
| - manager.GetDefaultSearchEngineSource());
|
| + manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_FALLBACK, source);
|
| }
|
|
|
| // Test that DefaultSearch manager detects changes to kSearchProviderOverrides.
|
| TEST_F(DefaultSearchManagerTest, DefaultSearchSetByOverrides) {
|
| SetOverrides(pref_service(), false);
|
| size_t default_search_index = 0;
|
| - DefaultSearchManager manager(pref_service());
|
| + DefaultSearchManager manager(pref_service(),
|
| + DefaultSearchManager::ObserverCallback());
|
| ScopedVector<TemplateURLData> prepopulated_urls =
|
| TemplateURLPrepopulateData::GetPrepopulatedEngines(pref_service(),
|
| &default_search_index);
|
|
|
| - TemplateURLData first_default(*manager.GetDefaultSearchEngine());
|
| + DefaultSearchManager::Source source = DefaultSearchManager::FROM_POLICY;
|
| + TemplateURLData first_default(*manager.GetDefaultSearchEngine(&source));
|
| ExpectSimilar(prepopulated_urls[default_search_index], &first_default);
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK,
|
| - manager.GetDefaultSearchEngineSource());
|
| + EXPECT_EQ(DefaultSearchManager::FROM_FALLBACK, source);
|
|
|
| // Update the overrides:
|
| SetOverrides(pref_service(), true);
|
| @@ -214,73 +236,69 @@ TEST_F(DefaultSearchManagerTest, DefaultSearchSetByOverrides) {
|
|
|
| // Make sure DefaultSearchManager updated:
|
| ExpectSimilar(prepopulated_urls[default_search_index],
|
| - manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK,
|
| - manager.GetDefaultSearchEngineSource());
|
| - EXPECT_NE(manager.GetDefaultSearchEngine()->short_name,
|
| + manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_FALLBACK, source);
|
| + EXPECT_NE(manager.GetDefaultSearchEngine(NULL)->short_name,
|
| first_default.short_name);
|
| - EXPECT_NE(manager.GetDefaultSearchEngine()->keyword(),
|
| + EXPECT_NE(manager.GetDefaultSearchEngine(NULL)->keyword(),
|
| first_default.keyword());
|
| }
|
|
|
| // Test DefaultSearchManager handles policy-enforced DSEs correctly.
|
| TEST_F(DefaultSearchManagerTest, DefaultSearchSetByPolicy) {
|
| - DefaultSearchManager manager(pref_service());
|
| + DefaultSearchManager manager(pref_service(),
|
| + DefaultSearchManager::ObserverCallback());
|
| scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user");
|
| manager.SetUserSelectedDefaultSearchEngine(*data.get());
|
|
|
| - ExpectSimilar(data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_USER,
|
| - manager.GetDefaultSearchEngineSource());
|
| + DefaultSearchManager::Source source = DefaultSearchManager::FROM_FALLBACK;
|
| + ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_USER, source);
|
|
|
| scoped_ptr<TemplateURLData> policy_data =
|
| GenerateDummyTemplateURLData("policy");
|
| SetPolicy(pref_service(), true, policy_data.get());
|
|
|
| - ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_POLICY, source);
|
|
|
| TemplateURLData null_policy_data;
|
| SetPolicy(pref_service(), false, &null_policy_data);
|
| - EXPECT_EQ(NULL, manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY,
|
| - manager.GetDefaultSearchEngineSource());
|
| + EXPECT_EQ(NULL, manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_POLICY, source);
|
|
|
| pref_service()->RemoveManagedPref(kDefaultSearchProviderData);
|
| - ExpectSimilar(data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_USER,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_USER, source);
|
| }
|
|
|
| // Test DefaultSearchManager handles extension-controlled DSEs correctly.
|
| TEST_F(DefaultSearchManagerTest, DefaultSearchSetByExtension) {
|
| - DefaultSearchManager manager(pref_service());
|
| + DefaultSearchManager manager(pref_service(),
|
| + DefaultSearchManager::ObserverCallback());
|
| scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user");
|
| - manager.SetUserSelectedDefaultSearchEngine(*data.get());
|
| + manager.SetUserSelectedDefaultSearchEngine(*data);
|
|
|
| - ExpectSimilar(data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_USER,
|
| - manager.GetDefaultSearchEngineSource());
|
| + DefaultSearchManager::Source source = DefaultSearchManager::FROM_FALLBACK;
|
| + ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_USER, source);
|
|
|
| // Extension trumps prefs:
|
| scoped_ptr<TemplateURLData> extension_data_1 =
|
| GenerateDummyTemplateURLData("ext1");
|
| - TemplateURLData tmp = *extension_data_1.get();
|
| - manager.SetExtensionControlledDefaultSearchEngine(extension_data_1.release());
|
| + manager.SetExtensionControlledDefaultSearchEngine(*extension_data_1);
|
|
|
| - ExpectSimilar(&tmp, manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(extension_data_1.get(),
|
| + manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_EXTENSION, source);
|
|
|
| // Policy trumps extension:
|
| scoped_ptr<TemplateURLData> policy_data =
|
| GenerateDummyTemplateURLData("policy");
|
| SetPolicy(pref_service(), true, policy_data.get());
|
|
|
| - ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_POLICY, source);
|
| pref_service()->RemoveManagedPref(kDefaultSearchProviderData);
|
|
|
| // Extensions trump each other:
|
| @@ -288,17 +306,15 @@ TEST_F(DefaultSearchManagerTest, DefaultSearchSetByExtension) {
|
| GenerateDummyTemplateURLData("ext2");
|
| scoped_ptr<TemplateURLData> extension_data_3 =
|
| GenerateDummyTemplateURLData("ext3");
|
| - tmp = *extension_data_3.get();
|
| - manager.SetExtensionControlledDefaultSearchEngine(extension_data_2.release());
|
| - manager.SetExtensionControlledDefaultSearchEngine(extension_data_3.release());
|
| + manager.SetExtensionControlledDefaultSearchEngine(*extension_data_2);
|
| + manager.SetExtensionControlledDefaultSearchEngine(*extension_data_3);
|
|
|
| - ExpectSimilar(&tmp, manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(extension_data_3.get(),
|
| + manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_EXTENSION, source);
|
|
|
| manager.ClearExtensionControlledDefaultSearchEngine();
|
|
|
| - ExpectSimilar(data.get(), manager.GetDefaultSearchEngine());
|
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_USER,
|
| - manager.GetDefaultSearchEngineSource());
|
| + ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
|
| + EXPECT_EQ(DefaultSearchManager::FROM_USER, source);
|
| }
|
|
|