Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/search_engines/template_url_service.h" | 5 #include "components/search_engines/template_url_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 34 #include "components/search_engines/template_url_prepopulate_data.h" | 34 #include "components/search_engines/template_url_prepopulate_data.h" |
| 35 #include "content/public/test/test_browser_thread_bundle.h" | 35 #include "content/public/test/test_browser_thread_bundle.h" |
| 36 #include "testing/gtest/include/gtest/gtest.h" | 36 #include "testing/gtest/include/gtest/gtest.h" |
| 37 | 37 |
| 38 using base::ASCIIToUTF16; | 38 using base::ASCIIToUTF16; |
| 39 using base::Time; | 39 using base::Time; |
| 40 using base::TimeDelta; | 40 using base::TimeDelta; |
| 41 | 41 |
| 42 namespace { | 42 namespace { |
| 43 | 43 |
| 44 // A prepopulated ID to set for engines we want to show in the default list. | |
| 45 // This must simply be greater than 0. | |
| 46 static constexpr int kPrepopulatedId = 999999; | |
| 47 | |
| 44 // QueryHistoryCallbackImpl --------------------------------------------------- | 48 // QueryHistoryCallbackImpl --------------------------------------------------- |
| 45 | 49 |
| 46 struct QueryHistoryCallbackImpl { | 50 struct QueryHistoryCallbackImpl { |
| 47 QueryHistoryCallbackImpl() : success(false) {} | 51 QueryHistoryCallbackImpl() : success(false) {} |
| 48 | 52 |
| 49 void Callback(bool success, | 53 void Callback(bool success, |
| 50 const history::URLRow& row, | 54 const history::URLRow& row, |
| 51 const history::VisitVector& visits) { | 55 const history::VisitVector& visits) { |
| 52 this->success = success; | 56 this->success = success; |
| 53 if (success) { | 57 if (success) { |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 121 EXPECT_EQ(expected->url(), actual->url()); | 125 EXPECT_EQ(expected->url(), actual->url()); |
| 122 EXPECT_EQ(expected->suggestions_url(), actual->suggestions_url()); | 126 EXPECT_EQ(expected->suggestions_url(), actual->suggestions_url()); |
| 123 EXPECT_EQ(expected->favicon_url(), actual->favicon_url()); | 127 EXPECT_EQ(expected->favicon_url(), actual->favicon_url()); |
| 124 EXPECT_EQ(expected->alternate_urls(), actual->alternate_urls()); | 128 EXPECT_EQ(expected->alternate_urls(), actual->alternate_urls()); |
| 125 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace()); | 129 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace()); |
| 126 EXPECT_EQ(expected->input_encodings(), actual->input_encodings()); | 130 EXPECT_EQ(expected->input_encodings(), actual->input_encodings()); |
| 127 EXPECT_EQ(expected->search_terms_replacement_key(), | 131 EXPECT_EQ(expected->search_terms_replacement_key(), |
| 128 actual->search_terms_replacement_key()); | 132 actual->search_terms_replacement_key()); |
| 129 } | 133 } |
| 130 | 134 |
| 135 std::unique_ptr<TemplateURLData> CreateTestSearchEngine() { | |
| 136 auto result = base::MakeUnique<TemplateURLData>(); | |
| 137 result->SetShortName(ASCIIToUTF16("test1")); | |
| 138 result->SetKeyword(ASCIIToUTF16("test.com")); | |
| 139 result->SetURL("http://test.com/search?t={searchTerms}"); | |
| 140 result->favicon_url = GURL("http://test.com/icon.jpg"); | |
| 141 result->prepopulate_id = kPrepopulatedId; | |
| 142 result->input_encodings.push_back("UTF-16"); | |
|
Peter Kasting
2016/11/30 00:50:37
Nit: See earlier comments
Alexander Yashkin
2016/11/30 06:01:20
Done
| |
| 143 result->input_encodings.push_back("UTF-32"); | |
| 144 result->alternate_urls.push_back("http://test.com/search#t={searchTerms}"); | |
| 145 result->search_terms_replacement_key = "espv"; | |
| 146 return result; | |
| 147 } | |
| 148 | |
| 131 } // namespace | 149 } // namespace |
| 132 | 150 |
| 133 | 151 |
| 134 // TemplateURLServiceTest ----------------------------------------------------- | 152 // TemplateURLServiceTest ----------------------------------------------------- |
| 135 | 153 |
| 136 class TemplateURLServiceTest : public testing::Test { | 154 class TemplateURLServiceTest : public testing::Test { |
| 137 public: | 155 public: |
| 138 TemplateURLServiceTest(); | 156 TemplateURLServiceTest(); |
| 139 | 157 |
| 140 // A prepopulated ID to set for engines we want to show in the default list. | |
| 141 // This must simply be greater than 0. | |
| 142 static constexpr int kPrepopulatedId = 999999; | |
| 143 | |
| 144 // testing::Test: | 158 // testing::Test: |
| 145 void SetUp() override; | 159 void SetUp() override; |
| 146 void TearDown() override; | 160 void TearDown() override; |
| 147 | 161 |
| 148 TemplateURL* AddKeywordWithDate(const std::string& short_name, | 162 TemplateURL* AddKeywordWithDate(const std::string& short_name, |
| 149 const std::string& keyword, | 163 const std::string& keyword, |
| 150 const std::string& url, | 164 const std::string& url, |
| 151 const std::string& suggest_url, | 165 const std::string& suggest_url, |
| 152 const std::string& alternate_url, | 166 const std::string& alternate_url, |
| 153 const std::string& favicon_url, | 167 const std::string& favicon_url, |
| (...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 842 ASSERT_TRUE(bing); | 856 ASSERT_TRUE(bing); |
| 843 EXPECT_EQ(TemplateURL::NORMAL, bing->type()); | 857 EXPECT_EQ(TemplateURL::NORMAL, bing->type()); |
| 844 | 858 |
| 845 // User search engine is preserved. | 859 // User search engine is preserved. |
| 846 EXPECT_EQ(user_dse, model()->GetTemplateURLForHost("www.goo.com")); | 860 EXPECT_EQ(user_dse, model()->GetTemplateURLForHost("www.goo.com")); |
| 847 EXPECT_EQ(ASCIIToUTF16("google.com"), user_dse->keyword()); | 861 EXPECT_EQ(ASCIIToUTF16("google.com"), user_dse->keyword()); |
| 848 } | 862 } |
| 849 | 863 |
| 850 TEST_F(TemplateURLServiceTest, RepairSearchEnginesWithManagedDefault) { | 864 TEST_F(TemplateURLServiceTest, RepairSearchEnginesWithManagedDefault) { |
| 851 // Set a managed preference that establishes a default search provider. | 865 // Set a managed preference that establishes a default search provider. |
| 852 const char kName[] = "test1"; | 866 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); |
| 853 const char kKeyword[] = "test.com"; | 867 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); |
| 854 const char kSearchURL[] = "http://test.com/search?t={searchTerms}"; | |
| 855 const char kIconURL[] = "http://test.com/icon.jpg"; | |
| 856 const char kEncodings[] = "UTF-16;UTF-32"; | |
| 857 const char kAlternateURL[] = "http://test.com/search#t={searchTerms}"; | |
| 858 const char kSearchTermsReplacementKey[] = "espv"; | |
| 859 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword, | |
| 860 kSearchURL, std::string(), | |
| 861 kIconURL, kEncodings, | |
| 862 kAlternateURL, | |
| 863 kSearchTermsReplacementKey); | |
| 864 test_util()->VerifyLoad(); | 868 test_util()->VerifyLoad(); |
| 869 | |
| 865 // Verify that the default manager we are getting is the managed one. | 870 // Verify that the default manager we are getting is the managed one. |
| 866 TemplateURLData data; | 871 std::unique_ptr<TemplateURL> expected_managed_default( |
| 867 data.SetShortName(ASCIIToUTF16(kName)); | 872 new TemplateURL(*managed)); |
|
Peter Kasting
2016/11/30 00:50:37
Nit: Try to avoid raw new (use MakeUnique here); f
Alexander Yashkin
2016/11/30 06:01:20
Done
| |
| 868 data.SetKeyword(ASCIIToUTF16(kKeyword)); | |
| 869 data.SetURL(kSearchURL); | |
| 870 data.favicon_url = GURL(kIconURL); | |
| 871 data.prepopulate_id = kPrepopulatedId; | |
| 872 data.input_encodings = base::SplitString( | |
| 873 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | |
| 874 data.alternate_urls.push_back(kAlternateURL); | |
| 875 data.search_terms_replacement_key = kSearchTermsReplacementKey; | |
| 876 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); | |
| 877 EXPECT_TRUE(model()->is_default_search_managed()); | 873 EXPECT_TRUE(model()->is_default_search_managed()); |
| 878 const TemplateURL* actual_managed_default = | 874 const TemplateURL* actual_managed_default = |
| 879 model()->GetDefaultSearchProvider(); | 875 model()->GetDefaultSearchProvider(); |
| 880 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 876 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 881 | 877 |
| 882 // The following call has no effect on the managed search engine. | 878 // The following call has no effect on the managed search engine. |
| 883 model()->RepairPrepopulatedSearchEngines(); | 879 model()->RepairPrepopulatedSearchEngines(); |
| 884 | 880 |
| 885 EXPECT_TRUE(model()->is_default_search_managed()); | 881 EXPECT_TRUE(model()->is_default_search_managed()); |
| 886 actual_managed_default = model()->GetDefaultSearchProvider(); | 882 actual_managed_default = model()->GetDefaultSearchProvider(); |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1223 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); | 1219 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); |
| 1224 VerifyObserverCount(1); | 1220 VerifyObserverCount(1); |
| 1225 model()->SetUserSelectedDefaultSearchProvider(regular_default); | 1221 model()->SetUserSelectedDefaultSearchProvider(regular_default); |
| 1226 // Adding the URL and setting the default search provider should have caused | 1222 // Adding the URL and setting the default search provider should have caused |
| 1227 // notifications. | 1223 // notifications. |
| 1228 VerifyObserverCount(1); | 1224 VerifyObserverCount(1); |
| 1229 EXPECT_FALSE(model()->is_default_search_managed()); | 1225 EXPECT_FALSE(model()->is_default_search_managed()); |
| 1230 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1226 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 1231 | 1227 |
| 1232 // Set a managed preference that establishes a default search provider. | 1228 // Set a managed preference that establishes a default search provider. |
| 1233 const char kName[] = "test1"; | 1229 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); |
| 1234 const char kKeyword[] = "test.com"; | 1230 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); |
| 1235 const char kSearchURL[] = "http://test.com/search?t={searchTerms}"; | |
| 1236 const char kIconURL[] = "http://test.com/icon.jpg"; | |
| 1237 const char kEncodings[] = "UTF-16;UTF-32"; | |
| 1238 const char kAlternateURL[] = "http://test.com/search#t={searchTerms}"; | |
| 1239 const char kSearchTermsReplacementKey[] = "espv"; | |
| 1240 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword, | |
| 1241 kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL, | |
| 1242 kSearchTermsReplacementKey); | |
| 1243 VerifyObserverFired(); | 1231 VerifyObserverFired(); |
| 1244 EXPECT_TRUE(model()->is_default_search_managed()); | 1232 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1245 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1233 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
| 1246 | 1234 |
| 1247 // Verify that the default manager we are getting is the managed one. | 1235 // Verify that the default manager we are getting is the managed one. |
| 1248 TemplateURLData data; | 1236 std::unique_ptr<TemplateURL> expected_managed_default1( |
| 1249 data.SetShortName(ASCIIToUTF16(kName)); | 1237 new TemplateURL(*managed)); |
| 1250 data.SetKeyword(ASCIIToUTF16(kKeyword)); | |
| 1251 data.SetURL(kSearchURL); | |
| 1252 data.favicon_url = GURL(kIconURL); | |
| 1253 data.prepopulate_id = kPrepopulatedId; | |
| 1254 data.input_encodings = base::SplitString( | |
| 1255 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | |
| 1256 data.alternate_urls.push_back(kAlternateURL); | |
| 1257 data.search_terms_replacement_key = kSearchTermsReplacementKey; | |
| 1258 std::unique_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data)); | |
| 1259 const TemplateURL* actual_managed_default = | 1238 const TemplateURL* actual_managed_default = |
| 1260 model()->GetDefaultSearchProvider(); | 1239 model()->GetDefaultSearchProvider(); |
| 1261 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); | 1240 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); |
| 1262 EXPECT_TRUE(model()->ShowInDefaultList(actual_managed_default)); | 1241 EXPECT_TRUE(model()->ShowInDefaultList(actual_managed_default)); |
| 1263 | 1242 |
| 1264 // Update the managed preference and check that the model has changed. | 1243 // Update the managed preference and check that the model has changed. |
| 1265 const char kNewName[] = "test2"; | 1244 TemplateURLData managed2; |
| 1266 const char kNewKeyword[] = "other.com"; | 1245 managed2.SetShortName(ASCIIToUTF16("test2")); |
| 1267 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; | 1246 managed2.SetKeyword(ASCIIToUTF16("other.com")); |
| 1268 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; | 1247 managed2.SetURL("http://other.com/search?t={searchTerms}"); |
| 1269 test_util()->SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword, | 1248 managed2.suggestions_url = "http://other.com/suggest?t={searchTerms}"; |
| 1270 kNewSearchURL, kNewSuggestURL, std::string(), std::string(), | 1249 SetManagedDefaultSearchPreferences(managed2, true, test_util()->profile()); |
| 1271 std::string(), std::string()); | |
| 1272 VerifyObserverFired(); | 1250 VerifyObserverFired(); |
| 1273 EXPECT_TRUE(model()->is_default_search_managed()); | 1251 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1274 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1252 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
| 1275 | 1253 |
| 1276 // Verify that the default manager we are now getting is the correct one. | 1254 // Verify that the default manager we are now getting is the correct one. |
| 1277 TemplateURLData data2; | |
| 1278 data2.SetShortName(ASCIIToUTF16(kNewName)); | |
| 1279 data2.SetKeyword(ASCIIToUTF16(kNewKeyword)); | |
| 1280 data2.SetURL(kNewSearchURL); | |
| 1281 data2.suggestions_url = kNewSuggestURL; | |
| 1282 data2.prepopulate_id = kPrepopulatedId; | |
| 1283 std::unique_ptr<TemplateURL> expected_managed_default2( | 1255 std::unique_ptr<TemplateURL> expected_managed_default2( |
| 1284 new TemplateURL(data2)); | 1256 new TemplateURL(managed2)); |
| 1285 actual_managed_default = model()->GetDefaultSearchProvider(); | 1257 actual_managed_default = model()->GetDefaultSearchProvider(); |
| 1286 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); | 1258 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); |
| 1287 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true); | 1259 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true); |
| 1288 | 1260 |
| 1289 // Remove all the managed prefs and check that we are no longer managed. | 1261 // Remove all the managed prefs and check that we are no longer managed. |
| 1290 test_util()->RemoveManagedDefaultSearchPreferences(); | 1262 RemoveManagedDefaultSearchPreferences(test_util()->profile()); |
| 1291 VerifyObserverFired(); | 1263 VerifyObserverFired(); |
| 1292 EXPECT_FALSE(model()->is_default_search_managed()); | 1264 EXPECT_FALSE(model()->is_default_search_managed()); |
| 1293 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1265 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 1294 | 1266 |
| 1295 // The default should now be the user preference. | 1267 // The default should now be the user preference. |
| 1296 const TemplateURL* actual_final_managed_default = | 1268 const TemplateURL* actual_final_managed_default = |
| 1297 model()->GetDefaultSearchProvider(); | 1269 model()->GetDefaultSearchProvider(); |
| 1298 ExpectSimilar(regular_default, actual_final_managed_default); | 1270 ExpectSimilar(regular_default, actual_final_managed_default); |
| 1299 EXPECT_EQ(model()->ShowInDefaultList(actual_final_managed_default), true); | 1271 EXPECT_EQ(model()->ShowInDefaultList(actual_final_managed_default), true); |
| 1300 | 1272 |
| 1301 // Disable the default search provider through policy. | 1273 // Disable the default search provider through policy. |
| 1302 test_util()->SetManagedDefaultSearchPreferences(false, std::string(), | 1274 SetManagedDefaultSearchPreferences(managed2, false, test_util()->profile()); |
| 1303 std::string(), std::string(), std::string(), std::string(), | |
| 1304 std::string(), std::string(), std::string()); | |
| 1305 VerifyObserverFired(); | 1275 VerifyObserverFired(); |
| 1306 EXPECT_TRUE(model()->is_default_search_managed()); | 1276 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1307 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); | 1277 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); |
| 1308 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1278 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 1309 | 1279 |
| 1310 // Re-enable it. | 1280 // Re-enable it. |
| 1311 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword, | 1281 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); |
| 1312 kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL, | |
| 1313 kSearchTermsReplacementKey); | |
| 1314 VerifyObserverFired(); | 1282 VerifyObserverFired(); |
| 1315 EXPECT_TRUE(model()->is_default_search_managed()); | 1283 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1316 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1284 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
| 1317 | 1285 |
| 1318 // Verify that the default manager we are getting is the managed one. | 1286 // Verify that the default manager we are getting is the managed one. |
| 1319 actual_managed_default = model()->GetDefaultSearchProvider(); | 1287 actual_managed_default = model()->GetDefaultSearchProvider(); |
| 1320 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); | 1288 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); |
| 1321 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true); | 1289 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true); |
| 1322 | 1290 |
| 1323 // Clear the model and disable the default search provider through policy. | 1291 // Clear the model and disable the default search provider through policy. |
| 1324 // Verify that there is no default search provider after loading the model. | 1292 // Verify that there is no default search provider after loading the model. |
| 1325 // This checks against regressions of http://crbug.com/67180 | 1293 // This checks against regressions of http://crbug.com/67180 |
| 1326 | 1294 |
| 1327 // First, remove the preferences, reset the model, and set a default. | 1295 // First, remove the preferences, reset the model, and set a default. |
| 1328 test_util()->RemoveManagedDefaultSearchPreferences(); | 1296 RemoveManagedDefaultSearchPreferences(test_util()->profile()); |
| 1329 test_util()->ResetModel(true); | 1297 test_util()->ResetModel(true); |
| 1330 TemplateURL* new_default = | 1298 TemplateURL* new_default = |
| 1331 model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1")); | 1299 model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1")); |
| 1332 ASSERT_FALSE(new_default == NULL); | 1300 ASSERT_FALSE(new_default == NULL); |
| 1333 model()->SetUserSelectedDefaultSearchProvider(new_default); | 1301 model()->SetUserSelectedDefaultSearchProvider(new_default); |
| 1334 EXPECT_EQ(new_default, model()->GetDefaultSearchProvider()); | 1302 EXPECT_EQ(new_default, model()->GetDefaultSearchProvider()); |
| 1335 | 1303 |
| 1336 // Now reset the model again but load it after setting the preferences. | 1304 // Now reset the model again but load it after setting the preferences. |
| 1337 test_util()->ResetModel(false); | 1305 test_util()->ResetModel(false); |
| 1338 test_util()->SetManagedDefaultSearchPreferences(false, std::string(), | 1306 SetManagedDefaultSearchPreferences(*managed, false, test_util()->profile()); |
| 1339 std::string(), std::string(), std::string(), std::string(), | |
| 1340 std::string(), std::string(), std::string()); | |
| 1341 test_util()->VerifyLoad(); | 1307 test_util()->VerifyLoad(); |
| 1342 EXPECT_TRUE(model()->is_default_search_managed()); | 1308 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1343 EXPECT_TRUE(model()->GetDefaultSearchProvider() == NULL); | 1309 EXPECT_TRUE(model()->GetDefaultSearchProvider() == NULL); |
| 1344 } | 1310 } |
| 1345 | 1311 |
| 1346 // Test that if we load a TemplateURL with an empty GUID, the load process | 1312 // Test that if we load a TemplateURL with an empty GUID, the load process |
| 1347 // assigns it a newly generated GUID. | 1313 // assigns it a newly generated GUID. |
| 1348 TEST_F(TemplateURLServiceTest, PatchEmptySyncGUID) { | 1314 TEST_F(TemplateURLServiceTest, PatchEmptySyncGUID) { |
| 1349 // Add a new TemplateURL. | 1315 // Add a new TemplateURL. |
| 1350 test_util()->VerifyLoad(); | 1316 test_util()->VerifyLoad(); |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1469 | 1435 |
| 1470 test_util()->ResetModel(true); | 1436 test_util()->ResetModel(true); |
| 1471 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); | 1437 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); |
| 1472 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); | 1438 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); |
| 1473 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1439 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
| 1474 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); | 1440 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); |
| 1475 } | 1441 } |
| 1476 | 1442 |
| 1477 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) { | 1443 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) { |
| 1478 // Set a managed preference that establishes a default search provider. | 1444 // Set a managed preference that establishes a default search provider. |
| 1479 const char kName[] = "test"; | 1445 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); |
| 1480 const char kKeyword[] = "test.com"; | 1446 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); |
| 1481 const char kSearchURL[] = "http://test.com/search?t={searchTerms}"; | |
| 1482 const char kIconURL[] = "http://test.com/icon.jpg"; | |
| 1483 const char kEncodings[] = "UTF-16;UTF-32"; | |
| 1484 const char kAlternateURL[] = "http://test.com/search#t={searchTerms}"; | |
| 1485 const char kSearchTermsReplacementKey[] = "espv"; | |
| 1486 test_util()->SetManagedDefaultSearchPreferences( | |
| 1487 true, kName, kKeyword, kSearchURL, std::string(), kIconURL, kEncodings, | |
| 1488 kAlternateURL, kSearchTermsReplacementKey); | |
| 1489 test_util()->VerifyLoad(); | 1447 test_util()->VerifyLoad(); |
| 1490 // Verify that the default manager we are getting is the managed one. | 1448 // Verify that the default manager we are getting is the managed one. |
| 1491 TemplateURLData data; | 1449 std::unique_ptr<TemplateURL> expected_managed_default( |
| 1492 data.SetShortName(ASCIIToUTF16(kName)); | 1450 new TemplateURL(*managed)); |
| 1493 data.SetKeyword(ASCIIToUTF16(kKeyword)); | |
| 1494 data.SetURL(kSearchURL); | |
| 1495 data.favicon_url = GURL(kIconURL); | |
| 1496 data.input_encodings = base::SplitString( | |
| 1497 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | |
| 1498 data.alternate_urls.push_back(kAlternateURL); | |
| 1499 data.search_terms_replacement_key = kSearchTermsReplacementKey; | |
| 1500 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); | |
| 1501 EXPECT_TRUE(model()->is_default_search_managed()); | 1451 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1502 const TemplateURL* actual_managed_default = | 1452 const TemplateURL* actual_managed_default = |
| 1503 model()->GetDefaultSearchProvider(); | 1453 model()->GetDefaultSearchProvider(); |
| 1504 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1454 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 1505 | 1455 |
| 1506 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1456 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
| 1507 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", | 1457 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", |
| 1508 std::string(), std::string(), std::string(), true, kPrepopulatedId, | 1458 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
| 1509 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1459 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
| 1510 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( | 1460 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( |
| 1511 new TemplateURL::AssociatedExtensionInfo("ext1")); | 1461 new TemplateURL::AssociatedExtensionInfo("ext1")); |
| 1512 extension_info->wants_to_be_default_engine = true; | 1462 extension_info->wants_to_be_default_engine = true; |
| 1513 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1463 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( |
| 1514 std::move(ext_dse), std::move(extension_info)); | 1464 std::move(ext_dse), std::move(extension_info)); |
| 1515 EXPECT_EQ(ext_dse_ptr, | 1465 EXPECT_EQ(ext_dse_ptr, |
| 1516 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1466 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
| 1517 EXPECT_TRUE(model()->is_default_search_managed()); | 1467 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1518 actual_managed_default = model()->GetDefaultSearchProvider(); | 1468 actual_managed_default = model()->GetDefaultSearchProvider(); |
| 1519 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1469 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 1520 } | 1470 } |
| OLD | NEW |