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

Unified Diff: chrome/browser/prefs/pref_value_store_unittest.cc

Issue 10821047: Provide access to recommended pref values (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
« chrome/browser/prefs/pref_value_store.cc ('K') | « chrome/browser/prefs/pref_value_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698