| 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 3e86c1a9cdaf6479557021e3306207ff19f742bf..ff7932f17c3295c3f4fce1b0586d1071efefccb0 100644
|
| --- a/chrome/browser/search_engines/template_url_service_unittest.cc
|
| +++ b/chrome/browser/search_engines/template_url_service_unittest.cc
|
| @@ -41,6 +41,10 @@ using base::TimeDelta;
|
|
|
| namespace {
|
|
|
| +// A prepopulated ID to set for engines we want to show in the default list.
|
| +// This must simply be greater than 0.
|
| +static constexpr int kPrepopulatedId = 999999;
|
| +
|
| // QueryHistoryCallbackImpl ---------------------------------------------------
|
|
|
| struct QueryHistoryCallbackImpl {
|
| @@ -128,6 +132,19 @@ void ExpectSimilar(const TemplateURL* expected, const TemplateURL* actual) {
|
| actual->search_terms_replacement_key());
|
| }
|
|
|
| +std::unique_ptr<TemplateURLData> CreateTestSearchEngine() {
|
| + auto result = base::MakeUnique<TemplateURLData>();
|
| + result->SetShortName(ASCIIToUTF16("test1"));
|
| + result->SetKeyword(ASCIIToUTF16("test.com"));
|
| + result->SetURL("http://test.com/search?t={searchTerms}");
|
| + result->favicon_url = GURL("http://test.com/icon.jpg");
|
| + result->prepopulate_id = kPrepopulatedId;
|
| + result->input_encodings = {"UTF-16", "UTF-32"};
|
| + result->alternate_urls = {"http://test.com/search#t={searchTerms}"};
|
| + result->search_terms_replacement_key = "espv";
|
| + return result;
|
| +}
|
| +
|
| } // namespace
|
|
|
|
|
| @@ -137,10 +154,6 @@ class TemplateURLServiceTest : public testing::Test {
|
| public:
|
| TemplateURLServiceTest();
|
|
|
| - // A prepopulated ID to set for engines we want to show in the default list.
|
| - // This must simply be greater than 0.
|
| - static constexpr int kPrepopulatedId = 999999;
|
| -
|
| // testing::Test:
|
| void SetUp() override;
|
| void TearDown() override;
|
| @@ -849,31 +862,12 @@ TEST_F(TemplateURLServiceTest, RepairPrepopulatedSearchEngines) {
|
|
|
| TEST_F(TemplateURLServiceTest, RepairSearchEnginesWithManagedDefault) {
|
| // 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);
|
| + std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine();
|
| + SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile());
|
| test_util()->VerifyLoad();
|
| +
|
| // Verify that the default manager we are getting is the managed one.
|
| - TemplateURLData data;
|
| - data.SetShortName(ASCIIToUTF16(kName));
|
| - data.SetKeyword(ASCIIToUTF16(kKeyword));
|
| - data.SetURL(kSearchURL);
|
| - data.favicon_url = GURL(kIconURL);
|
| - data.prepopulate_id = kPrepopulatedId;
|
| - data.input_encodings = base::SplitString(
|
| - kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
|
| - data.alternate_urls.push_back(kAlternateURL);
|
| - data.search_terms_replacement_key = kSearchTermsReplacementKey;
|
| - std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data));
|
| + auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed);
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| const TemplateURL* actual_managed_default =
|
| model()->GetDefaultSearchProvider();
|
| @@ -1230,64 +1224,38 @@ TEST_F(TemplateURLServiceTest, TestManagedDefaultSearch) {
|
| EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size());
|
|
|
| // 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);
|
| + std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine();
|
| + SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile());
|
| VerifyObserverFired();
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size());
|
|
|
| // Verify that the default manager we are getting is the managed one.
|
| - TemplateURLData data;
|
| - data.SetShortName(ASCIIToUTF16(kName));
|
| - data.SetKeyword(ASCIIToUTF16(kKeyword));
|
| - data.SetURL(kSearchURL);
|
| - data.favicon_url = GURL(kIconURL);
|
| - data.prepopulate_id = kPrepopulatedId;
|
| - data.input_encodings = base::SplitString(
|
| - kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
|
| - data.alternate_urls.push_back(kAlternateURL);
|
| - data.search_terms_replacement_key = kSearchTermsReplacementKey;
|
| - std::unique_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data));
|
| + auto expected_managed_default1 = base::MakeUnique<TemplateURL>(*managed);
|
| const TemplateURL* actual_managed_default =
|
| model()->GetDefaultSearchProvider();
|
| ExpectSimilar(expected_managed_default1.get(), actual_managed_default);
|
| EXPECT_TRUE(model()->ShowInDefaultList(actual_managed_default));
|
|
|
| // Update the managed preference and check that the model has changed.
|
| - const char kNewName[] = "test2";
|
| - const char kNewKeyword[] = "other.com";
|
| - const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}";
|
| - const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}";
|
| - test_util()->SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword,
|
| - kNewSearchURL, kNewSuggestURL, std::string(), std::string(),
|
| - std::string(), std::string());
|
| + TemplateURLData managed2;
|
| + managed2.SetShortName(ASCIIToUTF16("test2"));
|
| + managed2.SetKeyword(ASCIIToUTF16("other.com"));
|
| + managed2.SetURL("http://other.com/search?t={searchTerms}");
|
| + managed2.suggestions_url = "http://other.com/suggest?t={searchTerms}";
|
| + SetManagedDefaultSearchPreferences(managed2, true, test_util()->profile());
|
| VerifyObserverFired();
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size());
|
|
|
| // Verify that the default manager we are now getting is the correct one.
|
| - TemplateURLData data2;
|
| - data2.SetShortName(ASCIIToUTF16(kNewName));
|
| - data2.SetKeyword(ASCIIToUTF16(kNewKeyword));
|
| - data2.SetURL(kNewSearchURL);
|
| - data2.suggestions_url = kNewSuggestURL;
|
| - data2.prepopulate_id = kPrepopulatedId;
|
| - std::unique_ptr<TemplateURL> expected_managed_default2(
|
| - new TemplateURL(data2));
|
| + auto expected_managed_default2 = base::MakeUnique<TemplateURL>(managed2);
|
| actual_managed_default = model()->GetDefaultSearchProvider();
|
| ExpectSimilar(expected_managed_default2.get(), actual_managed_default);
|
| EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true);
|
|
|
| // Remove all the managed prefs and check that we are no longer managed.
|
| - test_util()->RemoveManagedDefaultSearchPreferences();
|
| + RemoveManagedDefaultSearchPreferences(test_util()->profile());
|
| VerifyObserverFired();
|
| EXPECT_FALSE(model()->is_default_search_managed());
|
| EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size());
|
| @@ -1299,18 +1267,14 @@ TEST_F(TemplateURLServiceTest, TestManagedDefaultSearch) {
|
| EXPECT_EQ(model()->ShowInDefaultList(actual_final_managed_default), true);
|
|
|
| // Disable the default search provider through policy.
|
| - test_util()->SetManagedDefaultSearchPreferences(false, std::string(),
|
| - std::string(), std::string(), std::string(), std::string(),
|
| - std::string(), std::string(), std::string());
|
| + SetManagedDefaultSearchPreferences(managed2, false, test_util()->profile());
|
| VerifyObserverFired();
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider());
|
| EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size());
|
|
|
| // Re-enable it.
|
| - test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword,
|
| - kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL,
|
| - kSearchTermsReplacementKey);
|
| + SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile());
|
| VerifyObserverFired();
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size());
|
| @@ -1325,7 +1289,7 @@ TEST_F(TemplateURLServiceTest, TestManagedDefaultSearch) {
|
| // This checks against regressions of http://crbug.com/67180
|
|
|
| // First, remove the preferences, reset the model, and set a default.
|
| - test_util()->RemoveManagedDefaultSearchPreferences();
|
| + RemoveManagedDefaultSearchPreferences(test_util()->profile());
|
| test_util()->ResetModel(true);
|
| TemplateURL* new_default =
|
| model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1"));
|
| @@ -1335,9 +1299,7 @@ TEST_F(TemplateURLServiceTest, TestManagedDefaultSearch) {
|
|
|
| // Now reset the model again but load it after setting the preferences.
|
| test_util()->ResetModel(false);
|
| - test_util()->SetManagedDefaultSearchPreferences(false, std::string(),
|
| - std::string(), std::string(), std::string(), std::string(),
|
| - std::string(), std::string(), std::string());
|
| + SetManagedDefaultSearchPreferences(*managed, false, test_util()->profile());
|
| test_util()->VerifyLoad();
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| EXPECT_TRUE(model()->GetDefaultSearchProvider() == NULL);
|
| @@ -1476,28 +1438,11 @@ TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) {
|
|
|
| TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) {
|
| // Set a managed preference that establishes a default search provider.
|
| - const char kName[] = "test";
|
| - 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);
|
| + std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine();
|
| + SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile());
|
| test_util()->VerifyLoad();
|
| // Verify that the default manager we are getting is the managed one.
|
| - TemplateURLData data;
|
| - data.SetShortName(ASCIIToUTF16(kName));
|
| - data.SetKeyword(ASCIIToUTF16(kKeyword));
|
| - data.SetURL(kSearchURL);
|
| - data.favicon_url = GURL(kIconURL);
|
| - data.input_encodings = base::SplitString(
|
| - kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
|
| - data.alternate_urls.push_back(kAlternateURL);
|
| - data.search_terms_replacement_key = kSearchTermsReplacementKey;
|
| - std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data));
|
| + auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed);
|
| EXPECT_TRUE(model()->is_default_search_managed());
|
| const TemplateURL* actual_managed_default =
|
| model()->GetDefaultSearchProvider();
|
| @@ -1507,8 +1452,8 @@ TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) {
|
| model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}",
|
| std::string(), std::string(), std::string(), true, kPrepopulatedId,
|
| "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
|
| - std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
|
| - new TemplateURL::AssociatedExtensionInfo("ext1"));
|
| + auto extension_info =
|
| + base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("ext1");
|
| extension_info->wants_to_be_default_engine = true;
|
| TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL(
|
| std::move(ext_dse), std::move(extension_info));
|
|
|