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

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

Issue 268643002: Use the DefaultSearchManager as the exclusive authority on DSE, ignoring Web Data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix the KeywordEditorControllerTest. Created 6 years, 7 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/files/scoped_temp_dir.h" 5 #include "base/files/scoped_temp_dir.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/strings/string_split.h" 7 #include "base/strings/string_split.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 } 146 }
147 147
148 TestingPrefServiceSyncable* pref_service() { return pref_service_.get(); } 148 TestingPrefServiceSyncable* pref_service() { return pref_service_.get(); }
149 149
150 private: 150 private:
151 scoped_ptr<TestingPrefServiceSyncable> pref_service_; 151 scoped_ptr<TestingPrefServiceSyncable> pref_service_;
152 152
153 DISALLOW_COPY_AND_ASSIGN(DefaultSearchManagerTest); 153 DISALLOW_COPY_AND_ASSIGN(DefaultSearchManagerTest);
154 }; 154 };
155 155
156 // Test that a TemplateURLData object is properly written and read from Prefs.
157 TEST_F(DefaultSearchManagerTest, ReadAndWritePref) {
158 DefaultSearchManager manager(pref_service(),
159 DefaultSearchManager::ObserverCallback());
160 TemplateURLData data;
161 data.short_name = base::UTF8ToUTF16("name1");
162 data.SetKeyword(base::UTF8ToUTF16("key1"));
163 data.SetURL("http://foo1/{searchTerms}");
164 data.suggestions_url = "http://sugg1";
165 data.alternate_urls.push_back("http://foo1/alt");
166 data.favicon_url = GURL("http://icon1");
167 data.safe_for_autoreplace = true;
168 data.show_in_default_list = true;
169 base::SplitString("UTF-8;UTF-16", ';', &data.input_encodings);
170 data.date_created = base::Time();
171 data.last_modified = base::Time();
172
173 manager.SetUserSelectedDefaultSearchEngine(data);
174 TemplateURLData* read_data = manager.GetDefaultSearchEngine(NULL);
175 ExpectSimilar(&data, read_data);
176 }
177
156 // Test DefaultSearchmanager handles user-selected DSEs correctly. 178 // Test DefaultSearchmanager handles user-selected DSEs correctly.
157 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByUserPref) { 179 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByUserPref) {
158 size_t default_search_index = 0; 180 size_t default_search_index = 0;
159 DefaultSearchManager manager(pref_service()); 181 DefaultSearchManager manager(pref_service(),
182 DefaultSearchManager::ObserverCallback());
160 ScopedVector<TemplateURLData> prepopulated_urls = 183 ScopedVector<TemplateURLData> prepopulated_urls =
161 TemplateURLPrepopulateData::GetPrepopulatedEngines(pref_service(), 184 TemplateURLPrepopulateData::GetPrepopulatedEngines(pref_service(),
162 &default_search_index); 185 &default_search_index);
186 DefaultSearchManager::Source source = DefaultSearchManager::FROM_POLICY;
163 // If no user pref is set, we should use the pre-populated values. 187 // If no user pref is set, we should use the pre-populated values.
164 ExpectSimilar(prepopulated_urls[default_search_index], 188 ExpectSimilar(prepopulated_urls[default_search_index],
165 manager.GetDefaultSearchEngine()); 189 manager.GetDefaultSearchEngine(&source));
166 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, 190 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, source);
Peter Kasting 2014/05/03 00:28:18 As the compile failures note, you need to change a
erikwright (departed) 2014/05/05 01:49:38 Done.
167 manager.GetDefaultSearchEngineSource());
168 191
169 // Setting a user pref overrides the pre-populated values. 192 // Setting a user pref overrides the pre-populated values.
170 scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user"); 193 scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user");
171 manager.SetUserSelectedDefaultSearchEngine(*data.get()); 194 manager.SetUserSelectedDefaultSearchEngine(*data.get());
172 195
173 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine()); 196 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
174 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, 197 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, source);
175 manager.GetDefaultSearchEngineSource());
176 198
177 // Updating the user pref (externally to this instance of 199 // Updating the user pref (externally to this instance of
178 // DefaultSearchManager) triggers an update. 200 // DefaultSearchManager) triggers an update.
179 scoped_ptr<TemplateURLData> new_data = GenerateDummyTemplateURLData("user2"); 201 scoped_ptr<TemplateURLData> new_data = GenerateDummyTemplateURLData("user2");
180 DefaultSearchManager other_manager(pref_service()); 202 DefaultSearchManager other_manager(pref_service(),
203 DefaultSearchManager::ObserverCallback());
181 other_manager.SetUserSelectedDefaultSearchEngine(*new_data.get()); 204 other_manager.SetUserSelectedDefaultSearchEngine(*new_data.get());
182 205
183 ExpectSimilar(new_data.get(), manager.GetDefaultSearchEngine()); 206 ExpectSimilar(new_data.get(), manager.GetDefaultSearchEngine(&source));
184 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, 207 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, source);
185 manager.GetDefaultSearchEngineSource());
186 208
187 // Clearing the user pref should cause the default search to revert to the 209 // Clearing the user pref should cause the default search to revert to the
188 // prepopulated vlaues. 210 // prepopulated vlaues.
189 manager.ClearUserSelectedDefaultSearchEngine(); 211 manager.ClearUserSelectedDefaultSearchEngine();
190 ExpectSimilar(prepopulated_urls[default_search_index], 212 ExpectSimilar(prepopulated_urls[default_search_index],
191 manager.GetDefaultSearchEngine()); 213 manager.GetDefaultSearchEngine(&source));
192 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, 214 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, source);
193 manager.GetDefaultSearchEngineSource());
194 } 215 }
195 216
196 // Test that DefaultSearch manager detects changes to kSearchProviderOverrides. 217 // Test that DefaultSearch manager detects changes to kSearchProviderOverrides.
197 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByOverrides) { 218 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByOverrides) {
198 SetOverrides(pref_service(), false); 219 SetOverrides(pref_service(), false);
199 size_t default_search_index = 0; 220 size_t default_search_index = 0;
200 DefaultSearchManager manager(pref_service()); 221 DefaultSearchManager manager(pref_service(),
222 DefaultSearchManager::ObserverCallback());
201 ScopedVector<TemplateURLData> prepopulated_urls = 223 ScopedVector<TemplateURLData> prepopulated_urls =
202 TemplateURLPrepopulateData::GetPrepopulatedEngines(pref_service(), 224 TemplateURLPrepopulateData::GetPrepopulatedEngines(pref_service(),
203 &default_search_index); 225 &default_search_index);
204 226
205 TemplateURLData first_default(*manager.GetDefaultSearchEngine()); 227 DefaultSearchManager::Source source = DefaultSearchManager::FROM_POLICY;
228 TemplateURLData first_default(*manager.GetDefaultSearchEngine(&source));
206 ExpectSimilar(prepopulated_urls[default_search_index], &first_default); 229 ExpectSimilar(prepopulated_urls[default_search_index], &first_default);
207 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, 230 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, source);
208 manager.GetDefaultSearchEngineSource());
209 231
210 // Update the overrides: 232 // Update the overrides:
211 SetOverrides(pref_service(), true); 233 SetOverrides(pref_service(), true);
212 prepopulated_urls = TemplateURLPrepopulateData::GetPrepopulatedEngines( 234 prepopulated_urls = TemplateURLPrepopulateData::GetPrepopulatedEngines(
213 pref_service(), &default_search_index); 235 pref_service(), &default_search_index);
214 236
215 // Make sure DefaultSearchManager updated: 237 // Make sure DefaultSearchManager updated:
216 ExpectSimilar(prepopulated_urls[default_search_index], 238 ExpectSimilar(prepopulated_urls[default_search_index],
217 manager.GetDefaultSearchEngine()); 239 manager.GetDefaultSearchEngine(&source));
218 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, 240 EXPECT_EQ(DefaultSearchManager::Source::FROM_FALLBACK, source);
219 manager.GetDefaultSearchEngineSource()); 241 EXPECT_NE(manager.GetDefaultSearchEngine(NULL)->short_name,
220 EXPECT_NE(manager.GetDefaultSearchEngine()->short_name,
221 first_default.short_name); 242 first_default.short_name);
222 EXPECT_NE(manager.GetDefaultSearchEngine()->keyword(), 243 EXPECT_NE(manager.GetDefaultSearchEngine(NULL)->keyword(),
223 first_default.keyword()); 244 first_default.keyword());
224 } 245 }
225 246
226 // Test DefaultSearchManager handles policy-enforced DSEs correctly. 247 // Test DefaultSearchManager handles policy-enforced DSEs correctly.
227 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByPolicy) { 248 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByPolicy) {
228 DefaultSearchManager manager(pref_service()); 249 DefaultSearchManager manager(pref_service(),
250 DefaultSearchManager::ObserverCallback());
229 scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user"); 251 scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user");
230 manager.SetUserSelectedDefaultSearchEngine(*data.get()); 252 manager.SetUserSelectedDefaultSearchEngine(*data.get());
231 253
232 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine()); 254 DefaultSearchManager::Source source = DefaultSearchManager::FROM_FALLBACK;
233 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, 255 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
234 manager.GetDefaultSearchEngineSource()); 256 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, source);
235 257
236 scoped_ptr<TemplateURLData> policy_data = 258 scoped_ptr<TemplateURLData> policy_data =
237 GenerateDummyTemplateURLData("policy"); 259 GenerateDummyTemplateURLData("policy");
238 SetPolicy(pref_service(), true, policy_data.get()); 260 SetPolicy(pref_service(), true, policy_data.get());
239 261
240 ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine()); 262 ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine(&source));
241 EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY, 263 EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY, source);
242 manager.GetDefaultSearchEngineSource());
243 264
244 TemplateURLData null_policy_data; 265 TemplateURLData null_policy_data;
245 SetPolicy(pref_service(), false, &null_policy_data); 266 SetPolicy(pref_service(), false, &null_policy_data);
246 EXPECT_EQ(NULL, manager.GetDefaultSearchEngine()); 267 EXPECT_EQ(NULL, manager.GetDefaultSearchEngine(&source));
247 EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY, 268 EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY, source);
248 manager.GetDefaultSearchEngineSource());
249 269
250 pref_service()->RemoveManagedPref(kDefaultSearchProviderData); 270 pref_service()->RemoveManagedPref(kDefaultSearchProviderData);
251 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine()); 271 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
252 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, 272 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, source);
253 manager.GetDefaultSearchEngineSource());
254 } 273 }
255 274
256 // Test DefaultSearchManager handles extension-controlled DSEs correctly. 275 // Test DefaultSearchManager handles extension-controlled DSEs correctly.
257 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByExtension) { 276 TEST_F(DefaultSearchManagerTest, DefaultSearchSetByExtension) {
258 DefaultSearchManager manager(pref_service()); 277 DefaultSearchManager manager(pref_service(),
278 DefaultSearchManager::ObserverCallback());
259 scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user"); 279 scoped_ptr<TemplateURLData> data = GenerateDummyTemplateURLData("user");
260 manager.SetUserSelectedDefaultSearchEngine(*data.get()); 280 manager.SetUserSelectedDefaultSearchEngine(*data.get());
261 281
262 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine()); 282 DefaultSearchManager::Source source = DefaultSearchManager::FROM_FALLBACK;
263 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, 283 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
264 manager.GetDefaultSearchEngineSource()); 284 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, source);
265 285
266 // Extension trumps prefs: 286 // Extension trumps prefs:
267 scoped_ptr<TemplateURLData> extension_data_1 = 287 scoped_ptr<TemplateURLData> extension_data_1 =
268 GenerateDummyTemplateURLData("ext1"); 288 GenerateDummyTemplateURLData("ext1");
269 TemplateURLData tmp = *extension_data_1.get(); 289 TemplateURLData tmp = *extension_data_1.get();
270 manager.SetExtensionControlledDefaultSearchEngine(extension_data_1.release()); 290 manager.SetExtensionControlledDefaultSearchEngine(extension_data_1.release());
271 291
272 ExpectSimilar(&tmp, manager.GetDefaultSearchEngine()); 292 ExpectSimilar(&tmp, manager.GetDefaultSearchEngine(&source));
273 EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION, 293 EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION, source);
274 manager.GetDefaultSearchEngineSource());
275 294
276 // Policy trumps extension: 295 // Policy trumps extension:
277 scoped_ptr<TemplateURLData> policy_data = 296 scoped_ptr<TemplateURLData> policy_data =
278 GenerateDummyTemplateURLData("policy"); 297 GenerateDummyTemplateURLData("policy");
279 SetPolicy(pref_service(), true, policy_data.get()); 298 SetPolicy(pref_service(), true, policy_data.get());
280 299
281 ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine()); 300 ExpectSimilar(policy_data.get(), manager.GetDefaultSearchEngine(&source));
282 EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY, 301 EXPECT_EQ(DefaultSearchManager::Source::FROM_POLICY, source);
283 manager.GetDefaultSearchEngineSource());
284 pref_service()->RemoveManagedPref(kDefaultSearchProviderData); 302 pref_service()->RemoveManagedPref(kDefaultSearchProviderData);
285 303
286 // Extensions trump each other: 304 // Extensions trump each other:
287 scoped_ptr<TemplateURLData> extension_data_2 = 305 scoped_ptr<TemplateURLData> extension_data_2 =
288 GenerateDummyTemplateURLData("ext2"); 306 GenerateDummyTemplateURLData("ext2");
289 scoped_ptr<TemplateURLData> extension_data_3 = 307 scoped_ptr<TemplateURLData> extension_data_3 =
290 GenerateDummyTemplateURLData("ext3"); 308 GenerateDummyTemplateURLData("ext3");
291 tmp = *extension_data_3.get(); 309 tmp = *extension_data_3.get();
292 manager.SetExtensionControlledDefaultSearchEngine(extension_data_2.release()); 310 manager.SetExtensionControlledDefaultSearchEngine(extension_data_2.release());
293 manager.SetExtensionControlledDefaultSearchEngine(extension_data_3.release()); 311 manager.SetExtensionControlledDefaultSearchEngine(extension_data_3.release());
294 312
295 ExpectSimilar(&tmp, manager.GetDefaultSearchEngine()); 313 ExpectSimilar(&tmp, manager.GetDefaultSearchEngine(&source));
296 EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION, 314 EXPECT_EQ(DefaultSearchManager::Source::FROM_EXTENSION, source);
297 manager.GetDefaultSearchEngineSource());
298 315
299 manager.ClearExtensionControlledDefaultSearchEngine(); 316 manager.ClearExtensionControlledDefaultSearchEngine();
300 317
301 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine()); 318 ExpectSimilar(data.get(), manager.GetDefaultSearchEngine(&source));
302 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, 319 EXPECT_EQ(DefaultSearchManager::Source::FROM_USER, source);
303 manager.GetDefaultSearchEngineSource());
304 } 320 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698