| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |