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

Side by Side Diff: chrome/browser/prefs/pref_value_store_unittest.cc

Issue 5915004: Introduce incognito preference settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 10 years 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 7
8 #include "base/scoped_ptr.h" 8 #include "base/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/browser_thread.h" 10 #include "chrome/browser/browser_thread.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 pref_value_store_ = new PrefValueStore( 103 pref_value_store_ = new PrefValueStore(
104 managed_platform_pref_store_, 104 managed_platform_pref_store_,
105 device_management_pref_store_, 105 device_management_pref_store_,
106 extension_pref_store_, 106 extension_pref_store_,
107 command_line_pref_store_, 107 command_line_pref_store_,
108 user_pref_store_, 108 user_pref_store_,
109 recommended_pref_store_, 109 recommended_pref_store_,
110 default_pref_store_, 110 default_pref_store_,
111 &pref_notifier_, 111 &pref_notifier_,
112 NULL); 112 NULL);
113
114 // Register prefs with the PrefValueStore.
115 pref_value_store_->RegisterPreferenceType(prefs::kApplicationLocale,
116 Value::TYPE_STRING);
117 pref_value_store_->RegisterPreferenceType(prefs::kCurrentThemeID,
118 Value::TYPE_STRING);
119 pref_value_store_->RegisterPreferenceType(
120 prefs::kDefaultSearchProviderName,
121 Value::TYPE_STRING);
122 pref_value_store_->RegisterPreferenceType(prefs::kDeleteCache,
123 Value::TYPE_BOOLEAN);
124 pref_value_store_->RegisterPreferenceType(prefs::kHomePage,
125 Value::TYPE_STRING);
126 pref_value_store_->RegisterPreferenceType(prefs::kStabilityLaunchCount,
127 Value::TYPE_INTEGER);
128 pref_value_store_->RegisterPreferenceType(prefs::kRecommendedPref,
129 Value::TYPE_BOOLEAN);
130 pref_value_store_->RegisterPreferenceType(prefs::kSampleDict,
131 Value::TYPE_DICTIONARY);
132 pref_value_store_->RegisterPreferenceType(prefs::kSampleList,
133 Value::TYPE_LIST);
134 pref_value_store_->RegisterPreferenceType(prefs::kDefaultPref,
135 Value::TYPE_INTEGER);
136 pref_value_store_->RegisterPreferenceType(prefs::kProxyAutoDetect,
137 Value::TYPE_BOOLEAN);
138 } 113 }
139 114
140 // Creates a new dictionary and stores some sample user preferences 115 // Creates a new dictionary and stores some sample user preferences
141 // in it. 116 // in it.
142 void CreateUserPrefs() { 117 void CreateUserPrefs() {
143 user_pref_store_ = new TestingPrefStore; 118 user_pref_store_ = new TestingPrefStore;
144 user_pref_store_->SetBoolean(prefs::kDeleteCache, 119 user_pref_store_->SetBoolean(prefs::kDeleteCache,
145 user_pref::kDeleteCacheValue); 120 user_pref::kDeleteCacheValue);
146 user_pref_store_->SetInteger(prefs::kStabilityLaunchCount, 121 user_pref_store_->SetInteger(prefs::kStabilityLaunchCount,
147 user_pref::kStabilityLaunchCountValue); 122 user_pref::kStabilityLaunchCountValue);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 sample_list->Set(0, Value::CreateIntegerValue(0)); 193 sample_list->Set(0, Value::CreateIntegerValue(0));
219 sample_list->Set(1, Value::CreateIntegerValue(1)); 194 sample_list->Set(1, Value::CreateIntegerValue(1));
220 sample_list->Set(2, Value::CreateIntegerValue(2)); 195 sample_list->Set(2, Value::CreateIntegerValue(2));
221 sample_list->Set(3, Value::CreateIntegerValue(3)); 196 sample_list->Set(3, Value::CreateIntegerValue(3));
222 return sample_list; 197 return sample_list;
223 } 198 }
224 199
225 MockPrefNotifier pref_notifier_; 200 MockPrefNotifier pref_notifier_;
226 scoped_refptr<PrefValueStore> pref_value_store_; 201 scoped_refptr<PrefValueStore> pref_value_store_;
227 202
228 // |PrefStore|s are owned by the |PrefValueStore|. 203 scoped_refptr<TestingPrefStore> managed_platform_pref_store_;
229 TestingPrefStore* managed_platform_pref_store_; 204 scoped_refptr<TestingPrefStore> device_management_pref_store_;
230 TestingPrefStore* device_management_pref_store_; 205 scoped_refptr<TestingPrefStore> extension_pref_store_;
231 TestingPrefStore* extension_pref_store_; 206 scoped_refptr<TestingPrefStore> command_line_pref_store_;
232 TestingPrefStore* command_line_pref_store_; 207 scoped_refptr<TestingPrefStore> user_pref_store_;
233 TestingPrefStore* user_pref_store_; 208 scoped_refptr<TestingPrefStore> recommended_pref_store_;
234 TestingPrefStore* recommended_pref_store_; 209 scoped_refptr<TestingPrefStore> default_pref_store_;
235 TestingPrefStore* default_pref_store_;
236 }; 210 };
237 211
238 TEST_F(PrefValueStoreTest, GetValue) { 212 TEST_F(PrefValueStoreTest, GetValue) {
239 Value* value; 213 Value* value;
240 214
241 // Test getting a managed platform value overwriting a user-defined and 215 // Test getting a managed platform value overwriting a user-defined and
242 // extension-defined value. 216 // extension-defined value.
243 value = NULL; 217 value = NULL;
244 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value)); 218 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, Value::TYPE_STRING,
219 &value));
245 std::string actual_str_value; 220 std::string actual_str_value;
246 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 221 EXPECT_TRUE(value->GetAsString(&actual_str_value));
247 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value); 222 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value);
248 223
249 // Test getting a managed platform value overwriting a user-defined value. 224 // Test getting a managed platform value overwriting a user-defined value.
250 value = NULL; 225 value = NULL;
251 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName, 226 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName,
252 &value)); 227 Value::TYPE_STRING, &value));
253 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 228 EXPECT_TRUE(value->GetAsString(&actual_str_value));
254 EXPECT_EQ(device_management_pref::kSearchProviderNameValue, 229 EXPECT_EQ(device_management_pref::kSearchProviderNameValue,
255 actual_str_value); 230 actual_str_value);
256 231
257 // Test getting an extension value overwriting a user-defined and 232 // Test getting an extension value overwriting a user-defined and
258 // command-line-defined value. 233 // command-line-defined value.
259 value = NULL; 234 value = NULL;
260 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, &value)); 235 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID,
236 Value::TYPE_STRING, &value));
261 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 237 EXPECT_TRUE(value->GetAsString(&actual_str_value));
262 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value); 238 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value);
263 239
264 // Test getting a command-line value overwriting a user-defined value. 240 // Test getting a command-line value overwriting a user-defined value.
265 value = NULL; 241 value = NULL;
266 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kApplicationLocale, &value)); 242 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kApplicationLocale,
243 Value::TYPE_STRING, &value));
267 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 244 EXPECT_TRUE(value->GetAsString(&actual_str_value));
268 EXPECT_EQ(command_line_pref::kApplicationLocaleValue, actual_str_value); 245 EXPECT_EQ(command_line_pref::kApplicationLocaleValue, actual_str_value);
269 246
270 // Test getting a user-set value. 247 // Test getting a user-set value.
271 value = NULL; 248 value = NULL;
272 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache, &value)); 249 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache,
250 Value::TYPE_BOOLEAN, &value));
273 bool actual_bool_value = false; 251 bool actual_bool_value = false;
274 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); 252 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value));
275 EXPECT_EQ(user_pref::kDeleteCacheValue, actual_bool_value); 253 EXPECT_EQ(user_pref::kDeleteCacheValue, actual_bool_value);
276 254
277 // Test getting a user set value overwriting a recommended value. 255 // Test getting a user set value overwriting a recommended value.
278 value = NULL; 256 value = NULL;
279 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount, 257 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount,
280 &value)); 258 Value::TYPE_INTEGER, &value));
281 int actual_int_value = -1; 259 int actual_int_value = -1;
282 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); 260 EXPECT_TRUE(value->GetAsInteger(&actual_int_value));
283 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, actual_int_value); 261 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, actual_int_value);
284 262
285 // Test getting a recommended value. 263 // Test getting a recommended value.
286 value = NULL; 264 value = NULL;
287 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPref, &value)); 265 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPref,
266 Value::TYPE_BOOLEAN, &value));
288 actual_bool_value = false; 267 actual_bool_value = false;
289 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); 268 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value));
290 EXPECT_EQ(recommended_pref::kRecommendedPrefValue, actual_bool_value); 269 EXPECT_EQ(recommended_pref::kRecommendedPrefValue, actual_bool_value);
291 270
292 // Test getting a default value. 271 // Test getting a default value.
293 value = NULL; 272 value = NULL;
294 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref, &value)); 273 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref,
274 Value::TYPE_INTEGER, &value));
295 actual_int_value = -1; 275 actual_int_value = -1;
296 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); 276 EXPECT_TRUE(value->GetAsInteger(&actual_int_value));
297 EXPECT_EQ(default_pref::kDefaultValue, actual_int_value); 277 EXPECT_EQ(default_pref::kDefaultValue, actual_int_value);
298 278
299 // Test getting a preference value that the |PrefValueStore| 279 // Test getting a preference value that the |PrefValueStore|
300 // does not contain. 280 // does not contain.
301 FundamentalValue tmp_dummy_value(true); 281 FundamentalValue tmp_dummy_value(true);
302 Value* v_null = &tmp_dummy_value; 282 Value* v_null = &tmp_dummy_value;
303 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, &v_null)); 283 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref,
284 Value::TYPE_STRING, &v_null));
304 ASSERT_TRUE(v_null == NULL); 285 ASSERT_TRUE(v_null == NULL);
305 } 286 }
306 287
307 // Make sure that if a preference changes type, so the wrong type is stored in
308 // the user pref file, it uses the correct fallback value instead.
309 TEST_F(PrefValueStoreTest, GetValueChangedType) {
310 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber());
311
312 // Check falling back to a recommended value.
313 user_pref_store_->SetString(prefs::kStabilityLaunchCount,
314 "not an integer");
315 Value* value = NULL;
316 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount,
317 &value));
318 ASSERT_TRUE(value != NULL);
319 ASSERT_EQ(Value::TYPE_INTEGER, value->GetType());
320 int actual_int_value = -1;
321 EXPECT_TRUE(value->GetAsInteger(&actual_int_value));
322 EXPECT_EQ(recommended_pref::kStabilityLaunchCountValue, actual_int_value);
323
324 // Check falling back multiple times, to a default string.
325 default_pref_store_->SetString(prefs::kHomePage,
326 default_pref::kHomepageValue);
327 managed_platform_pref_store_->SetInteger(prefs::kHomePage, 1);
328 device_management_pref_store_->SetInteger(prefs::kHomePage, 1);
329 extension_pref_store_->SetInteger(prefs::kHomePage, 1);
330 command_line_pref_store_->SetInteger(prefs::kHomePage, 1);
331 user_pref_store_->SetInteger(prefs::kHomePage, 1);
332 recommended_pref_store_->SetInteger(prefs::kHomePage, 1);
333
334 value = NULL;
335 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value));
336 ASSERT_TRUE(value != NULL);
337 ASSERT_EQ(Value::TYPE_STRING, value->GetType());
338 std::string actual_str_value;
339 EXPECT_TRUE(value->GetAsString(&actual_str_value));
340 EXPECT_EQ(default_pref::kHomepageValue, actual_str_value);
341 }
342
343 TEST_F(PrefValueStoreTest, HasPrefPath) {
344 // Managed Platform preference
345 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
346 // Device management preference
347 EXPECT_TRUE(pref_value_store_->HasPrefPath(
348 prefs::kDefaultSearchProviderName));
349 // Extension preference
350 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
351 // User preference
352 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kDeleteCache));
353 // Recommended preference
354 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
355 // Default preference
356 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
357 // Unknown preference
358 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
359 }
360
361 TEST_F(PrefValueStoreTest, PrefChanges) { 288 TEST_F(PrefValueStoreTest, PrefChanges) {
362 // Setup. 289 // Setup.
363 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber()); 290 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber());
364 const char managed_platform_pref_path[] = "managed_platform_pref"; 291 const char managed_platform_pref_path[] = "managed_platform_pref";
365 pref_value_store_->RegisterPreferenceType(managed_platform_pref_path,
366 Value::TYPE_STRING);
367 managed_platform_pref_store_->SetString(managed_platform_pref_path, 292 managed_platform_pref_store_->SetString(managed_platform_pref_path,
368 "managed value"); 293 "managed value");
369 const char user_pref_path[] = "user_pref"; 294 const char user_pref_path[] = "user_pref";
370 pref_value_store_->RegisterPreferenceType(user_pref_path, Value::TYPE_STRING);
371 user_pref_store_->SetString(user_pref_path, "user value"); 295 user_pref_store_->SetString(user_pref_path, "user value");
372 const char default_pref_path[] = "default_pref"; 296 const char default_pref_path[] = "default_pref";
373 pref_value_store_->RegisterPreferenceType(default_pref_path,
374 Value::TYPE_STRING);
375 default_pref_store_->SetString(default_pref_path, "default value"); 297 default_pref_store_->SetString(default_pref_path, "default value");
376 Mock::VerifyAndClearExpectations(&pref_notifier_); 298 Mock::VerifyAndClearExpectations(&pref_notifier_);
377 299
378 // Check pref controlled by highest-priority store. 300 // Check pref controlled by highest-priority store.
379 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(managed_platform_pref_path)); 301 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(managed_platform_pref_path));
380 managed_platform_pref_store_->NotifyPrefValueChanged( 302 managed_platform_pref_store_->NotifyPrefValueChanged(
381 managed_platform_pref_path); 303 managed_platform_pref_path);
382 Mock::VerifyAndClearExpectations(&pref_notifier_); 304 Mock::VerifyAndClearExpectations(&pref_notifier_);
383 305
384 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); 306 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 Mock::VerifyAndClearExpectations(&pref_notifier_); 341 Mock::VerifyAndClearExpectations(&pref_notifier_);
420 342
421 // The notification should only be triggered after the last store is done. 343 // The notification should only be triggered after the last store is done.
422 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1); 344 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1);
423 user_pref_store_->SetInitializationCompleted(); 345 user_pref_store_->SetInitializationCompleted();
424 Mock::VerifyAndClearExpectations(&pref_notifier_); 346 Mock::VerifyAndClearExpectations(&pref_notifier_);
425 } 347 }
426 348
427 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) { 349 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) {
428 // Test a managed platform preference. 350 // Test a managed platform preference.
429 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
430 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore( 351 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore(
431 prefs::kHomePage)); 352 prefs::kHomePage));
432 353
433 // Test a device management preference. 354 // Test a device management preference.
434 ASSERT_TRUE(pref_value_store_->HasPrefPath(
435 prefs::kDefaultSearchProviderName));
436 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore( 355 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore(
437 prefs::kDefaultSearchProviderName)); 356 prefs::kDefaultSearchProviderName));
438 357
439 // Test an extension preference. 358 // Test an extension preference.
440 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
441 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 359 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
442 prefs::kCurrentThemeID)); 360 prefs::kCurrentThemeID));
443 361
444 // Test a command-line preference. 362 // Test a command-line preference.
445 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
446 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 363 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
447 prefs::kApplicationLocale)); 364 prefs::kApplicationLocale));
448 365
449 // Test a user preference. 366 // Test a user preference.
450 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount));
451 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 367 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
452 prefs::kStabilityLaunchCount)); 368 prefs::kStabilityLaunchCount));
453 369
454 // Test a preference from the recommended pref store. 370 // Test a preference from the recommended pref store.
455 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
456 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 371 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
457 prefs::kRecommendedPref)); 372 prefs::kRecommendedPref));
458 373
459 // Test a preference from the default pref store. 374 // Test a preference from the default pref store.
460 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
461 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 375 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
462 prefs::kDefaultPref)); 376 prefs::kDefaultPref));
463 377
464 // Test a preference for which the PrefValueStore does not contain a value. 378 // Test a preference for which the PrefValueStore does not contain a value.
465 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
466 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 379 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
467 prefs::kMissingPref)); 380 prefs::kMissingPref));
468 } 381 }
469 382
470 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { 383 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) {
471 // Test a managed platform preference. 384 // Test a managed platform preference.
472 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
473 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage)); 385 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage));
474 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 386 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
475 prefs::kHomePage)); 387 prefs::kHomePage));
476 388
477 // Test a device management preference. 389 // Test a device management preference.
478 ASSERT_TRUE(pref_value_store_->HasPrefPath(
479 prefs::kDefaultSearchProviderName));
480 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( 390 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(
481 prefs::kDefaultSearchProviderName)); 391 prefs::kDefaultSearchProviderName));
482 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 392 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
483 prefs::kDefaultSearchProviderName)); 393 prefs::kDefaultSearchProviderName));
484 394
485 // Test an extension preference. 395 // Test an extension preference.
486 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
487 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( 396 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(
488 prefs::kCurrentThemeID)); 397 prefs::kCurrentThemeID));
489 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( 398 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore(
490 prefs::kCurrentThemeID)); 399 prefs::kCurrentThemeID));
491 400
492 // Test a command-line preference. 401 // Test a command-line preference.
493 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
494 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 402 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
495 prefs::kApplicationLocale)); 403 prefs::kApplicationLocale));
496 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 404 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
497 prefs::kApplicationLocale)); 405 prefs::kApplicationLocale));
498 406
499 // Test a user preference. 407 // Test a user preference.
500 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount));
501 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 408 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
502 prefs::kStabilityLaunchCount)); 409 prefs::kStabilityLaunchCount));
503 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 410 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
504 prefs::kStabilityLaunchCount)); 411 prefs::kStabilityLaunchCount));
505 412
506 // Test a preference from the recommended pref store. 413 // Test a preference from the recommended pref store.
507 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
508 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 414 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
509 prefs::kRecommendedPref)); 415 prefs::kRecommendedPref));
510 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 416 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
511 prefs::kRecommendedPref)); 417 prefs::kRecommendedPref));
512 418
513 // Test a preference from the default pref store. 419 // Test a preference from the default pref store.
514 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
515 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 420 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
516 prefs::kDefaultPref)); 421 prefs::kDefaultPref));
517 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 422 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
518 prefs::kDefaultPref)); 423 prefs::kDefaultPref));
519 424
520 // Test a preference for which the PrefValueStore does not contain a value. 425 // Test a preference for which the PrefValueStore does not contain a value.
521 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
522 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 426 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
523 prefs::kMissingPref)); 427 prefs::kMissingPref));
524 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 428 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
525 prefs::kMissingPref)); 429 prefs::kMissingPref));
526 } 430 }
527 431
528 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { 432 TEST_F(PrefValueStoreTest, PrefValueInUserStore) {
529 // Test a managed platform preference. 433 // Test a managed platform preference.
530 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
531 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage)); 434 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage));
532 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage)); 435 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage));
533 436
534 // Test a device management preference. 437 // Test a device management preference.
535 ASSERT_TRUE(pref_value_store_->HasPrefPath(
536 prefs::kDefaultSearchProviderName));
537 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( 438 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
538 prefs::kDefaultSearchProviderName)); 439 prefs::kDefaultSearchProviderName));
539 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 440 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
540 prefs::kDefaultSearchProviderName)); 441 prefs::kDefaultSearchProviderName));
541 442
542 // Test an extension preference. 443 // Test an extension preference.
543 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
544 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( 444 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
545 prefs::kCurrentThemeID)); 445 prefs::kCurrentThemeID));
546 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 446 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
547 prefs::kCurrentThemeID)); 447 prefs::kCurrentThemeID));
548 448
549 // Test a command-line preference. 449 // Test a command-line preference.
550 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
551 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( 450 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
552 prefs::kApplicationLocale)); 451 prefs::kApplicationLocale));
553 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 452 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
554 prefs::kApplicationLocale)); 453 prefs::kApplicationLocale));
555 454
556 // Test a user preference. 455 // Test a user preference.
557 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount));
558 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( 456 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
559 prefs::kStabilityLaunchCount)); 457 prefs::kStabilityLaunchCount));
560 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore( 458 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore(
561 prefs::kStabilityLaunchCount)); 459 prefs::kStabilityLaunchCount));
562 460
563 // Test a preference from the recommended pref store. 461 // Test a preference from the recommended pref store.
564 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
565 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( 462 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(
566 prefs::kRecommendedPref)); 463 prefs::kRecommendedPref));
567 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 464 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
568 prefs::kRecommendedPref)); 465 prefs::kRecommendedPref));
569 466
570 // Test a preference from the default pref store. 467 // Test a preference from the default pref store.
571 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
572 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref)); 468 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref));
573 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref)); 469 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref));
574 470
575 // Test a preference for which the PrefValueStore does not contain a value. 471 // Test a preference for which the PrefValueStore does not contain a value.
576 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
577 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref)); 472 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref));
578 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref)); 473 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref));
579 } 474 }
580 475
581 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { 476 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) {
582 // Test a managed platform preference. 477 // Test a managed platform preference.
583 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
584 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage)); 478 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage));
585 479
586 // Test a device management preference. 480 // Test a device management preference.
587 ASSERT_TRUE(pref_value_store_->HasPrefPath(
588 prefs::kDefaultSearchProviderName));
589 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 481 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
590 prefs::kDefaultSearchProviderName)); 482 prefs::kDefaultSearchProviderName));
591 483
592 // Test an extension preference. 484 // Test an extension preference.
593 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
594 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 485 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
595 prefs::kCurrentThemeID)); 486 prefs::kCurrentThemeID));
596 487
597 // Test a command-line preference. 488 // Test a command-line preference.
598 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
599 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 489 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
600 prefs::kApplicationLocale)); 490 prefs::kApplicationLocale));
601 491
602 // Test a user preference. 492 // Test a user preference.
603 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount));
604 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 493 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
605 prefs::kStabilityLaunchCount)); 494 prefs::kStabilityLaunchCount));
606 495
607 // Test a preference from the recommended pref store. 496 // Test a preference from the recommended pref store.
608 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
609 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 497 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
610 prefs::kRecommendedPref)); 498 prefs::kRecommendedPref));
611 499
612 // Test a preference from the default pref store. 500 // Test a preference from the default pref store.
613 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
614 EXPECT_TRUE( 501 EXPECT_TRUE(
615 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref)); 502 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref));
616 503
617 // Test a preference for which the PrefValueStore does not contain a value. 504 // Test a preference for which the PrefValueStore does not contain a value.
618 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
619 EXPECT_FALSE( 505 EXPECT_FALSE(
620 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); 506 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref));
621 } 507 }
622 508
623 // TODO(mnissler, danno): Clean this up when refactoring 509 // TODO(mnissler, danno): Clean this up when refactoring
624 // ConfigurationPolicyPrefStore. 510 // ConfigurationPolicyPrefStore.
625 class PrefValueStorePolicyRefreshTest : public testing::Test { 511 class PrefValueStorePolicyRefreshTest : public testing::Test {
626 protected: 512 protected:
627 // Records preference changes. 513 // Records preference changes.
628 class PrefChangeRecorder { 514 class PrefChangeRecorder {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 TEST_F(PrefValueStorePolicyRefreshTest, TestRefreshPolicyPrefsCompletion) { 621 TEST_F(PrefValueStorePolicyRefreshTest, TestRefreshPolicyPrefsCompletion) {
736 using policy::ConfigurationPolicyPrefStore; 622 using policy::ConfigurationPolicyPrefStore;
737 PrefChangeRecorder recorder; 623 PrefChangeRecorder recorder;
738 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) 624 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_))
739 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); 625 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record));
740 626
741 // Test changed preferences in the managed platform store and removed 627 // Test changed preferences in the managed platform store and removed
742 // preferences in the recommended store. In addition to "homepage", the other 628 // preferences in the recommended store. In addition to "homepage", the other
743 // prefs that are set by default in the test class are removed by the 629 // prefs that are set by default in the test class are removed by the
744 // DummyStore. 630 // DummyStore.
745 scoped_ptr<ConfigurationPolicyPrefStore> new_managed_platform_store( 631 scoped_refptr<ConfigurationPolicyPrefStore> new_managed_platform_store(
746 NewConfigurationPolicyPrefStore()); 632 NewConfigurationPolicyPrefStore());
747 new_managed_platform_store->prefs()->SetString("homepage", 633 new_managed_platform_store->prefs()->SetString("homepage",
748 "some other changed homepage"); 634 "some other changed homepage");
749 635
750 recorder.Clear(); 636 recorder.Clear();
751 pref_value_store_->RefreshPolicyPrefsCompletion( 637 pref_value_store_->RefreshPolicyPrefsCompletion(
752 new_managed_platform_store.release(), 638 new_managed_platform_store,
753 NewConfigurationPolicyPrefStore(), 639 NewConfigurationPolicyPrefStore(),
754 NewConfigurationPolicyPrefStore()); 640 NewConfigurationPolicyPrefStore());
755 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 641 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
756 642
757 // Test properties that have been removed from the managed platform store. 643 // Test properties that have been removed from the managed platform store.
758 // Homepage is still set in managed prefs. 644 // Homepage is still set in managed prefs.
759 expected_differing_paths_.clear(); 645 expected_differing_paths_.clear();
760 expected_differing_paths_.insert(prefs::kHomePage); 646 expected_differing_paths_.insert(prefs::kHomePage);
761 647
762 recorder.Clear(); 648 recorder.Clear();
763 pref_value_store_->RefreshPolicyPrefsCompletion( 649 pref_value_store_->RefreshPolicyPrefsCompletion(
764 NewConfigurationPolicyPrefStore(), 650 NewConfigurationPolicyPrefStore(),
765 NewConfigurationPolicyPrefStore(), 651 NewConfigurationPolicyPrefStore(),
766 NewConfigurationPolicyPrefStore()); 652 NewConfigurationPolicyPrefStore());
767 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 653 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
768 654
769 // Test properties that are added to the device management store. 655 // Test properties that are added to the device management store.
770 expected_differing_paths_.clear(); 656 expected_differing_paths_.clear();
771 expected_differing_paths_.insert(prefs::kHomePage); 657 expected_differing_paths_.insert(prefs::kHomePage);
772 scoped_ptr<ConfigurationPolicyPrefStore> new_device_management_store( 658 scoped_refptr<ConfigurationPolicyPrefStore> new_device_management_store(
773 NewConfigurationPolicyPrefStore()); 659 NewConfigurationPolicyPrefStore());
774 new_device_management_store->prefs()->SetString( 660 new_device_management_store->prefs()->SetString(
775 "homepage", "some other changed homepage"); 661 "homepage", "some other changed homepage");
776 662
777 recorder.Clear(); 663 recorder.Clear();
778 pref_value_store_->RefreshPolicyPrefsCompletion( 664 pref_value_store_->RefreshPolicyPrefsCompletion(
779 NewConfigurationPolicyPrefStore(), 665 NewConfigurationPolicyPrefStore(),
780 new_device_management_store.release(), 666 new_device_management_store,
781 NewConfigurationPolicyPrefStore()); 667 NewConfigurationPolicyPrefStore());
782 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 668 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
783 669
784 // Test properties that are added to the recommended store. 670 // Test properties that are added to the recommended store.
785 scoped_ptr<ConfigurationPolicyPrefStore> new_recommended_store( 671 scoped_refptr<ConfigurationPolicyPrefStore> new_recommended_store(
786 NewConfigurationPolicyPrefStore()); 672 NewConfigurationPolicyPrefStore());
787 new_recommended_store->prefs()->SetString("homepage", 673 new_recommended_store->prefs()->SetString("homepage",
788 "some other changed homepage 2"); 674 "some other changed homepage 2");
789 expected_differing_paths_.clear(); 675 expected_differing_paths_.clear();
790 expected_differing_paths_.insert(prefs::kHomePage); 676 expected_differing_paths_.insert(prefs::kHomePage);
791 677
792 recorder.Clear(); 678 recorder.Clear();
793 pref_value_store_->RefreshPolicyPrefsCompletion( 679 pref_value_store_->RefreshPolicyPrefsCompletion(
794 NewConfigurationPolicyPrefStore(), 680 NewConfigurationPolicyPrefStore(),
795 NewConfigurationPolicyPrefStore(), 681 NewConfigurationPolicyPrefStore(),
796 new_recommended_store.release()); 682 new_recommended_store);
797 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 683 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
798 684
799 // Test adding a multi-key path. 685 // Test adding a multi-key path.
800 new_managed_platform_store.reset(NewConfigurationPolicyPrefStore()); 686 new_managed_platform_store = NewConfigurationPolicyPrefStore();
801 new_managed_platform_store->prefs()->SetString("segment1.segment2", "value"); 687 new_managed_platform_store->prefs()->SetString("segment1.segment2", "value");
802 expected_differing_paths_.clear(); 688 expected_differing_paths_.clear();
803 expected_differing_paths_.insert(prefs::kHomePage); 689 expected_differing_paths_.insert(prefs::kHomePage);
804 expected_differing_paths_.insert("segment1"); 690 expected_differing_paths_.insert("segment1");
805 expected_differing_paths_.insert("segment1.segment2"); 691 expected_differing_paths_.insert("segment1.segment2");
806 692
807 recorder.Clear(); 693 recorder.Clear();
808 pref_value_store_->RefreshPolicyPrefsCompletion( 694 pref_value_store_->RefreshPolicyPrefsCompletion(
809 new_managed_platform_store.release(), 695 new_managed_platform_store,
810 NewConfigurationPolicyPrefStore(), 696 NewConfigurationPolicyPrefStore(),
811 NewConfigurationPolicyPrefStore()); 697 NewConfigurationPolicyPrefStore());
812 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 698 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
813 } 699 }
814 700
815 TEST_F(PrefValueStorePolicyRefreshTest, TestConcurrentPolicyRefresh) { 701 TEST_F(PrefValueStorePolicyRefreshTest, TestConcurrentPolicyRefresh) {
816 PrefChangeRecorder recorder; 702 PrefChangeRecorder recorder;
817 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) 703 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_))
818 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); 704 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record));
819 705
(...skipping 11 matching lines...) Expand all
831 717
832 BrowserThread::PostTask( 718 BrowserThread::PostTask(
833 BrowserThread::UI, FROM_HERE, 719 BrowserThread::UI, FROM_HERE,
834 NewRunnableMethod( 720 NewRunnableMethod(
835 pref_value_store_.get(), 721 pref_value_store_.get(),
836 &PrefValueStore::RefreshPolicyPrefs)); 722 &PrefValueStore::RefreshPolicyPrefs));
837 723
838 loop_.RunAllPending(); 724 loop_.RunAllPending();
839 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 725 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
840 } 726 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698