| Index: chrome/browser/prefs/pref_value_store_unittest.cc
|
| diff --git a/chrome/browser/prefs/pref_value_store_unittest.cc b/chrome/browser/prefs/pref_value_store_unittest.cc
|
| index 88f4a87d7841dce8ac1cd1447ff29739ab296ad8..2d124d93fc7210db34437fcf22cb364e6e304757 100644
|
| --- a/chrome/browser/prefs/pref_value_store_unittest.cc
|
| +++ b/chrome/browser/prefs/pref_value_store_unittest.cc
|
| @@ -269,6 +269,72 @@ TEST_F(PrefValueStoreTest, GetValue) {
|
| ASSERT_TRUE(value == NULL);
|
| }
|
|
|
| +TEST_F(PrefValueStoreTest, GetRecommendedValue) {
|
| + const Value* value;
|
| +
|
| + // The following tests read a value from the PrefService. The preferences are
|
| + // set in a way such that all lower-priority stores have a value and we can
|
| + // test whether overrides do not clutter the recommended value.
|
| +
|
| + // Test getting recommended value when a managed value is present.
|
| + value = NULL;
|
| + ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kManagedPref,
|
| + Value::TYPE_STRING, &value));
|
| + std::string actual_str_value;
|
| + EXPECT_TRUE(value->GetAsString(&actual_str_value));
|
| + EXPECT_EQ(recommended_pref::kManagedValue, actual_str_value);
|
| +
|
| + // Test getting recommended value when an extension value is present.
|
| + value = NULL;
|
| + ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kExtensionPref,
|
| + Value::TYPE_STRING, &value));
|
| + EXPECT_TRUE(value->GetAsString(&actual_str_value));
|
| + EXPECT_EQ(recommended_pref::kExtensionValue, actual_str_value);
|
| +
|
| + // Test getting recommended value when a command-line value is present.
|
| + value = NULL;
|
| + ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kCommandLinePref,
|
| + Value::TYPE_STRING, &value));
|
| + EXPECT_TRUE(value->GetAsString(&actual_str_value));
|
| + EXPECT_EQ(recommended_pref::kCommandLineValue, actual_str_value);
|
| +
|
| + // Test getting recommended value when a user-set value is present.
|
| + value = NULL;
|
| + ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kUserPref,
|
| + Value::TYPE_STRING, &value));
|
| + EXPECT_TRUE(value->GetAsString(&actual_str_value));
|
| + EXPECT_EQ(recommended_pref::kUserValue, actual_str_value);
|
| +
|
| + // Test getting recommended value when no higher-priority value is present.
|
| + value = NULL;
|
| + ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kRecommendedPref,
|
| + Value::TYPE_STRING, &value));
|
| + EXPECT_TRUE(value->GetAsString(&actual_str_value));
|
| + EXPECT_EQ(recommended_pref::kRecommendedValue,
|
| + actual_str_value);
|
| +
|
| + // Test getting recommended value when no recommended value is present.
|
| + base::FundamentalValue tmp_dummy_value(true);
|
| + value = &tmp_dummy_value;
|
| + ASSERT_FALSE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kDefaultPref,
|
| + Value::TYPE_STRING, &value));
|
| + ASSERT_TRUE(value == NULL);
|
| +
|
| + // Test getting a preference value that the |PrefValueStore|
|
| + // does not contain.
|
| + value = &tmp_dummy_value;
|
| + ASSERT_FALSE(pref_value_store_->GetRecommendedValue(
|
| + prefs::kMissingPref,
|
| + Value::TYPE_STRING, &value));
|
| + ASSERT_TRUE(value == NULL);
|
| +}
|
| +
|
| TEST_F(PrefValueStoreTest, PrefChanges) {
|
| // Check pref controlled by highest-priority store.
|
| EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPref));
|
| @@ -281,16 +347,21 @@ TEST_F(PrefValueStoreTest, PrefChanges) {
|
|
|
| EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
|
| EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
|
| - extension_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kManagedPref);
|
| - command_line_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kManagedPref);
|
| - user_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kManagedPref);
|
| - recommended_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kManagedPref);
|
| - default_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kManagedPref);
|
| + extension_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
|
| + command_line_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
|
| + user_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
|
| + Mock::VerifyAndClearExpectations(&pref_notifier_);
|
| + Mock::VerifyAndClearExpectations(sync_associator_.get());
|
| +
|
| + EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPref));
|
| + EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
|
| + recommended_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
|
| + Mock::VerifyAndClearExpectations(&pref_notifier_);
|
| + Mock::VerifyAndClearExpectations(sync_associator_.get());
|
| +
|
| + EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
|
| + EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
|
| + default_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
|
| Mock::VerifyAndClearExpectations(&pref_notifier_);
|
| Mock::VerifyAndClearExpectations(sync_associator_.get());
|
|
|
| @@ -319,12 +390,10 @@ TEST_F(PrefValueStoreTest, PrefChanges) {
|
| Mock::VerifyAndClearExpectations(&pref_notifier_);
|
| Mock::VerifyAndClearExpectations(sync_associator_.get());
|
|
|
| - EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
|
| + EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
|
| EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
|
| - recommended_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kUserPref);
|
| - default_pref_store_->NotifyPrefValueChanged(
|
| - prefs::kUserPref);
|
| + recommended_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
|
| + default_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
|
| Mock::VerifyAndClearExpectations(&pref_notifier_);
|
| Mock::VerifyAndClearExpectations(sync_associator_.get());
|
|
|
|
|