Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Side by Side Diff: chrome/browser/search_engines/template_url_service_unittest.cc

Issue 2487633003: Change behaivor to decide whether a search engine should be shown in the default list (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 63
64 std::unique_ptr<TemplateURL> CreateKeywordWithDate( 64 std::unique_ptr<TemplateURL> CreateKeywordWithDate(
65 TemplateURLService* model, 65 TemplateURLService* model,
66 const std::string& short_name, 66 const std::string& short_name,
67 const std::string& keyword, 67 const std::string& keyword,
68 const std::string& url, 68 const std::string& url,
69 const std::string& suggest_url, 69 const std::string& suggest_url,
70 const std::string& alternate_url, 70 const std::string& alternate_url,
71 const std::string& favicon_url, 71 const std::string& favicon_url,
72 bool safe_for_autoreplace, 72 bool safe_for_autoreplace,
73 bool show_in_default_list, 73 int prepopulate_id,
74 const std::string& encodings, 74 const std::string& encodings,
75 Time date_created, 75 Time date_created,
76 Time last_modified, 76 Time last_modified,
77 TemplateURL::Type type = TemplateURL::NORMAL) { 77 TemplateURL::Type type = TemplateURL::NORMAL) {
78 TemplateURLData data; 78 TemplateURLData data;
79 data.SetShortName(base::UTF8ToUTF16(short_name)); 79 data.SetShortName(base::UTF8ToUTF16(short_name));
80 data.SetKeyword(base::UTF8ToUTF16(keyword)); 80 data.SetKeyword(base::UTF8ToUTF16(keyword));
81 data.SetURL(url); 81 data.SetURL(url);
82 data.suggestions_url = suggest_url; 82 data.suggestions_url = suggest_url;
83 if (!alternate_url.empty()) 83 if (!alternate_url.empty())
84 data.alternate_urls.push_back(alternate_url); 84 data.alternate_urls.push_back(alternate_url);
85 data.favicon_url = GURL(favicon_url); 85 data.favicon_url = GURL(favicon_url);
86 data.safe_for_autoreplace = safe_for_autoreplace; 86 data.safe_for_autoreplace = safe_for_autoreplace;
87 data.show_in_default_list = show_in_default_list; 87 data.prepopulate_id = prepopulate_id;
88 data.input_encodings = base::SplitString( 88 data.input_encodings = base::SplitString(
89 encodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 89 encodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
90 data.date_created = date_created; 90 data.date_created = date_created;
91 data.last_modified = last_modified; 91 data.last_modified = last_modified;
92 return base::MakeUnique<TemplateURL>(data, type); 92 return base::MakeUnique<TemplateURL>(data, type);
93 } 93 }
94 94
95 TemplateURL* AddKeywordWithDate( 95 TemplateURL* AddKeywordWithDate(
96 TemplateURLService* model, 96 TemplateURLService* model,
97 const std::string& short_name, 97 const std::string& short_name,
98 const std::string& keyword, 98 const std::string& keyword,
99 const std::string& url, 99 const std::string& url,
100 const std::string& suggest_url, 100 const std::string& suggest_url,
101 const std::string& alternate_url, 101 const std::string& alternate_url,
102 const std::string& favicon_url, 102 const std::string& favicon_url,
103 bool safe_for_autoreplace, 103 bool safe_for_autoreplace,
104 const std::string& encodings, 104 const std::string& encodings,
105 Time date_created, 105 Time date_created,
106 Time last_modified) { 106 Time last_modified) {
107 TemplateURL* t_url = model->Add(CreateKeywordWithDate( 107 TemplateURL* t_url = model->Add(CreateKeywordWithDate(
108 model, short_name, keyword, url, suggest_url, alternate_url, favicon_url, 108 model, short_name, keyword, url, suggest_url, alternate_url, favicon_url,
109 safe_for_autoreplace, false, encodings, date_created, last_modified)); 109 safe_for_autoreplace, 0, encodings, date_created, last_modified));
110 EXPECT_NE(0, t_url->id()); 110 EXPECT_NE(0, t_url->id());
111 return t_url; 111 return t_url;
112 } 112 }
113 113
114 // Checks that the two TemplateURLs are similar. It does not check the id, the 114 // Checks that the two TemplateURLs are similar. It does not check the id, the
115 // date_created or the last_modified time. Neither pointer should be NULL. 115 // date_created or the last_modified time. Neither pointer should be NULL.
116 void ExpectSimilar(const TemplateURL* expected, const TemplateURL* actual) { 116 void ExpectSimilar(const TemplateURL* expected, const TemplateURL* actual) {
117 ASSERT_TRUE(expected != NULL); 117 ASSERT_TRUE(expected != NULL);
118 ASSERT_TRUE(actual != NULL); 118 ASSERT_TRUE(actual != NULL);
119 EXPECT_EQ(expected->short_name(), actual->short_name()); 119 EXPECT_EQ(expected->short_name(), actual->short_name());
120 EXPECT_EQ(expected->keyword(), actual->keyword()); 120 EXPECT_EQ(expected->keyword(), actual->keyword());
121 EXPECT_EQ(expected->url(), actual->url()); 121 EXPECT_EQ(expected->url(), actual->url());
122 EXPECT_EQ(expected->suggestions_url(), actual->suggestions_url()); 122 EXPECT_EQ(expected->suggestions_url(), actual->suggestions_url());
123 EXPECT_EQ(expected->favicon_url(), actual->favicon_url()); 123 EXPECT_EQ(expected->favicon_url(), actual->favicon_url());
124 EXPECT_EQ(expected->alternate_urls(), actual->alternate_urls()); 124 EXPECT_EQ(expected->alternate_urls(), actual->alternate_urls());
125 EXPECT_EQ(expected->show_in_default_list(), actual->show_in_default_list());
126 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace()); 125 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace());
127 EXPECT_EQ(expected->input_encodings(), actual->input_encodings()); 126 EXPECT_EQ(expected->input_encodings(), actual->input_encodings());
128 EXPECT_EQ(expected->search_terms_replacement_key(), 127 EXPECT_EQ(expected->search_terms_replacement_key(),
129 actual->search_terms_replacement_key()); 128 actual->search_terms_replacement_key());
130 } 129 }
131 130
132 } // namespace 131 } // namespace
133 132
134 133
135 // TemplateURLServiceTest ----------------------------------------------------- 134 // TemplateURLServiceTest -----------------------------------------------------
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 225 }
227 226
228 void TemplateURLServiceTest::AssertEquals(const TemplateURL& expected, 227 void TemplateURLServiceTest::AssertEquals(const TemplateURL& expected,
229 const TemplateURL& actual) { 228 const TemplateURL& actual) {
230 ASSERT_EQ(expected.short_name(), actual.short_name()); 229 ASSERT_EQ(expected.short_name(), actual.short_name());
231 ASSERT_EQ(expected.keyword(), actual.keyword()); 230 ASSERT_EQ(expected.keyword(), actual.keyword());
232 ASSERT_EQ(expected.url(), actual.url()); 231 ASSERT_EQ(expected.url(), actual.url());
233 ASSERT_EQ(expected.suggestions_url(), actual.suggestions_url()); 232 ASSERT_EQ(expected.suggestions_url(), actual.suggestions_url());
234 ASSERT_EQ(expected.favicon_url(), actual.favicon_url()); 233 ASSERT_EQ(expected.favicon_url(), actual.favicon_url());
235 ASSERT_EQ(expected.alternate_urls(), actual.alternate_urls()); 234 ASSERT_EQ(expected.alternate_urls(), actual.alternate_urls());
236 ASSERT_EQ(expected.show_in_default_list(), actual.show_in_default_list()); 235 ASSERT_EQ(expected.prepopulate_id(), actual.prepopulate_id());
237 ASSERT_EQ(expected.safe_for_autoreplace(), actual.safe_for_autoreplace()); 236 ASSERT_EQ(expected.safe_for_autoreplace(), actual.safe_for_autoreplace());
238 ASSERT_EQ(expected.input_encodings(), actual.input_encodings()); 237 ASSERT_EQ(expected.input_encodings(), actual.input_encodings());
239 ASSERT_EQ(expected.id(), actual.id()); 238 ASSERT_EQ(expected.id(), actual.id());
240 ASSERT_EQ(expected.date_created(), actual.date_created()); 239 ASSERT_EQ(expected.date_created(), actual.date_created());
241 AssertTimesEqual(expected.last_modified(), actual.last_modified()); 240 AssertTimesEqual(expected.last_modified(), actual.last_modified());
242 ASSERT_EQ(expected.sync_guid(), actual.sync_guid()); 241 ASSERT_EQ(expected.sync_guid(), actual.sync_guid());
243 ASSERT_EQ(expected.search_terms_replacement_key(), 242 ASSERT_EQ(expected.search_terms_replacement_key(),
244 actual.search_terms_replacement_key()); 243 actual.search_terms_replacement_key());
245 } 244 }
246 245
247 void TemplateURLServiceTest::AssertTimesEqual(const base::Time& expected, 246 void TemplateURLServiceTest::AssertTimesEqual(const base::Time& expected,
248 const base::Time& actual) { 247 const base::Time& actual) {
249 // Because times are stored with a granularity of one second, there is a loss 248 // Because times are stored with a granularity of one second, there is a loss
250 // of precision when serializing and deserializing the timestamps. Hence, only 249 // of precision when serializing and deserializing the timestamps. Hence, only
251 // expect timestamps to be equal to within one second of one another. 250 // expect timestamps to be equal to within one second of one another.
252 ASSERT_LT((expected - actual).magnitude(), base::TimeDelta::FromSeconds(1)); 251 ASSERT_LT((expected - actual).magnitude(), base::TimeDelta::FromSeconds(1));
253 } 252 }
254 253
255 std::unique_ptr<TemplateURL> TemplateURLServiceTest::CreatePreloadedTemplateURL( 254 std::unique_ptr<TemplateURL> TemplateURLServiceTest::CreatePreloadedTemplateURL(
256 bool safe_for_autoreplace, 255 bool safe_for_autoreplace,
257 int prepopulate_id) { 256 int prepopulate_id) {
258 TemplateURLData data; 257 TemplateURLData data;
259 data.SetShortName(ASCIIToUTF16("unittest")); 258 data.SetShortName(ASCIIToUTF16("unittest"));
260 data.SetKeyword(ASCIIToUTF16("unittest")); 259 data.SetKeyword(ASCIIToUTF16("unittest"));
261 data.SetURL("http://www.unittest.com/{searchTerms}"); 260 data.SetURL("http://www.unittest.com/{searchTerms}");
262 data.favicon_url = GURL("http://favicon.url"); 261 data.favicon_url = GURL("http://favicon.url");
263 data.show_in_default_list = true;
264 data.safe_for_autoreplace = safe_for_autoreplace; 262 data.safe_for_autoreplace = safe_for_autoreplace;
265 data.input_encodings.push_back("UTF-8"); 263 data.input_encodings.push_back("UTF-8");
266 data.date_created = Time::FromTimeT(100); 264 data.date_created = Time::FromTimeT(100);
267 data.last_modified = Time::FromTimeT(100); 265 data.last_modified = Time::FromTimeT(100);
268 data.prepopulate_id = prepopulate_id; 266 data.prepopulate_id = prepopulate_id;
269 return base::MakeUnique<TemplateURL>(data); 267 return base::MakeUnique<TemplateURL>(data);
270 } 268 }
271 269
272 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) { 270 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) {
273 EXPECT_EQ(expected_changed_count, test_util_->GetObserverCount()); 271 EXPECT_EQ(expected_changed_count, test_util_->GetObserverCount());
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 test_util()->VerifyLoad(); 677 test_util()->VerifyLoad();
680 const size_t initial_count = model()->GetTemplateURLs().size(); 678 const size_t initial_count = model()->GetTemplateURLs().size();
681 TemplateURL* t_url = AddKeywordWithDate( 679 TemplateURL* t_url = AddKeywordWithDate(
682 "name1", "key1", "http://foo1/{searchTerms}", "http://sugg1", 680 "name1", "key1", "http://foo1/{searchTerms}", "http://sugg1",
683 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); 681 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time());
684 test_util()->ResetObserverCount(); 682 test_util()->ResetObserverCount();
685 683
686 model()->SetUserSelectedDefaultSearchProvider(t_url); 684 model()->SetUserSelectedDefaultSearchProvider(t_url);
687 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); 685 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider());
688 ASSERT_TRUE(t_url->safe_for_autoreplace()); 686 ASSERT_TRUE(t_url->safe_for_autoreplace());
689 ASSERT_TRUE(t_url->show_in_default_list()); 687 ASSERT_TRUE(model()->ShowInDefaultList(t_url));
690 688
691 // Setting the default search provider should have caused notification. 689 // Setting the default search provider should have caused notification.
692 VerifyObserverCount(1); 690 VerifyObserverCount(1);
693 base::RunLoop().RunUntilIdle(); 691 base::RunLoop().RunUntilIdle();
694 692
695 std::unique_ptr<TemplateURL> cloned_url( 693 std::unique_ptr<TemplateURL> cloned_url(
696 base::MakeUnique<TemplateURL>(t_url->data())); 694 base::MakeUnique<TemplateURL>(t_url->data()));
697 695
698 // Make sure when we reload we get a default search provider. 696 // Make sure when we reload we get a default search provider.
699 test_util()->ResetModel(true); 697 test_util()->ResetModel(true);
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 kIconURL, kEncodings, 857 kIconURL, kEncodings,
860 kAlternateURL, 858 kAlternateURL,
861 kSearchTermsReplacementKey); 859 kSearchTermsReplacementKey);
862 test_util()->VerifyLoad(); 860 test_util()->VerifyLoad();
863 // Verify that the default manager we are getting is the managed one. 861 // Verify that the default manager we are getting is the managed one.
864 TemplateURLData data; 862 TemplateURLData data;
865 data.SetShortName(ASCIIToUTF16(kName)); 863 data.SetShortName(ASCIIToUTF16(kName));
866 data.SetKeyword(ASCIIToUTF16(kKeyword)); 864 data.SetKeyword(ASCIIToUTF16(kKeyword));
867 data.SetURL(kSearchURL); 865 data.SetURL(kSearchURL);
868 data.favicon_url = GURL(kIconURL); 866 data.favicon_url = GURL(kIconURL);
869 data.show_in_default_list = true; 867 data.prepopulate_id = 999999;
Peter Kasting 2016/11/10 06:41:06 Nit: Define a constant for this somewhere (kPrepop
ltian 2016/11/11 03:52:13 kNotPrepopulatedId might not be necessary because
870 data.input_encodings = base::SplitString( 868 data.input_encodings = base::SplitString(
871 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 869 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
872 data.alternate_urls.push_back(kAlternateURL); 870 data.alternate_urls.push_back(kAlternateURL);
873 data.search_terms_replacement_key = kSearchTermsReplacementKey; 871 data.search_terms_replacement_key = kSearchTermsReplacementKey;
874 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); 872 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data));
875 EXPECT_TRUE(model()->is_default_search_managed()); 873 EXPECT_TRUE(model()->is_default_search_managed());
876 const TemplateURL* actual_managed_default = 874 const TemplateURL* actual_managed_default =
877 model()->GetDefaultSearchProvider(); 875 model()->GetDefaultSearchProvider();
878 ExpectSimilar(expected_managed_default.get(), actual_managed_default); 876 ExpectSimilar(expected_managed_default.get(), actual_managed_default);
879 877
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 VerifyObserverFired(); 1237 VerifyObserverFired();
1240 EXPECT_TRUE(model()->is_default_search_managed()); 1238 EXPECT_TRUE(model()->is_default_search_managed());
1241 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); 1239 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size());
1242 1240
1243 // Verify that the default manager we are getting is the managed one. 1241 // Verify that the default manager we are getting is the managed one.
1244 TemplateURLData data; 1242 TemplateURLData data;
1245 data.SetShortName(ASCIIToUTF16(kName)); 1243 data.SetShortName(ASCIIToUTF16(kName));
1246 data.SetKeyword(ASCIIToUTF16(kKeyword)); 1244 data.SetKeyword(ASCIIToUTF16(kKeyword));
1247 data.SetURL(kSearchURL); 1245 data.SetURL(kSearchURL);
1248 data.favicon_url = GURL(kIconURL); 1246 data.favicon_url = GURL(kIconURL);
1249 data.show_in_default_list = true; 1247 data.prepopulate_id = 999999;
1250 data.input_encodings = base::SplitString( 1248 data.input_encodings = base::SplitString(
1251 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 1249 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
1252 data.alternate_urls.push_back(kAlternateURL); 1250 data.alternate_urls.push_back(kAlternateURL);
1253 data.search_terms_replacement_key = kSearchTermsReplacementKey; 1251 data.search_terms_replacement_key = kSearchTermsReplacementKey;
1254 std::unique_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data)); 1252 std::unique_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data));
1255 const TemplateURL* actual_managed_default = 1253 const TemplateURL* actual_managed_default =
1256 model()->GetDefaultSearchProvider(); 1254 model()->GetDefaultSearchProvider();
1257 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); 1255 ExpectSimilar(expected_managed_default1.get(), actual_managed_default);
1258 EXPECT_TRUE(actual_managed_default->show_in_default_list()); 1256 EXPECT_TRUE(model()->ShowInDefaultList(actual_managed_default));
1259 1257
1260 // Update the managed preference and check that the model has changed. 1258 // Update the managed preference and check that the model has changed.
1261 const char kNewName[] = "test2"; 1259 const char kNewName[] = "test2";
1262 const char kNewKeyword[] = "other.com"; 1260 const char kNewKeyword[] = "other.com";
1263 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; 1261 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}";
1264 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; 1262 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}";
1265 test_util()->SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword, 1263 test_util()->SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword,
1266 kNewSearchURL, kNewSuggestURL, std::string(), std::string(), 1264 kNewSearchURL, kNewSuggestURL, std::string(), std::string(),
1267 std::string(), std::string()); 1265 std::string(), std::string());
1268 VerifyObserverFired(); 1266 VerifyObserverFired();
1269 EXPECT_TRUE(model()->is_default_search_managed()); 1267 EXPECT_TRUE(model()->is_default_search_managed());
1270 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); 1268 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size());
1271 1269
1272 // Verify that the default manager we are now getting is the correct one. 1270 // Verify that the default manager we are now getting is the correct one.
1273 TemplateURLData data2; 1271 TemplateURLData data2;
1274 data2.SetShortName(ASCIIToUTF16(kNewName)); 1272 data2.SetShortName(ASCIIToUTF16(kNewName));
1275 data2.SetKeyword(ASCIIToUTF16(kNewKeyword)); 1273 data2.SetKeyword(ASCIIToUTF16(kNewKeyword));
1276 data2.SetURL(kNewSearchURL); 1274 data2.SetURL(kNewSearchURL);
1277 data2.suggestions_url = kNewSuggestURL; 1275 data2.suggestions_url = kNewSuggestURL;
1278 data2.show_in_default_list = true; 1276 data2.prepopulate_id = 999999;
1279 std::unique_ptr<TemplateURL> expected_managed_default2( 1277 std::unique_ptr<TemplateURL> expected_managed_default2(
1280 new TemplateURL(data2)); 1278 new TemplateURL(data2));
1281 actual_managed_default = model()->GetDefaultSearchProvider(); 1279 actual_managed_default = model()->GetDefaultSearchProvider();
1282 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); 1280 ExpectSimilar(expected_managed_default2.get(), actual_managed_default);
1283 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1281 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true);
1284 1282
1285 // Remove all the managed prefs and check that we are no longer managed. 1283 // Remove all the managed prefs and check that we are no longer managed.
1286 test_util()->RemoveManagedDefaultSearchPreferences(); 1284 test_util()->RemoveManagedDefaultSearchPreferences();
1287 VerifyObserverFired(); 1285 VerifyObserverFired();
1288 EXPECT_FALSE(model()->is_default_search_managed()); 1286 EXPECT_FALSE(model()->is_default_search_managed());
1289 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); 1287 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size());
1290 1288
1291 // The default should now be the user preference. 1289 // The default should now be the user preference.
1292 const TemplateURL* actual_final_managed_default = 1290 const TemplateURL* actual_final_managed_default =
1293 model()->GetDefaultSearchProvider(); 1291 model()->GetDefaultSearchProvider();
1294 ExpectSimilar(regular_default, actual_final_managed_default); 1292 ExpectSimilar(regular_default, actual_final_managed_default);
1295 EXPECT_EQ(actual_final_managed_default->show_in_default_list(), true); 1293 EXPECT_EQ(model()->ShowInDefaultList(actual_final_managed_default), true);
1296 1294
1297 // Disable the default search provider through policy. 1295 // Disable the default search provider through policy.
1298 test_util()->SetManagedDefaultSearchPreferences(false, std::string(), 1296 test_util()->SetManagedDefaultSearchPreferences(false, std::string(),
1299 std::string(), std::string(), std::string(), std::string(), 1297 std::string(), std::string(), std::string(), std::string(),
1300 std::string(), std::string(), std::string()); 1298 std::string(), std::string(), std::string());
1301 VerifyObserverFired(); 1299 VerifyObserverFired();
1302 EXPECT_TRUE(model()->is_default_search_managed()); 1300 EXPECT_TRUE(model()->is_default_search_managed());
1303 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); 1301 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider());
1304 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); 1302 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size());
1305 1303
1306 // Re-enable it. 1304 // Re-enable it.
1307 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword, 1305 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword,
1308 kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL, 1306 kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL,
1309 kSearchTermsReplacementKey); 1307 kSearchTermsReplacementKey);
1310 VerifyObserverFired(); 1308 VerifyObserverFired();
1311 EXPECT_TRUE(model()->is_default_search_managed()); 1309 EXPECT_TRUE(model()->is_default_search_managed());
1312 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); 1310 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size());
1313 1311
1314 // Verify that the default manager we are getting is the managed one. 1312 // Verify that the default manager we are getting is the managed one.
1315 actual_managed_default = model()->GetDefaultSearchProvider(); 1313 actual_managed_default = model()->GetDefaultSearchProvider();
1316 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); 1314 ExpectSimilar(expected_managed_default1.get(), actual_managed_default);
1317 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1315 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true);
1318 1316
1319 // Clear the model and disable the default search provider through policy. 1317 // Clear the model and disable the default search provider through policy.
1320 // Verify that there is no default search provider after loading the model. 1318 // Verify that there is no default search provider after loading the model.
1321 // This checks against regressions of http://crbug.com/67180 1319 // This checks against regressions of http://crbug.com/67180
1322 1320
1323 // First, remove the preferences, reset the model, and set a default. 1321 // First, remove the preferences, reset the model, and set a default.
1324 test_util()->RemoveManagedDefaultSearchPreferences(); 1322 test_util()->RemoveManagedDefaultSearchPreferences();
1325 test_util()->ResetModel(true); 1323 test_util()->ResetModel(true);
1326 TemplateURL* new_default = 1324 TemplateURL* new_default =
1327 model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1")); 1325 model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1"));
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1411 // Add third-party default search engine. 1409 // Add third-party default search engine.
1412 TemplateURL* user_dse = AddKeywordWithDate( 1410 TemplateURL* user_dse = AddKeywordWithDate(
1413 "user", "user", "http://www.goo.com/s?q={searchTerms}", 1411 "user", "user", "http://www.goo.com/s?q={searchTerms}",
1414 std::string(), std::string(), std::string(), 1412 std::string(), std::string(), std::string(),
1415 true, "UTF-8", Time(), Time()); 1413 true, "UTF-8", Time(), Time());
1416 model()->SetUserSelectedDefaultSearchProvider(user_dse); 1414 model()->SetUserSelectedDefaultSearchProvider(user_dse);
1417 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); 1415 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
1418 1416
1419 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( 1417 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate(
1420 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}", 1418 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}",
1421 std::string(), std::string(), std::string(), true, true, "UTF-8", Time(), 1419 std::string(), std::string(), std::string(), true, 999999, "UTF-8",
1422 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1420 Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1423 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( 1421 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
1424 new TemplateURL::AssociatedExtensionInfo("ext")); 1422 new TemplateURL::AssociatedExtensionInfo("ext"));
1425 extension_info->wants_to_be_default_engine = true; 1423 extension_info->wants_to_be_default_engine = true;
1426 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( 1424 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL(
1427 std::move(ext_dse), std::move(extension_info)); 1425 std::move(ext_dse), std::move(extension_info));
1428 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); 1426 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider());
1429 1427
1430 model()->RemoveExtensionControlledTURL( 1428 model()->RemoveExtensionControlledTURL(
1431 "ext", TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1429 "ext", TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1432 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); 1430 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider());
1433 } 1431 }
1434 1432
1435 TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) { 1433 TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) {
1436 test_util()->VerifyLoad(); 1434 test_util()->VerifyLoad();
1437 // Add third-party default search engine. 1435 // Add third-party default search engine.
1438 TemplateURL* user_dse = AddKeywordWithDate( 1436 TemplateURL* user_dse = AddKeywordWithDate(
1439 "user", "user", "http://www.goo.com/s?q={searchTerms}", 1437 "user", "user", "http://www.goo.com/s?q={searchTerms}",
1440 std::string(), std::string(), std::string(), 1438 std::string(), std::string(), std::string(),
1441 true, "UTF-8", Time(), Time()); 1439 true, "UTF-8", Time(), Time());
1442 model()->SetUserSelectedDefaultSearchProvider(user_dse); 1440 model()->SetUserSelectedDefaultSearchProvider(user_dse);
1443 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); 1441 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
1444 1442
1445 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( 1443 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate(
1446 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", 1444 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}",
1447 std::string(), std::string(), std::string(), true, false, "UTF-8", Time(), 1445 std::string(), std::string(), std::string(), true, 0, "UTF-8", Time(),
1448 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1446 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1449 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( 1447 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
1450 new TemplateURL::AssociatedExtensionInfo("ext1")); 1448 new TemplateURL::AssociatedExtensionInfo("ext1"));
1451 extension_info->wants_to_be_default_engine = false; 1449 extension_info->wants_to_be_default_engine = false;
1452 model()->AddExtensionControlledTURL(std::move(ext_dse), 1450 model()->AddExtensionControlledTURL(std::move(ext_dse),
1453 std::move(extension_info)); 1451 std::move(extension_info));
1454 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); 1452 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
1455 1453
1456 ext_dse = CreateKeywordWithDate( 1454 ext_dse = CreateKeywordWithDate(
1457 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", 1455 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}",
1458 std::string(), std::string(), std::string(), true, true, "UTF-8", Time(), 1456 std::string(), std::string(), std::string(), true, 999999, "UTF-8",
1459 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1457 Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1460 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2")); 1458 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2"));
1461 extension_info->wants_to_be_default_engine = true; 1459 extension_info->wants_to_be_default_engine = true;
1462 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( 1460 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL(
1463 std::move(ext_dse), std::move(extension_info)); 1461 std::move(ext_dse), std::move(extension_info));
1464 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); 1462 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider());
1465 1463
1466 test_util()->ResetModel(true); 1464 test_util()->ResetModel(true);
1467 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); 1465 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user"));
1468 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); 1466 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider());
1469 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); 1467 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1")));
(...skipping 12 matching lines...) Expand all
1482 test_util()->SetManagedDefaultSearchPreferences( 1480 test_util()->SetManagedDefaultSearchPreferences(
1483 true, kName, kKeyword, kSearchURL, std::string(), kIconURL, kEncodings, 1481 true, kName, kKeyword, kSearchURL, std::string(), kIconURL, kEncodings,
1484 kAlternateURL, kSearchTermsReplacementKey); 1482 kAlternateURL, kSearchTermsReplacementKey);
1485 test_util()->VerifyLoad(); 1483 test_util()->VerifyLoad();
1486 // Verify that the default manager we are getting is the managed one. 1484 // Verify that the default manager we are getting is the managed one.
1487 TemplateURLData data; 1485 TemplateURLData data;
1488 data.SetShortName(ASCIIToUTF16(kName)); 1486 data.SetShortName(ASCIIToUTF16(kName));
1489 data.SetKeyword(ASCIIToUTF16(kKeyword)); 1487 data.SetKeyword(ASCIIToUTF16(kKeyword));
1490 data.SetURL(kSearchURL); 1488 data.SetURL(kSearchURL);
1491 data.favicon_url = GURL(kIconURL); 1489 data.favicon_url = GURL(kIconURL);
1492 data.show_in_default_list = true;
1493 data.input_encodings = base::SplitString( 1490 data.input_encodings = base::SplitString(
1494 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 1491 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
1495 data.alternate_urls.push_back(kAlternateURL); 1492 data.alternate_urls.push_back(kAlternateURL);
1496 data.search_terms_replacement_key = kSearchTermsReplacementKey; 1493 data.search_terms_replacement_key = kSearchTermsReplacementKey;
1497 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); 1494 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data));
1498 EXPECT_TRUE(model()->is_default_search_managed()); 1495 EXPECT_TRUE(model()->is_default_search_managed());
1499 const TemplateURL* actual_managed_default = 1496 const TemplateURL* actual_managed_default =
1500 model()->GetDefaultSearchProvider(); 1497 model()->GetDefaultSearchProvider();
1501 ExpectSimilar(expected_managed_default.get(), actual_managed_default); 1498 ExpectSimilar(expected_managed_default.get(), actual_managed_default);
1502 1499
1503 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( 1500 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate(
1504 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", 1501 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}",
1505 std::string(), std::string(), std::string(), true, true, "UTF-8", Time(), 1502 std::string(), std::string(), std::string(), true, 999999, "UTF-8",
1506 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1503 Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1507 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( 1504 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
1508 new TemplateURL::AssociatedExtensionInfo("ext1")); 1505 new TemplateURL::AssociatedExtensionInfo("ext1"));
1509 extension_info->wants_to_be_default_engine = true; 1506 extension_info->wants_to_be_default_engine = true;
1510 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( 1507 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL(
1511 std::move(ext_dse), std::move(extension_info)); 1508 std::move(ext_dse), std::move(extension_info));
1512 EXPECT_EQ(ext_dse_ptr, 1509 EXPECT_EQ(ext_dse_ptr,
1513 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); 1510 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1")));
1514 EXPECT_TRUE(model()->is_default_search_managed()); 1511 EXPECT_TRUE(model()->is_default_search_managed());
1515 actual_managed_default = model()->GetDefaultSearchProvider(); 1512 actual_managed_default = model()->GetDefaultSearchProvider();
1516 ExpectSimilar(expected_managed_default.get(), actual_managed_default); 1513 ExpectSimilar(expected_managed_default.get(), actual_managed_default);
1517 } 1514 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698