Index: chrome/browser/search_engines/template_url_service_unittest.cc |
diff --git a/chrome/browser/search_engines/template_url_service_unittest.cc b/chrome/browser/search_engines/template_url_service_unittest.cc |
index 0256bf644ed4412d287a4541e154887e5c38d8cb..1355dd63f53e758831ee9730b416cd54ce176d19 100644 |
--- a/chrome/browser/search_engines/template_url_service_unittest.cc |
+++ b/chrome/browser/search_engines/template_url_service_unittest.cc |
@@ -922,6 +922,109 @@ TEST_F(TemplateURLServiceTest, DefaultSearchProviderLoadedFromPrefs) { |
AssertEquals(*cloned_url, *model()->GetDefaultSearchProvider()); |
} |
+TEST_F(TemplateURLServiceTest, DefaultSearchProviderClearFromPrefs) { |
+ test_util_.VerifyLoad(); |
+ |
+ TemplateURLData data; |
+ data.short_name = ASCIIToUTF16("a"); |
+ data.safe_for_autoreplace = true; |
+ data.SetURL("http://url/{searchTerms}"); |
+ data.suggestions_url = "http://url2"; |
+ data.instant_url = "http://instant"; |
+ data.date_created = Time::FromTimeT(100); |
+ data.last_modified = Time::FromTimeT(100); |
+ TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); |
+ model()->Add(t_url); |
+ model()->SetDefaultSearchProvider(t_url); |
+ // This should overwrite default search engine in user prefs. |
+ model()->ClearDefaultProviderFromPrefs(); |
+ |
+ test_util_.ResetModel(false); |
+ const TemplateURL* default_turl = model()->GetDefaultSearchProvider(); |
+ scoped_ptr<TemplateURL> default_prepopulated( |
+ TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch( |
+ test_util_.profile())); |
+ ExpectSimilar(default_prepopulated.get(), default_turl); |
+} |
+ |
+TEST_F(TemplateURLServiceTest, ResetNonExtensionURLs) { |
+ test_util_.VerifyLoad(); |
+ |
+ TemplateURL* new_provider = AddKeywordWithDate( |
+ "short_name", "keyword", "http://test.com/search?t={searchTerms}", |
+ std::string(), std::string(), std::string(), |
+ true, "UTF-8", Time(), Time()); |
+ model()->SetDefaultSearchProvider(new_provider); |
+ AddKeywordWithDate( |
+ "extension1", "ext_keyword", |
+ std::string(extensions::kExtensionScheme) + "://test1", std::string(), |
+ std::string(), std::string(), false, "UTF-8", Time(), Time()); |
+ TemplateURL* default_provider = model()->GetDefaultSearchProvider(); |
+ EXPECT_NE(SEARCH_ENGINE_GOOGLE, |
+ TemplateURLPrepopulateData::GetEngineType(default_provider->url())); |
+ |
+ // Non-extension URLs should go away. Default search engine is Google again. |
+ model()->ResetNonExtensionURLs(); |
+ default_provider = model()->GetDefaultSearchProvider(); |
+ ASSERT_TRUE(default_provider); |
+ EXPECT_EQ(SEARCH_ENGINE_GOOGLE, |
+ TemplateURLPrepopulateData::GetEngineType(default_provider->url())); |
+ EXPECT_TRUE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext_keyword"))); |
+ EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); |
+ |
+ // Reload URLs. Result should be the same except that extension keywords |
+ // aren't persisted. |
+ test_util_.ResetModel(true); |
+ default_provider = model()->GetDefaultSearchProvider(); |
+ ASSERT_TRUE(default_provider); |
+ EXPECT_EQ(SEARCH_ENGINE_GOOGLE, |
+ TemplateURLPrepopulateData::GetEngineType(default_provider->url())); |
+ EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext_keyword"))); |
+ EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); |
+} |
+ |
+TEST_F(TemplateURLServiceTest, ResetURLsWithManagedDefault) { |
+ // Set a managed preference that establishes a default search provider. |
+ const char kName[] = "test1"; |
+ const char kKeyword[] = "test.com"; |
+ const char kSearchURL[] = "http://test.com/search?t={searchTerms}"; |
+ const char kIconURL[] = "http://test.com/icon.jpg"; |
+ const char kEncodings[] = "UTF-16;UTF-32"; |
+ const char kAlternateURL[] = "http://test.com/search#t={searchTerms}"; |
+ const char kSearchTermsReplacementKey[] = "espv"; |
+ test_util_.SetManagedDefaultSearchPreferences(true, kName, kKeyword, |
+ kSearchURL, std::string(), |
+ kIconURL, kEncodings, |
+ kAlternateURL, |
+ kSearchTermsReplacementKey); |
+ test_util_.VerifyLoad(); |
+ // Verify that the default manager we are getting is the managed one. |
+ TemplateURLData data; |
+ data.short_name = ASCIIToUTF16(kName); |
+ data.SetKeyword(ASCIIToUTF16(kKeyword)); |
+ data.SetURL(kSearchURL); |
+ data.favicon_url = GURL(kIconURL); |
+ data.show_in_default_list = true; |
+ base::SplitString(kEncodings, ';', &data.input_encodings); |
+ data.alternate_urls.push_back(kAlternateURL); |
+ data.search_terms_replacement_key = kSearchTermsReplacementKey; |
+ Profile* profile = test_util_.profile(); |
+ scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(profile, |
+ data)); |
+ EXPECT_TRUE(model()->is_default_search_managed()); |
+ const TemplateURL* actual_managed_default = |
+ model()->GetDefaultSearchProvider(); |
+ ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
+ |
+ // The following calls have no effect on managed search engine. |
+ model()->ClearDefaultProviderFromPrefs(); |
+ model()->ResetNonExtensionURLs(); |
+ |
+ EXPECT_TRUE(model()->is_default_search_managed()); |
+ actual_managed_default = model()->GetDefaultSearchProvider(); |
+ ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
+} |
+ |
TEST_F(TemplateURLServiceTest, UpdateKeywordSearchTermsForURL) { |
struct TestData { |
const std::string url; |