Chromium Code Reviews| 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..c18a13a19caac2ab8ce47db7806be4487be5fe0e 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::Source::FROM_FALLBACK, source); |
|
Peter Kasting
2014/05/03 00:28:18
As the compile failures note, you need to change a
erikwright (departed)
2014/05/05 01:49:38
Done.
|
| // 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::Source::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::Source::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::Source::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::Source::FROM_FALLBACK, source); |
| // Update the overrides: |
| SetOverrides(pref_service(), true); |
| @@ -214,54 +236,52 @@ 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::Source::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::Source::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::Source::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::Source::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::Source::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()); |
| - 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::Source::FROM_USER, source); |
| // Extension trumps prefs: |
| scoped_ptr<TemplateURLData> extension_data_1 = |
| @@ -269,18 +289,16 @@ TEST_F(DefaultSearchManagerTest, DefaultSearchSetByExtension) { |
| TemplateURLData tmp = *extension_data_1.get(); |
| manager.SetExtensionControlledDefaultSearchEngine(extension_data_1.release()); |
| - ExpectSimilar(&tmp, manager.GetDefaultSearchEngine()); |
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION, |
| - manager.GetDefaultSearchEngineSource()); |
| + ExpectSimilar(&tmp, manager.GetDefaultSearchEngine(&source)); |
| + EXPECT_EQ(DefaultSearchManager::Source::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::Source::FROM_POLICY, source); |
| pref_service()->RemoveManagedPref(kDefaultSearchProviderData); |
| // Extensions trump each other: |
| @@ -292,13 +310,11 @@ TEST_F(DefaultSearchManagerTest, DefaultSearchSetByExtension) { |
| manager.SetExtensionControlledDefaultSearchEngine(extension_data_2.release()); |
| manager.SetExtensionControlledDefaultSearchEngine(extension_data_3.release()); |
| - ExpectSimilar(&tmp, manager.GetDefaultSearchEngine()); |
| - EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION, |
| - manager.GetDefaultSearchEngineSource()); |
| + ExpectSimilar(&tmp, manager.GetDefaultSearchEngine(&source)); |
| + EXPECT_EQ(DefaultSearchManager::Source::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::Source::FROM_USER, source); |
| } |