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); |
// 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); |
} |