| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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" |
| 11 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 11 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 // Create a fresh PrefValueStore. | 102 // Create a fresh PrefValueStore. |
| 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 | |
| 113 // Register prefs with the PrefValueStore. | |
| 114 pref_value_store_->RegisterPreferenceType(prefs::kApplicationLocale, | |
| 115 Value::TYPE_STRING); | |
| 116 pref_value_store_->RegisterPreferenceType(prefs::kCurrentThemeID, | |
| 117 Value::TYPE_STRING); | |
| 118 pref_value_store_->RegisterPreferenceType( | |
| 119 prefs::kDefaultSearchProviderName, | |
| 120 Value::TYPE_STRING); | |
| 121 pref_value_store_->RegisterPreferenceType(prefs::kDeleteCache, | |
| 122 Value::TYPE_BOOLEAN); | |
| 123 pref_value_store_->RegisterPreferenceType(prefs::kHomePage, | |
| 124 Value::TYPE_STRING); | |
| 125 pref_value_store_->RegisterPreferenceType(prefs::kStabilityLaunchCount, | |
| 126 Value::TYPE_INTEGER); | |
| 127 pref_value_store_->RegisterPreferenceType(prefs::kRecommendedPref, | |
| 128 Value::TYPE_BOOLEAN); | |
| 129 pref_value_store_->RegisterPreferenceType(prefs::kSampleDict, | |
| 130 Value::TYPE_DICTIONARY); | |
| 131 pref_value_store_->RegisterPreferenceType(prefs::kSampleList, | |
| 132 Value::TYPE_LIST); | |
| 133 pref_value_store_->RegisterPreferenceType(prefs::kDefaultPref, | |
| 134 Value::TYPE_INTEGER); | |
| 135 pref_value_store_->RegisterPreferenceType(prefs::kProxyMode, | |
| 136 Value::TYPE_INTEGER); | |
| 137 } | 112 } |
| 138 | 113 |
| 139 // Creates a new dictionary and stores some sample user preferences | 114 // Creates a new dictionary and stores some sample user preferences |
| 140 // in it. | 115 // in it. |
| 141 void CreateUserPrefs() { | 116 void CreateUserPrefs() { |
| 142 user_pref_store_ = new TestingPrefStore; | 117 user_pref_store_ = new TestingPrefStore; |
| 143 user_pref_store_->SetBoolean(prefs::kDeleteCache, | 118 user_pref_store_->SetBoolean(prefs::kDeleteCache, |
| 144 user_pref::kDeleteCacheValue); | 119 user_pref::kDeleteCacheValue); |
| 145 user_pref_store_->SetInteger(prefs::kStabilityLaunchCount, | 120 user_pref_store_->SetInteger(prefs::kStabilityLaunchCount, |
| 146 user_pref::kStabilityLaunchCountValue); | 121 user_pref::kStabilityLaunchCountValue); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 sample_list->Set(0, Value::CreateIntegerValue(0)); | 192 sample_list->Set(0, Value::CreateIntegerValue(0)); |
| 218 sample_list->Set(1, Value::CreateIntegerValue(1)); | 193 sample_list->Set(1, Value::CreateIntegerValue(1)); |
| 219 sample_list->Set(2, Value::CreateIntegerValue(2)); | 194 sample_list->Set(2, Value::CreateIntegerValue(2)); |
| 220 sample_list->Set(3, Value::CreateIntegerValue(3)); | 195 sample_list->Set(3, Value::CreateIntegerValue(3)); |
| 221 return sample_list; | 196 return sample_list; |
| 222 } | 197 } |
| 223 | 198 |
| 224 MockPrefNotifier pref_notifier_; | 199 MockPrefNotifier pref_notifier_; |
| 225 scoped_refptr<PrefValueStore> pref_value_store_; | 200 scoped_refptr<PrefValueStore> pref_value_store_; |
| 226 | 201 |
| 227 // |PrefStore|s are owned by the |PrefValueStore|. | 202 scoped_refptr<TestingPrefStore> managed_platform_pref_store_; |
| 228 TestingPrefStore* managed_platform_pref_store_; | 203 scoped_refptr<TestingPrefStore> device_management_pref_store_; |
| 229 TestingPrefStore* device_management_pref_store_; | 204 scoped_refptr<TestingPrefStore> extension_pref_store_; |
| 230 TestingPrefStore* extension_pref_store_; | 205 scoped_refptr<TestingPrefStore> command_line_pref_store_; |
| 231 TestingPrefStore* command_line_pref_store_; | 206 scoped_refptr<TestingPrefStore> user_pref_store_; |
| 232 TestingPrefStore* user_pref_store_; | 207 scoped_refptr<TestingPrefStore> recommended_pref_store_; |
| 233 TestingPrefStore* recommended_pref_store_; | 208 scoped_refptr<TestingPrefStore> default_pref_store_; |
| 234 TestingPrefStore* default_pref_store_; | |
| 235 }; | 209 }; |
| 236 | 210 |
| 237 TEST_F(PrefValueStoreTest, GetValue) { | 211 TEST_F(PrefValueStoreTest, GetValue) { |
| 238 Value* value; | 212 Value* value; |
| 239 | 213 |
| 240 // Test getting a managed platform value overwriting a user-defined and | 214 // Test getting a managed platform value overwriting a user-defined and |
| 241 // extension-defined value. | 215 // extension-defined value. |
| 242 value = NULL; | 216 value = NULL; |
| 243 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value)); | 217 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, Value::TYPE_STRING, |
| 218 &value)); |
| 244 std::string actual_str_value; | 219 std::string actual_str_value; |
| 245 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | 220 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 246 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value); | 221 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value); |
| 247 | 222 |
| 248 // Test getting a managed platform value overwriting a user-defined value. | 223 // Test getting a managed platform value overwriting a user-defined value. |
| 249 value = NULL; | 224 value = NULL; |
| 250 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName, | 225 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName, |
| 251 &value)); | 226 Value::TYPE_STRING, &value)); |
| 252 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | 227 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 253 EXPECT_EQ(device_management_pref::kSearchProviderNameValue, | 228 EXPECT_EQ(device_management_pref::kSearchProviderNameValue, |
| 254 actual_str_value); | 229 actual_str_value); |
| 255 | 230 |
| 256 // Test getting an extension value overwriting a user-defined and | 231 // Test getting an extension value overwriting a user-defined and |
| 257 // command-line-defined value. | 232 // command-line-defined value. |
| 258 value = NULL; | 233 value = NULL; |
| 259 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, &value)); | 234 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, |
| 235 Value::TYPE_STRING, &value)); |
| 260 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | 236 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 261 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value); | 237 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value); |
| 262 | 238 |
| 263 // Test getting a command-line value overwriting a user-defined value. | 239 // Test getting a command-line value overwriting a user-defined value. |
| 264 value = NULL; | 240 value = NULL; |
| 265 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kApplicationLocale, &value)); | 241 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kApplicationLocale, |
| 242 Value::TYPE_STRING, &value)); |
| 266 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | 243 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 267 EXPECT_EQ(command_line_pref::kApplicationLocaleValue, actual_str_value); | 244 EXPECT_EQ(command_line_pref::kApplicationLocaleValue, actual_str_value); |
| 268 | 245 |
| 269 // Test getting a user-set value. | 246 // Test getting a user-set value. |
| 270 value = NULL; | 247 value = NULL; |
| 271 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache, &value)); | 248 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache, |
| 249 Value::TYPE_BOOLEAN, &value)); |
| 272 bool actual_bool_value = false; | 250 bool actual_bool_value = false; |
| 273 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); | 251 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); |
| 274 EXPECT_EQ(user_pref::kDeleteCacheValue, actual_bool_value); | 252 EXPECT_EQ(user_pref::kDeleteCacheValue, actual_bool_value); |
| 275 | 253 |
| 276 // Test getting a user set value overwriting a recommended value. | 254 // Test getting a user set value overwriting a recommended value. |
| 277 value = NULL; | 255 value = NULL; |
| 278 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount, | 256 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount, |
| 279 &value)); | 257 Value::TYPE_INTEGER, &value)); |
| 280 int actual_int_value = -1; | 258 int actual_int_value = -1; |
| 281 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 259 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); |
| 282 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, actual_int_value); | 260 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, actual_int_value); |
| 283 | 261 |
| 284 // Test getting a recommended value. | 262 // Test getting a recommended value. |
| 285 value = NULL; | 263 value = NULL; |
| 286 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPref, &value)); | 264 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPref, |
| 265 Value::TYPE_BOOLEAN, &value)); |
| 287 actual_bool_value = false; | 266 actual_bool_value = false; |
| 288 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); | 267 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); |
| 289 EXPECT_EQ(recommended_pref::kRecommendedPrefValue, actual_bool_value); | 268 EXPECT_EQ(recommended_pref::kRecommendedPrefValue, actual_bool_value); |
| 290 | 269 |
| 291 // Test getting a default value. | 270 // Test getting a default value. |
| 292 value = NULL; | 271 value = NULL; |
| 293 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref, &value)); | 272 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref, |
| 273 Value::TYPE_INTEGER, &value)); |
| 294 actual_int_value = -1; | 274 actual_int_value = -1; |
| 295 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 275 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); |
| 296 EXPECT_EQ(default_pref::kDefaultValue, actual_int_value); | 276 EXPECT_EQ(default_pref::kDefaultValue, actual_int_value); |
| 297 | 277 |
| 298 // Test getting a preference value that the |PrefValueStore| | 278 // Test getting a preference value that the |PrefValueStore| |
| 299 // does not contain. | 279 // does not contain. |
| 300 FundamentalValue tmp_dummy_value(true); | 280 FundamentalValue tmp_dummy_value(true); |
| 301 Value* v_null = &tmp_dummy_value; | 281 Value* v_null = &tmp_dummy_value; |
| 302 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, &v_null)); | 282 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, |
| 283 Value::TYPE_STRING, &v_null)); |
| 303 ASSERT_TRUE(v_null == NULL); | 284 ASSERT_TRUE(v_null == NULL); |
| 304 } | 285 } |
| 305 | 286 |
| 306 // Make sure that if a preference changes type, so the wrong type is stored in | |
| 307 // the user pref file, it uses the correct fallback value instead. | |
| 308 TEST_F(PrefValueStoreTest, GetValueChangedType) { | |
| 309 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber()); | |
| 310 | |
| 311 // Check falling back to a recommended value. | |
| 312 user_pref_store_->SetString(prefs::kStabilityLaunchCount, | |
| 313 "not an integer"); | |
| 314 Value* value = NULL; | |
| 315 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount, | |
| 316 &value)); | |
| 317 ASSERT_TRUE(value != NULL); | |
| 318 ASSERT_EQ(Value::TYPE_INTEGER, value->GetType()); | |
| 319 int actual_int_value = -1; | |
| 320 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | |
| 321 EXPECT_EQ(recommended_pref::kStabilityLaunchCountValue, actual_int_value); | |
| 322 | |
| 323 // Check falling back multiple times, to a default string. | |
| 324 default_pref_store_->SetString(prefs::kHomePage, | |
| 325 default_pref::kHomepageValue); | |
| 326 managed_platform_pref_store_->SetInteger(prefs::kHomePage, 1); | |
| 327 device_management_pref_store_->SetInteger(prefs::kHomePage, 1); | |
| 328 extension_pref_store_->SetInteger(prefs::kHomePage, 1); | |
| 329 command_line_pref_store_->SetInteger(prefs::kHomePage, 1); | |
| 330 user_pref_store_->SetInteger(prefs::kHomePage, 1); | |
| 331 recommended_pref_store_->SetInteger(prefs::kHomePage, 1); | |
| 332 | |
| 333 value = NULL; | |
| 334 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value)); | |
| 335 ASSERT_TRUE(value != NULL); | |
| 336 ASSERT_EQ(Value::TYPE_STRING, value->GetType()); | |
| 337 std::string actual_str_value; | |
| 338 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | |
| 339 EXPECT_EQ(default_pref::kHomepageValue, actual_str_value); | |
| 340 } | |
| 341 | |
| 342 TEST_F(PrefValueStoreTest, HasPrefPath) { | |
| 343 // Managed Platform preference | |
| 344 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); | |
| 345 // Device management preference | |
| 346 EXPECT_TRUE(pref_value_store_->HasPrefPath( | |
| 347 prefs::kDefaultSearchProviderName)); | |
| 348 // Extension preference | |
| 349 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); | |
| 350 // User preference | |
| 351 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kDeleteCache)); | |
| 352 // Recommended preference | |
| 353 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); | |
| 354 // Default preference | |
| 355 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); | |
| 356 // Unknown preference | |
| 357 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); | |
| 358 } | |
| 359 | |
| 360 TEST_F(PrefValueStoreTest, PrefChanges) { | 287 TEST_F(PrefValueStoreTest, PrefChanges) { |
| 361 // Setup. | 288 // Setup. |
| 362 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber()); | 289 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber()); |
| 363 const char managed_platform_pref_path[] = "managed_platform_pref"; | 290 const char managed_platform_pref_path[] = "managed_platform_pref"; |
| 364 pref_value_store_->RegisterPreferenceType(managed_platform_pref_path, | |
| 365 Value::TYPE_STRING); | |
| 366 managed_platform_pref_store_->SetString(managed_platform_pref_path, | 291 managed_platform_pref_store_->SetString(managed_platform_pref_path, |
| 367 "managed value"); | 292 "managed value"); |
| 368 const char user_pref_path[] = "user_pref"; | 293 const char user_pref_path[] = "user_pref"; |
| 369 pref_value_store_->RegisterPreferenceType(user_pref_path, Value::TYPE_STRING); | |
| 370 user_pref_store_->SetString(user_pref_path, "user value"); | 294 user_pref_store_->SetString(user_pref_path, "user value"); |
| 371 const char default_pref_path[] = "default_pref"; | 295 const char default_pref_path[] = "default_pref"; |
| 372 pref_value_store_->RegisterPreferenceType(default_pref_path, | |
| 373 Value::TYPE_STRING); | |
| 374 default_pref_store_->SetString(default_pref_path, "default value"); | 296 default_pref_store_->SetString(default_pref_path, "default value"); |
| 375 Mock::VerifyAndClearExpectations(&pref_notifier_); | 297 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 376 | 298 |
| 377 // Check pref controlled by highest-priority store. | 299 // Check pref controlled by highest-priority store. |
| 378 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(managed_platform_pref_path)); | 300 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(managed_platform_pref_path)); |
| 379 managed_platform_pref_store_->NotifyPrefValueChanged( | 301 managed_platform_pref_store_->NotifyPrefValueChanged( |
| 380 managed_platform_pref_path); | 302 managed_platform_pref_path); |
| 381 Mock::VerifyAndClearExpectations(&pref_notifier_); | 303 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 382 | 304 |
| 383 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); | 305 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 Mock::VerifyAndClearExpectations(&pref_notifier_); | 340 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 419 | 341 |
| 420 // The notification should only be triggered after the last store is done. | 342 // The notification should only be triggered after the last store is done. |
| 421 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1); | 343 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1); |
| 422 user_pref_store_->SetInitializationCompleted(); | 344 user_pref_store_->SetInitializationCompleted(); |
| 423 Mock::VerifyAndClearExpectations(&pref_notifier_); | 345 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 424 } | 346 } |
| 425 | 347 |
| 426 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) { | 348 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) { |
| 427 // Test a managed platform preference. | 349 // Test a managed platform preference. |
| 428 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); | |
| 429 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore( | 350 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 430 prefs::kHomePage)); | 351 prefs::kHomePage)); |
| 431 | 352 |
| 432 // Test a device management preference. | 353 // Test a device management preference. |
| 433 ASSERT_TRUE(pref_value_store_->HasPrefPath( | |
| 434 prefs::kDefaultSearchProviderName)); | |
| 435 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore( | 354 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore( |
| 436 prefs::kDefaultSearchProviderName)); | 355 prefs::kDefaultSearchProviderName)); |
| 437 | 356 |
| 438 // Test an extension preference. | 357 // Test an extension preference. |
| 439 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); | |
| 440 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 358 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 441 prefs::kCurrentThemeID)); | 359 prefs::kCurrentThemeID)); |
| 442 | 360 |
| 443 // Test a command-line preference. | 361 // Test a command-line preference. |
| 444 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); | |
| 445 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 362 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 446 prefs::kApplicationLocale)); | 363 prefs::kApplicationLocale)); |
| 447 | 364 |
| 448 // Test a user preference. | 365 // Test a user preference. |
| 449 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount)); | |
| 450 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 366 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 451 prefs::kStabilityLaunchCount)); | 367 prefs::kStabilityLaunchCount)); |
| 452 | 368 |
| 453 // Test a preference from the recommended pref store. | 369 // Test a preference from the recommended pref store. |
| 454 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); | |
| 455 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 370 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 456 prefs::kRecommendedPref)); | 371 prefs::kRecommendedPref)); |
| 457 | 372 |
| 458 // Test a preference from the default pref store. | 373 // Test a preference from the default pref store. |
| 459 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); | |
| 460 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 374 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 461 prefs::kDefaultPref)); | 375 prefs::kDefaultPref)); |
| 462 | 376 |
| 463 // Test a preference for which the PrefValueStore does not contain a value. | 377 // Test a preference for which the PrefValueStore does not contain a value. |
| 464 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); | |
| 465 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 378 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( |
| 466 prefs::kMissingPref)); | 379 prefs::kMissingPref)); |
| 467 } | 380 } |
| 468 | 381 |
| 469 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { | 382 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { |
| 470 // Test a managed platform preference. | 383 // Test a managed platform preference. |
| 471 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); | |
| 472 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage)); | 384 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage)); |
| 473 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 385 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 474 prefs::kHomePage)); | 386 prefs::kHomePage)); |
| 475 | 387 |
| 476 // Test a device management preference. | 388 // Test a device management preference. |
| 477 ASSERT_TRUE(pref_value_store_->HasPrefPath( | |
| 478 prefs::kDefaultSearchProviderName)); | |
| 479 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( | 389 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( |
| 480 prefs::kDefaultSearchProviderName)); | 390 prefs::kDefaultSearchProviderName)); |
| 481 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 391 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 482 prefs::kDefaultSearchProviderName)); | 392 prefs::kDefaultSearchProviderName)); |
| 483 | 393 |
| 484 // Test an extension preference. | 394 // Test an extension preference. |
| 485 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); | |
| 486 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( | 395 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( |
| 487 prefs::kCurrentThemeID)); | 396 prefs::kCurrentThemeID)); |
| 488 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( | 397 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( |
| 489 prefs::kCurrentThemeID)); | 398 prefs::kCurrentThemeID)); |
| 490 | 399 |
| 491 // Test a command-line preference. | 400 // Test a command-line preference. |
| 492 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); | |
| 493 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 401 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 494 prefs::kApplicationLocale)); | 402 prefs::kApplicationLocale)); |
| 495 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 403 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 496 prefs::kApplicationLocale)); | 404 prefs::kApplicationLocale)); |
| 497 | 405 |
| 498 // Test a user preference. | 406 // Test a user preference. |
| 499 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount)); | |
| 500 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 407 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 501 prefs::kStabilityLaunchCount)); | 408 prefs::kStabilityLaunchCount)); |
| 502 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 409 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 503 prefs::kStabilityLaunchCount)); | 410 prefs::kStabilityLaunchCount)); |
| 504 | 411 |
| 505 // Test a preference from the recommended pref store. | 412 // Test a preference from the recommended pref store. |
| 506 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); | |
| 507 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 413 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 508 prefs::kRecommendedPref)); | 414 prefs::kRecommendedPref)); |
| 509 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 415 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 510 prefs::kRecommendedPref)); | 416 prefs::kRecommendedPref)); |
| 511 | 417 |
| 512 // Test a preference from the default pref store. | 418 // Test a preference from the default pref store. |
| 513 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); | |
| 514 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 419 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 515 prefs::kDefaultPref)); | 420 prefs::kDefaultPref)); |
| 516 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 421 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 517 prefs::kDefaultPref)); | 422 prefs::kDefaultPref)); |
| 518 | 423 |
| 519 // Test a preference for which the PrefValueStore does not contain a value. | 424 // Test a preference for which the PrefValueStore does not contain a value. |
| 520 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); | |
| 521 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 425 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 522 prefs::kMissingPref)); | 426 prefs::kMissingPref)); |
| 523 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 427 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 524 prefs::kMissingPref)); | 428 prefs::kMissingPref)); |
| 525 } | 429 } |
| 526 | 430 |
| 527 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { | 431 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { |
| 528 // Test a managed platform preference. | 432 // Test a managed platform preference. |
| 529 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); | |
| 530 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage)); | 433 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage)); |
| 531 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage)); | 434 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage)); |
| 532 | 435 |
| 533 // Test a device management preference. | 436 // Test a device management preference. |
| 534 ASSERT_TRUE(pref_value_store_->HasPrefPath( | |
| 535 prefs::kDefaultSearchProviderName)); | |
| 536 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | 437 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 537 prefs::kDefaultSearchProviderName)); | 438 prefs::kDefaultSearchProviderName)); |
| 538 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 439 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 539 prefs::kDefaultSearchProviderName)); | 440 prefs::kDefaultSearchProviderName)); |
| 540 | 441 |
| 541 // Test an extension preference. | 442 // Test an extension preference. |
| 542 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); | |
| 543 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | 443 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 544 prefs::kCurrentThemeID)); | 444 prefs::kCurrentThemeID)); |
| 545 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 445 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 546 prefs::kCurrentThemeID)); | 446 prefs::kCurrentThemeID)); |
| 547 | 447 |
| 548 // Test a command-line preference. | 448 // Test a command-line preference. |
| 549 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); | |
| 550 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | 449 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 551 prefs::kApplicationLocale)); | 450 prefs::kApplicationLocale)); |
| 552 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 451 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 553 prefs::kApplicationLocale)); | 452 prefs::kApplicationLocale)); |
| 554 | 453 |
| 555 // Test a user preference. | 454 // Test a user preference. |
| 556 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount)); | |
| 557 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | 455 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 558 prefs::kStabilityLaunchCount)); | 456 prefs::kStabilityLaunchCount)); |
| 559 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore( | 457 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore( |
| 560 prefs::kStabilityLaunchCount)); | 458 prefs::kStabilityLaunchCount)); |
| 561 | 459 |
| 562 // Test a preference from the recommended pref store. | 460 // Test a preference from the recommended pref store. |
| 563 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); | |
| 564 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( | 461 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( |
| 565 prefs::kRecommendedPref)); | 462 prefs::kRecommendedPref)); |
| 566 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 463 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 567 prefs::kRecommendedPref)); | 464 prefs::kRecommendedPref)); |
| 568 | 465 |
| 569 // Test a preference from the default pref store. | 466 // Test a preference from the default pref store. |
| 570 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); | |
| 571 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref)); | 467 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref)); |
| 572 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref)); | 468 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref)); |
| 573 | 469 |
| 574 // Test a preference for which the PrefValueStore does not contain a value. | 470 // Test a preference for which the PrefValueStore does not contain a value. |
| 575 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); | |
| 576 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref)); | 471 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref)); |
| 577 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref)); | 472 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref)); |
| 578 } | 473 } |
| 579 | 474 |
| 580 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { | 475 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { |
| 581 // Test a managed platform preference. | 476 // Test a managed platform preference. |
| 582 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); | |
| 583 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage)); | 477 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage)); |
| 584 | 478 |
| 585 // Test a device management preference. | 479 // Test a device management preference. |
| 586 ASSERT_TRUE(pref_value_store_->HasPrefPath( | |
| 587 prefs::kDefaultSearchProviderName)); | |
| 588 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 480 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 589 prefs::kDefaultSearchProviderName)); | 481 prefs::kDefaultSearchProviderName)); |
| 590 | 482 |
| 591 // Test an extension preference. | 483 // Test an extension preference. |
| 592 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); | |
| 593 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 484 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 594 prefs::kCurrentThemeID)); | 485 prefs::kCurrentThemeID)); |
| 595 | 486 |
| 596 // Test a command-line preference. | 487 // Test a command-line preference. |
| 597 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); | |
| 598 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 488 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 599 prefs::kApplicationLocale)); | 489 prefs::kApplicationLocale)); |
| 600 | 490 |
| 601 // Test a user preference. | 491 // Test a user preference. |
| 602 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount)); | |
| 603 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 492 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 604 prefs::kStabilityLaunchCount)); | 493 prefs::kStabilityLaunchCount)); |
| 605 | 494 |
| 606 // Test a preference from the recommended pref store. | 495 // Test a preference from the recommended pref store. |
| 607 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); | |
| 608 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 496 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 609 prefs::kRecommendedPref)); | 497 prefs::kRecommendedPref)); |
| 610 | 498 |
| 611 // Test a preference from the default pref store. | 499 // Test a preference from the default pref store. |
| 612 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); | |
| 613 EXPECT_TRUE( | 500 EXPECT_TRUE( |
| 614 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref)); | 501 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref)); |
| 615 | 502 |
| 616 // Test a preference for which the PrefValueStore does not contain a value. | 503 // Test a preference for which the PrefValueStore does not contain a value. |
| 617 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); | |
| 618 EXPECT_FALSE( | 504 EXPECT_FALSE( |
| 619 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); | 505 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); |
| 620 } | 506 } |
| OLD | NEW |