Chromium Code Reviews

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: Whitespaces + fixes for trybot Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | 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...)
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...)
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...)
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 13 matching lines...)
642 }; 528 };
643 529
644 virtual void SetUp() { 530 virtual void SetUp() {
645 using policy::ConfigurationPolicyPrefStore; 531 using policy::ConfigurationPolicyPrefStore;
646 532
647 ui_thread_.reset(new BrowserThread(BrowserThread::UI, &loop_)), 533 ui_thread_.reset(new BrowserThread(BrowserThread::UI, &loop_)),
648 file_thread_.reset(new BrowserThread(BrowserThread::FILE, &loop_)), 534 file_thread_.reset(new BrowserThread(BrowserThread::FILE, &loop_)),
649 policy_provider_.reset(new policy::DummyConfigurationPolicyProvider( 535 policy_provider_.reset(new policy::DummyConfigurationPolicyProvider(
650 policy::ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList())); 536 policy::ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList()));
651 537
652 ConfigurationPolicyPrefStore* managed_store = 538 scoped_refptr<ConfigurationPolicyPrefStore> managed_store =
653 NewConfigurationPolicyPrefStore(); 539 NewConfigurationPolicyPrefStore();
654 managed_store->prefs()->SetString(prefs::kHomePage, 540 managed_store->prefs()->SetString(prefs::kHomePage,
655 managed_platform_pref::kHomepageValue); 541 managed_platform_pref::kHomepageValue);
656 expected_differing_paths_.insert(prefs::kHomePage); 542 expected_differing_paths_.insert(prefs::kHomePage);
657 543
658 ConfigurationPolicyPrefStore* device_management_store = 544 scoped_refptr<ConfigurationPolicyPrefStore> device_management_store =
659 NewConfigurationPolicyPrefStore(); 545 NewConfigurationPolicyPrefStore();
660 device_management_store->prefs()->SetString( 546 device_management_store->prefs()->SetString(
661 prefs::kDefaultSearchProviderName, 547 prefs::kDefaultSearchProviderName,
662 device_management_pref::kSearchProviderNameValue); 548 device_management_pref::kSearchProviderNameValue);
663 expected_differing_paths_.insert("default_search_provider"); 549 expected_differing_paths_.insert("default_search_provider");
664 expected_differing_paths_.insert(prefs::kDefaultSearchProviderName); 550 expected_differing_paths_.insert(prefs::kDefaultSearchProviderName);
665 551
666 ConfigurationPolicyPrefStore* recommended_store = 552 scoped_refptr<ConfigurationPolicyPrefStore> recommended_store =
667 NewConfigurationPolicyPrefStore(); 553 NewConfigurationPolicyPrefStore();
668 recommended_store->prefs()->SetInteger(prefs::kStabilityLaunchCount, 554 recommended_store->prefs()->SetInteger(prefs::kStabilityLaunchCount,
669 recommended_pref::kStabilityLaunchCountValue); 555 recommended_pref::kStabilityLaunchCountValue);
670 recommended_store->prefs()->SetBoolean(prefs::kRecommendedPref, 556 recommended_store->prefs()->SetBoolean(prefs::kRecommendedPref,
671 recommended_pref::kRecommendedPrefValue); 557 recommended_pref::kRecommendedPrefValue);
672 558
673 expected_differing_paths_.insert("this"); 559 expected_differing_paths_.insert("this");
674 expected_differing_paths_.insert("this.pref"); 560 expected_differing_paths_.insert("this.pref");
675 expected_differing_paths_.insert(prefs::kRecommendedPref); 561 expected_differing_paths_.insert(prefs::kRecommendedPref);
676 expected_differing_paths_.insert("user_experience_metrics"); 562 expected_differing_paths_.insert("user_experience_metrics");
(...skipping 13 matching lines...)
690 } 576 }
691 577
692 virtual void TearDown() { 578 virtual void TearDown() {
693 loop_.RunAllPending(); 579 loop_.RunAllPending();
694 pref_value_store_ = NULL; 580 pref_value_store_ = NULL;
695 file_thread_.reset(); 581 file_thread_.reset();
696 ui_thread_.reset(); 582 ui_thread_.reset();
697 } 583 }
698 584
699 // Creates a new ConfigurationPolicyPrefStore for testing. 585 // Creates a new ConfigurationPolicyPrefStore for testing.
700 policy::ConfigurationPolicyPrefStore* NewConfigurationPolicyPrefStore() { 586 scoped_refptr<policy::ConfigurationPolicyPrefStore>
587 NewConfigurationPolicyPrefStore() {
701 return new policy::ConfigurationPolicyPrefStore(policy_provider_.get()); 588 return new policy::ConfigurationPolicyPrefStore(policy_provider_.get());
702 } 589 }
703 590
704 // A vector of the preferences paths in policy PrefStores that are set at the 591 // A vector of the preferences paths in policy PrefStores that are set at the
705 // beginning of a test. Can be modified by the test to track changes that it 592 // beginning of a test. Can be modified by the test to track changes that it
706 // makes to the preferences stored in the managed and recommended PrefStores. 593 // makes to the preferences stored in the managed and recommended PrefStores.
707 std::set<std::string> expected_differing_paths_; 594 std::set<std::string> expected_differing_paths_;
708 595
709 MessageLoop loop_; 596 MessageLoop loop_;
710 MockPrefNotifier pref_notifier_; 597 MockPrefNotifier pref_notifier_;
(...skipping 24 matching lines...)
735 TEST_F(PrefValueStorePolicyRefreshTest, TestRefreshPolicyPrefsCompletion) { 622 TEST_F(PrefValueStorePolicyRefreshTest, TestRefreshPolicyPrefsCompletion) {
736 using policy::ConfigurationPolicyPrefStore; 623 using policy::ConfigurationPolicyPrefStore;
737 PrefChangeRecorder recorder; 624 PrefChangeRecorder recorder;
738 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) 625 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_))
739 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); 626 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record));
740 627
741 // Test changed preferences in the managed platform store and removed 628 // Test changed preferences in the managed platform store and removed
742 // preferences in the recommended store. In addition to "homepage", the other 629 // 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 630 // prefs that are set by default in the test class are removed by the
744 // DummyStore. 631 // DummyStore.
745 scoped_ptr<ConfigurationPolicyPrefStore> new_managed_platform_store( 632 scoped_refptr<ConfigurationPolicyPrefStore> new_managed_platform_store(
746 NewConfigurationPolicyPrefStore()); 633 NewConfigurationPolicyPrefStore());
747 new_managed_platform_store->prefs()->SetString("homepage", 634 new_managed_platform_store->prefs()->SetString("homepage",
748 "some other changed homepage"); 635 "some other changed homepage");
749 636
750 recorder.Clear(); 637 recorder.Clear();
751 pref_value_store_->RefreshPolicyPrefsCompletion( 638 pref_value_store_->RefreshPolicyPrefsCompletion(
752 new_managed_platform_store.release(), 639 new_managed_platform_store,
753 NewConfigurationPolicyPrefStore(), 640 NewConfigurationPolicyPrefStore(),
754 NewConfigurationPolicyPrefStore()); 641 NewConfigurationPolicyPrefStore());
755 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 642 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
756 643
757 // Test properties that have been removed from the managed platform store. 644 // Test properties that have been removed from the managed platform store.
758 // Homepage is still set in managed prefs. 645 // Homepage is still set in managed prefs.
759 expected_differing_paths_.clear(); 646 expected_differing_paths_.clear();
760 expected_differing_paths_.insert(prefs::kHomePage); 647 expected_differing_paths_.insert(prefs::kHomePage);
761 648
762 recorder.Clear(); 649 recorder.Clear();
763 pref_value_store_->RefreshPolicyPrefsCompletion( 650 pref_value_store_->RefreshPolicyPrefsCompletion(
764 NewConfigurationPolicyPrefStore(), 651 NewConfigurationPolicyPrefStore(),
765 NewConfigurationPolicyPrefStore(), 652 NewConfigurationPolicyPrefStore(),
766 NewConfigurationPolicyPrefStore()); 653 NewConfigurationPolicyPrefStore());
767 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 654 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
768 655
769 // Test properties that are added to the device management store. 656 // Test properties that are added to the device management store.
770 expected_differing_paths_.clear(); 657 expected_differing_paths_.clear();
771 expected_differing_paths_.insert(prefs::kHomePage); 658 expected_differing_paths_.insert(prefs::kHomePage);
772 scoped_ptr<ConfigurationPolicyPrefStore> new_device_management_store( 659 scoped_refptr<ConfigurationPolicyPrefStore> new_device_management_store(
773 NewConfigurationPolicyPrefStore()); 660 NewConfigurationPolicyPrefStore());
774 new_device_management_store->prefs()->SetString( 661 new_device_management_store->prefs()->SetString(
775 "homepage", "some other changed homepage"); 662 "homepage", "some other changed homepage");
776 663
777 recorder.Clear(); 664 recorder.Clear();
778 pref_value_store_->RefreshPolicyPrefsCompletion( 665 pref_value_store_->RefreshPolicyPrefsCompletion(
779 NewConfigurationPolicyPrefStore(), 666 NewConfigurationPolicyPrefStore(),
780 new_device_management_store.release(), 667 new_device_management_store,
781 NewConfigurationPolicyPrefStore()); 668 NewConfigurationPolicyPrefStore());
782 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 669 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
783 670
784 // Test properties that are added to the recommended store. 671 // Test properties that are added to the recommended store.
785 scoped_ptr<ConfigurationPolicyPrefStore> new_recommended_store( 672 scoped_refptr<ConfigurationPolicyPrefStore> new_recommended_store(
786 NewConfigurationPolicyPrefStore()); 673 NewConfigurationPolicyPrefStore());
787 new_recommended_store->prefs()->SetString("homepage", 674 new_recommended_store->prefs()->SetString("homepage",
788 "some other changed homepage 2"); 675 "some other changed homepage 2");
789 expected_differing_paths_.clear(); 676 expected_differing_paths_.clear();
790 expected_differing_paths_.insert(prefs::kHomePage); 677 expected_differing_paths_.insert(prefs::kHomePage);
791 678
792 recorder.Clear(); 679 recorder.Clear();
793 pref_value_store_->RefreshPolicyPrefsCompletion( 680 pref_value_store_->RefreshPolicyPrefsCompletion(
794 NewConfigurationPolicyPrefStore(), 681 NewConfigurationPolicyPrefStore(),
795 NewConfigurationPolicyPrefStore(), 682 NewConfigurationPolicyPrefStore(),
796 new_recommended_store.release()); 683 new_recommended_store);
797 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 684 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
798 685
799 // Test adding a multi-key path. 686 // Test adding a multi-key path.
800 new_managed_platform_store.reset(NewConfigurationPolicyPrefStore()); 687 new_managed_platform_store = NewConfigurationPolicyPrefStore();
801 new_managed_platform_store->prefs()->SetString("segment1.segment2", "value"); 688 new_managed_platform_store->prefs()->SetString("segment1.segment2", "value");
802 expected_differing_paths_.clear(); 689 expected_differing_paths_.clear();
803 expected_differing_paths_.insert(prefs::kHomePage); 690 expected_differing_paths_.insert(prefs::kHomePage);
804 expected_differing_paths_.insert("segment1"); 691 expected_differing_paths_.insert("segment1");
805 expected_differing_paths_.insert("segment1.segment2"); 692 expected_differing_paths_.insert("segment1.segment2");
806 693
807 recorder.Clear(); 694 recorder.Clear();
808 pref_value_store_->RefreshPolicyPrefsCompletion( 695 pref_value_store_->RefreshPolicyPrefsCompletion(
809 new_managed_platform_store.release(), 696 new_managed_platform_store,
810 NewConfigurationPolicyPrefStore(), 697 NewConfigurationPolicyPrefStore(),
811 NewConfigurationPolicyPrefStore()); 698 NewConfigurationPolicyPrefStore());
812 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 699 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
813 } 700 }
814 701
815 TEST_F(PrefValueStorePolicyRefreshTest, TestConcurrentPolicyRefresh) { 702 TEST_F(PrefValueStorePolicyRefreshTest, TestConcurrentPolicyRefresh) {
816 PrefChangeRecorder recorder; 703 PrefChangeRecorder recorder;
817 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) 704 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_))
818 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); 705 .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record));
819 706
(...skipping 11 matching lines...)
831 718
832 BrowserThread::PostTask( 719 BrowserThread::PostTask(
833 BrowserThread::UI, FROM_HERE, 720 BrowserThread::UI, FROM_HERE,
834 NewRunnableMethod( 721 NewRunnableMethod(
835 pref_value_store_.get(), 722 pref_value_store_.get(),
836 &PrefValueStore::RefreshPolicyPrefs)); 723 &PrefValueStore::RefreshPolicyPrefs));
837 724
838 loop_.RunAllPending(); 725 loop_.RunAllPending();
839 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); 726 EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs());
840 } 727 }
OLDNEW

Powered by Google App Engine