| 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 8aad0ece9ec7bac437cc3de4771ea8096a533b93..23422661c81bb53d1b293b65d7cba01a52f7534d 100644
|
| --- a/chrome/browser/search_engines/template_url_service_unittest.cc
|
| +++ b/chrome/browser/search_engines/template_url_service_unittest.cc
|
| @@ -110,7 +110,7 @@ TemplateURL* CreateKeywordWithDate(
|
| base::SplitString(encodings, ';', &data.input_encodings);
|
| data.date_created = date_created;
|
| data.last_modified = last_modified;
|
| - return new TemplateURL(model->profile(), data);
|
| + return new TemplateURL(data);
|
| }
|
|
|
| TemplateURL* AddKeywordWithDate(
|
| @@ -195,36 +195,6 @@ class TemplateURLServiceTest : public testing::Test {
|
| protected:
|
| TemplateURLServiceTestUtil test_util_;
|
|
|
| - void TestGenerateSearchURL(SearchTermsData* search_terms_data) {
|
| - struct GenerateSearchURLCase {
|
| - const char* test_name;
|
| - const char* url;
|
| - const char* expected;
|
| - } generate_url_cases[] = {
|
| - { "invalid URL", "foo{searchTerms}", "" },
|
| - { "URL with no replacements", "http://foo/", "http://foo/" },
|
| - { "basic functionality", "http://foo/{searchTerms}",
|
| - "http://foo/blah.blah.blah.blah.blah" }
|
| - };
|
| -
|
| - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(generate_url_cases); ++i) {
|
| - TemplateURLData data;
|
| - data.SetURL(generate_url_cases[i].url);
|
| - TemplateURL t_url(NULL, data);
|
| - std::string result;
|
| - if (search_terms_data) {
|
| - result = TemplateURLService::GenerateSearchURLUsingTermsData(
|
| - &t_url, *search_terms_data).spec();
|
| - } else {
|
| - result = TemplateURLService::GenerateSearchURL(&t_url).spec();
|
| - }
|
| - EXPECT_EQ(result, generate_url_cases[i].expected)
|
| - << generate_url_cases[i].test_name << " failed. Expected "
|
| - << generate_url_cases[i].expected << " Actual " << result;
|
| - }
|
| - }
|
| -
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceTest);
|
| };
|
|
|
| @@ -303,7 +273,7 @@ TemplateURL* TemplateURLServiceTest::CreatePreloadedTemplateURL(
|
| data.date_created = Time::FromTimeT(100);
|
| data.last_modified = Time::FromTimeT(100);
|
| data.prepopulate_id = prepopulate_id;
|
| - return new TemplateURL(test_util_.profile(), data);
|
| + return new TemplateURL(data);
|
| }
|
|
|
| void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) {
|
| @@ -337,7 +307,7 @@ TEST_F(TemplateURLServiceTest, AddUpdateRemove) {
|
| data.date_created = Time::FromTimeT(100);
|
| data.last_modified = Time::FromTimeT(100);
|
| data.sync_guid = "00000000-0000-0000-0000-000000000001";
|
| - TemplateURL* t_url = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
| ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(),
|
| NULL));
|
| @@ -348,8 +318,7 @@ TEST_F(TemplateURLServiceTest, AddUpdateRemove) {
|
| // We need to make a second copy as the model takes ownership of |t_url| and
|
| // will delete it. We have to do this after calling Add() since that gives
|
| // |t_url| its ID.
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(),
|
| - t_url->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data()));
|
|
|
| // Reload the model to verify it was actually saved to the database.
|
| test_util_.ResetModel(true);
|
| @@ -378,7 +347,7 @@ TEST_F(TemplateURLServiceTest, AddUpdateRemove) {
|
| ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(),
|
| NULL));
|
| ASSERT_FALSE(model()->CanReplaceKeyword(ASCIIToUTF16("b"), GURL(), NULL));
|
| - cloned_url.reset(new TemplateURL(loaded_url->profile(), loaded_url->data()));
|
| + cloned_url.reset(new TemplateURL(loaded_url->data()));
|
| base::RunLoop().RunUntilIdle();
|
| test_util_.ResetModel(true);
|
| ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size());
|
| @@ -412,7 +381,7 @@ TEST_F(TemplateURLServiceTest, AddSameKeyword) {
|
| data.SetKeyword(ASCIIToUTF16("keyword"));
|
| data.SetURL("http://test2");
|
| data.safe_for_autoreplace = false;
|
| - TemplateURL* t_url = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
|
|
| // Because the old TemplateURL was replaceable and the new one wasn't, the new
|
| @@ -428,7 +397,7 @@ TEST_F(TemplateURLServiceTest, AddSameKeyword) {
|
| data.short_name = ASCIIToUTF16("third");
|
| data.SetURL("http://test3");
|
| data.safe_for_autoreplace = true;
|
| - model()->Add(new TemplateURL(test_util_.profile(), data));
|
| + model()->Add(new TemplateURL(data));
|
| VerifyObserverCount(0);
|
| EXPECT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")));
|
| EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name());
|
| @@ -440,7 +409,7 @@ TEST_F(TemplateURLServiceTest, AddSameKeyword) {
|
| data.short_name = ASCIIToUTF16("fourth");
|
| data.SetURL("http://test4");
|
| data.safe_for_autoreplace = false;
|
| - TemplateURL* t_url2 = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url2 = new TemplateURL(data);
|
| model()->Add(t_url2);
|
| VerifyObserverCount(1);
|
| EXPECT_EQ(t_url2, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")));
|
| @@ -473,14 +442,14 @@ TEST_F(TemplateURLServiceTest, AddExtensionKeyword) {
|
| data.safe_for_autoreplace = false;
|
|
|
| // Both replaceable and non-replaceable keywords should be uniquified.
|
| - TemplateURL* extension1 = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* extension1 = new TemplateURL(data);
|
| model()->Add(extension1);
|
| ASSERT_EQ(extension1,
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1")));
|
| EXPECT_EQ(original1,
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("test1")));
|
| data.SetKeyword(ASCIIToUTF16("keyword2"));
|
| - TemplateURL* extension2 = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* extension2 = new TemplateURL(data);
|
| model()->Add(extension2);
|
| ASSERT_EQ(extension2,
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2")));
|
| @@ -489,7 +458,7 @@ TEST_F(TemplateURLServiceTest, AddExtensionKeyword) {
|
|
|
| // They should override extension keywords added earlier.
|
| data.SetKeyword(ASCIIToUTF16("keyword3"));
|
| - TemplateURL* extension3 = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* extension3 = new TemplateURL(data);
|
| model()->Add(extension3);
|
| ASSERT_EQ(extension3,
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword3")));
|
| @@ -520,7 +489,7 @@ TEST_F(TemplateURLServiceTest, AddSameKeywordWithExtensionPresent) {
|
| data.SetKeyword(ASCIIToUTF16("keyword"));
|
| data.SetURL("http://test3");
|
| data.safe_for_autoreplace = true;
|
| - TemplateURL* t_url = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
| EXPECT_EQ(extension,
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword_")));
|
| @@ -532,7 +501,7 @@ TEST_F(TemplateURLServiceTest, AddSameKeywordWithExtensionPresent) {
|
| data.short_name = ASCIIToUTF16("name2");
|
| data.SetURL("http://test4");
|
| data.safe_for_autoreplace = false;
|
| - TemplateURL* t_url2 = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url2 = new TemplateURL(data);
|
| model()->Add(t_url2);
|
| EXPECT_EQ(t_url2,
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")));
|
| @@ -556,14 +525,28 @@ TEST_F(TemplateURLServiceTest, GenerateKeyword) {
|
| }
|
|
|
| TEST_F(TemplateURLServiceTest, GenerateSearchURL) {
|
| - TestGenerateSearchURL(NULL);
|
| -}
|
| -
|
| -TEST_F(TemplateURLServiceTest, GenerateSearchURLUsingTermsData) {
|
| - // Run the test for GenerateSearchURLUsingTermsData on the "IO" thread and
|
| - // wait for it to finish.
|
| TestSearchTermsData search_terms_data("http://google.com/");
|
| - TestGenerateSearchURL(&search_terms_data);
|
| +
|
| + struct GenerateSearchURLCase {
|
| + const char* test_name;
|
| + const char* url;
|
| + const char* expected;
|
| + } generate_url_cases[] = {
|
| + { "invalid URL", "foo{searchTerms}", "" },
|
| + { "URL with no replacements", "http://foo/", "http://foo/" },
|
| + { "basic functionality", "http://foo/{searchTerms}",
|
| + "http://foo/blah.blah.blah.blah.blah" }
|
| + };
|
| +
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(generate_url_cases); ++i) {
|
| + TemplateURLData data;
|
| + data.SetURL(generate_url_cases[i].url);
|
| + TemplateURL t_url(data);
|
| + std::string result = TemplateURLService::GenerateSearchURL(
|
| + &t_url, search_terms_data).spec();
|
| + EXPECT_EQ(result, generate_url_cases[i].expected)
|
| + << generate_url_cases[i].test_name << " failed.";
|
| + }
|
| }
|
|
|
| TEST_F(TemplateURLServiceTest, ClearBrowsingData_Keywords) {
|
| @@ -691,7 +674,7 @@ TEST_F(TemplateURLServiceTest, Reset) {
|
| data.favicon_url = GURL("http://favicon.url");
|
| data.date_created = Time::FromTimeT(100);
|
| data.last_modified = Time::FromTimeT(100);
|
| - TemplateURL* t_url = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
|
|
| VerifyObserverCount(1);
|
| @@ -715,8 +698,7 @@ TEST_F(TemplateURLServiceTest, Reset) {
|
| ASSERT_TRUE(
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")) == NULL);
|
|
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(),
|
| - t_url->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data()));
|
|
|
| // Reload the model from the database and make sure the change took.
|
| test_util_.ResetModel(true);
|
| @@ -745,8 +727,7 @@ TEST_F(TemplateURLServiceTest, DefaultSearchProvider) {
|
| VerifyObserverCount(1);
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(),
|
| - t_url->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data()));
|
|
|
| // Make sure when we reload we get a default search provider.
|
| test_util_.ResetModel(true);
|
| @@ -817,14 +798,13 @@ TEST_F(TemplateURLServiceTest, DefaultSearchProviderLoadedFromPrefs) {
|
| 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);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
| const TemplateURLID id = t_url->id();
|
|
|
| model()->SetUserSelectedDefaultSearchProvider(t_url);
|
| base::RunLoop().RunUntilIdle();
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(),
|
| - t_url->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data()));
|
|
|
| // Reset the model and don't load it. The template url we set as the default
|
| // should be pulled from prefs now.
|
| @@ -885,7 +865,8 @@ TEST_F(TemplateURLServiceTest, RepairPrepopulatedSearchEngines) {
|
| // The keyword wasn't reverted.
|
| EXPECT_EQ(ASCIIToUTF16("trash"), google->short_name());
|
| EXPECT_EQ("www.google.com",
|
| - TemplateURLService::GenerateSearchURL(google).host());
|
| + TemplateURLService::GenerateSearchURL(
|
| + google, model()->search_terms_data()).host());
|
|
|
| // Bing was repaired.
|
| bing = model()->GetTemplateURLForKeyword(ASCIIToUTF16("bing.com"));
|
| @@ -922,8 +903,7 @@ TEST_F(TemplateURLServiceTest, RepairSearchEnginesWithManagedDefault) {
|
| base::SplitString(kEncodings, ';', &data.input_encodings);
|
| data.alternate_urls.push_back(kAlternateURL);
|
| data.search_terms_replacement_key = kSearchTermsReplacementKey;
|
| - scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(
|
| - test_util_.profile(), data));
|
| + scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(data));
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| const TemplateURL* actual_managed_default =
|
| model()->GetDefaultSearchProvider();
|
| @@ -1130,8 +1110,7 @@ TEST_F(TemplateURLServiceTest, LoadRetainsModifiedProvider) {
|
| model()->Add(t_url);
|
|
|
| // Do the copy after t_url is added so that the id is set.
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(),
|
| - t_url->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data()));
|
| ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")));
|
|
|
| // Wait for any saves to finish.
|
| @@ -1161,8 +1140,7 @@ TEST_F(TemplateURLServiceTest, LoadSavesPrepopulatedDefaultSearchProvider) {
|
| // Verify that the default search provider is set to something.
|
| TemplateURL* default_search = model()->GetDefaultSearchProvider();
|
| ASSERT_TRUE(default_search != NULL);
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(default_search->profile(),
|
| - default_search->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(default_search->data()));
|
|
|
| // Wait for any saves to finish.
|
| base::RunLoop().RunUntilIdle();
|
| @@ -1188,8 +1166,7 @@ TEST_F(TemplateURLServiceTest, LoadRetainsDefaultProvider) {
|
| model()->SetUserSelectedDefaultSearchProvider(t_url);
|
| // Do the copy after t_url is added and set as default so that its
|
| // internal state is correct.
|
| - scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(),
|
| - t_url->data()));
|
| + scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data()));
|
|
|
| ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")));
|
| ASSERT_EQ(t_url, model()->GetDefaultSearchProvider());
|
| @@ -1307,9 +1284,7 @@ TEST_F(TemplateURLServiceTest, TestManagedDefaultSearch) {
|
| 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_default1(new TemplateURL(profile,
|
| - data));
|
| + scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data));
|
| const TemplateURL* actual_managed_default =
|
| model()->GetDefaultSearchProvider();
|
| ExpectSimilar(expected_managed_default1.get(), actual_managed_default);
|
| @@ -1334,8 +1309,7 @@ TEST_F(TemplateURLServiceTest, TestManagedDefaultSearch) {
|
| data2.SetURL(kNewSearchURL);
|
| data2.suggestions_url = kNewSuggestURL;
|
| data2.show_in_default_list = true;
|
| - scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL(profile,
|
| - data2));
|
| + scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL(data2));
|
| actual_managed_default = model()->GetDefaultSearchProvider();
|
| ExpectSimilar(expected_managed_default2.get(), actual_managed_default);
|
| EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
|
| @@ -1409,7 +1383,7 @@ TEST_F(TemplateURLServiceTest, PatchEmptySyncGUID) {
|
| data.SetKeyword(ASCIIToUTF16("keyword"));
|
| data.SetURL("http://www.google.com/foo/bar");
|
| data.sync_guid.clear();
|
| - TemplateURL* t_url = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
|
|
| VerifyObserverCount(1);
|
| @@ -1446,7 +1420,7 @@ TEST_F(TemplateURLServiceTest, DuplicateInputEncodings) {
|
| data.input_encodings.push_back("UTF-16");
|
| data.input_encodings.push_back("Big5");
|
| data.input_encodings.push_back("Windows-1252");
|
| - TemplateURL* t_url = new TemplateURL(test_util_.profile(), data);
|
| + TemplateURL* t_url = new TemplateURL(data);
|
| model()->Add(t_url);
|
|
|
| VerifyObserverCount(1);
|
| @@ -1552,8 +1526,7 @@ TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) {
|
| base::SplitString(kEncodings, ';', &data.input_encodings);
|
| data.alternate_urls.push_back(kAlternateURL);
|
| data.search_terms_replacement_key = kSearchTermsReplacementKey;
|
| - scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(
|
| - test_util_.profile(), data));
|
| + scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(data));
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| const TemplateURL* actual_managed_default =
|
| model()->GetDefaultSearchProvider();
|
|
|