| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/prefs/json_pref_store.h" | 7 #include "base/prefs/json_pref_store.h" |
| 8 #include "base/prefs/mock_pref_change_callback.h" | 8 #include "base/prefs/mock_pref_change_callback.h" |
| 9 #include "base/prefs/pref_change_registrar.h" | 9 #include "base/prefs/pref_change_registrar.h" |
| 10 #include "base/prefs/pref_registry_simple.h" | 10 #include "base/prefs/pref_registry_simple.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 // Set a value and make sure we have a path. | 72 // Set a value and make sure we have a path. |
| 73 prefs.SetString(path, "blah"); | 73 prefs.SetString(path, "blah"); |
| 74 EXPECT_TRUE(prefs.HasPrefPath(path)); | 74 EXPECT_TRUE(prefs.HasPrefPath(path)); |
| 75 } | 75 } |
| 76 | 76 |
| 77 TEST(PrefServiceTest, Observers) { | 77 TEST(PrefServiceTest, Observers) { |
| 78 const char pref_name[] = "homepage"; | 78 const char pref_name[] = "homepage"; |
| 79 | 79 |
| 80 TestingPrefServiceSimple prefs; | 80 TestingPrefServiceSimple prefs; |
| 81 prefs.SetUserPref(pref_name, | 81 prefs.SetUserPref(pref_name, |
| 82 base::Value::CreateStringValue("http://www.cnn.com")); | 82 new base::StringValue("http://www.cnn.com")); |
| 83 prefs.registry()->RegisterStringPref(pref_name, std::string()); | 83 prefs.registry()->RegisterStringPref(pref_name, std::string()); |
| 84 | 84 |
| 85 const char new_pref_value[] = "http://www.google.com/"; | 85 const char new_pref_value[] = "http://www.google.com/"; |
| 86 const base::StringValue expected_new_pref_value(new_pref_value); | 86 const base::StringValue expected_new_pref_value(new_pref_value); |
| 87 MockPrefChangeCallback obs(&prefs); | 87 MockPrefChangeCallback obs(&prefs); |
| 88 PrefChangeRegistrar registrar; | 88 PrefChangeRegistrar registrar; |
| 89 registrar.Init(&prefs); | 89 registrar.Init(&prefs); |
| 90 registrar.Add(pref_name, obs.GetCallback()); | 90 registrar.Add(pref_name, obs.GetCallback()); |
| 91 | 91 |
| 92 PrefChangeRegistrar registrar_two; | 92 PrefChangeRegistrar registrar_two; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 | 131 |
| 132 // Make sure that if a preference changes type, so the wrong type is stored in | 132 // Make sure that if a preference changes type, so the wrong type is stored in |
| 133 // the user pref file, it uses the correct fallback value instead. | 133 // the user pref file, it uses the correct fallback value instead. |
| 134 TEST(PrefServiceTest, GetValueChangedType) { | 134 TEST(PrefServiceTest, GetValueChangedType) { |
| 135 const int kTestValue = 10; | 135 const int kTestValue = 10; |
| 136 TestingPrefServiceSimple prefs; | 136 TestingPrefServiceSimple prefs; |
| 137 prefs.registry()->RegisterIntegerPref(kPrefName, kTestValue); | 137 prefs.registry()->RegisterIntegerPref(kPrefName, kTestValue); |
| 138 | 138 |
| 139 // Check falling back to a recommended value. | 139 // Check falling back to a recommended value. |
| 140 prefs.SetUserPref(kPrefName, | 140 prefs.SetUserPref(kPrefName, |
| 141 base::Value::CreateStringValue("not an integer")); | 141 new base::StringValue("not an integer")); |
| 142 const PrefService::Preference* pref = prefs.FindPreference(kPrefName); | 142 const PrefService::Preference* pref = prefs.FindPreference(kPrefName); |
| 143 ASSERT_TRUE(pref); | 143 ASSERT_TRUE(pref); |
| 144 const base::Value* value = pref->GetValue(); | 144 const base::Value* value = pref->GetValue(); |
| 145 ASSERT_TRUE(value); | 145 ASSERT_TRUE(value); |
| 146 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); | 146 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); |
| 147 int actual_int_value = -1; | 147 int actual_int_value = -1; |
| 148 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 148 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); |
| 149 EXPECT_EQ(kTestValue, actual_int_value); | 149 EXPECT_EQ(kTestValue, actual_int_value); |
| 150 } | 150 } |
| 151 | 151 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 166 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); | 166 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); |
| 167 int actual_int_value = -1; | 167 int actual_int_value = -1; |
| 168 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 168 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); |
| 169 EXPECT_EQ(kDefaultValue, actual_int_value); | 169 EXPECT_EQ(kDefaultValue, actual_int_value); |
| 170 | 170 |
| 171 // Check that GetRecommendedValue() returns no value. | 171 // Check that GetRecommendedValue() returns no value. |
| 172 value = pref->GetRecommendedValue(); | 172 value = pref->GetRecommendedValue(); |
| 173 ASSERT_FALSE(value); | 173 ASSERT_FALSE(value); |
| 174 | 174 |
| 175 // Set a user-set value. | 175 // Set a user-set value. |
| 176 prefs.SetUserPref(kPrefName, base::Value::CreateIntegerValue(kUserValue)); | 176 prefs.SetUserPref(kPrefName, new base::FundamentalValue(kUserValue)); |
| 177 | 177 |
| 178 // Check that GetValue() returns the user-set value. | 178 // Check that GetValue() returns the user-set value. |
| 179 value = pref->GetValue(); | 179 value = pref->GetValue(); |
| 180 ASSERT_TRUE(value); | 180 ASSERT_TRUE(value); |
| 181 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); | 181 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); |
| 182 actual_int_value = -1; | 182 actual_int_value = -1; |
| 183 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 183 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); |
| 184 EXPECT_EQ(kUserValue, actual_int_value); | 184 EXPECT_EQ(kUserValue, actual_int_value); |
| 185 | 185 |
| 186 // Check that GetRecommendedValue() returns no value. | 186 // Check that GetRecommendedValue() returns no value. |
| 187 value = pref->GetRecommendedValue(); | 187 value = pref->GetRecommendedValue(); |
| 188 ASSERT_FALSE(value); | 188 ASSERT_FALSE(value); |
| 189 | 189 |
| 190 // Set a recommended value. | 190 // Set a recommended value. |
| 191 prefs.SetRecommendedPref(kPrefName, | 191 prefs.SetRecommendedPref(kPrefName, |
| 192 base::Value::CreateIntegerValue(kRecommendedValue)); | 192 new base::FundamentalValue(kRecommendedValue)); |
| 193 | 193 |
| 194 // Check that GetValue() returns the user-set value. | 194 // Check that GetValue() returns the user-set value. |
| 195 value = pref->GetValue(); | 195 value = pref->GetValue(); |
| 196 ASSERT_TRUE(value); | 196 ASSERT_TRUE(value); |
| 197 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); | 197 EXPECT_EQ(base::Value::TYPE_INTEGER, value->GetType()); |
| 198 actual_int_value = -1; | 198 actual_int_value = -1; |
| 199 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 199 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); |
| 200 EXPECT_EQ(kUserValue, actual_int_value); | 200 EXPECT_EQ(kUserValue, actual_int_value); |
| 201 | 201 |
| 202 // Check that GetRecommendedValue() returns the recommended value. | 202 // Check that GetRecommendedValue() returns the recommended value. |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 prefs_.registry()->RegisterListPref(kName); | 295 prefs_.registry()->RegisterListPref(kName); |
| 296 PrefChangeRegistrar registrar; | 296 PrefChangeRegistrar registrar; |
| 297 registrar.Init(&prefs_); | 297 registrar.Init(&prefs_); |
| 298 registrar.Add(kName, observer_.GetCallback()); | 298 registrar.Add(kName, observer_.GetCallback()); |
| 299 | 299 |
| 300 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); | 300 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); |
| 301 prefs_.RemoveUserPref(kName); | 301 prefs_.RemoveUserPref(kName); |
| 302 Mock::VerifyAndClearExpectations(&observer_); | 302 Mock::VerifyAndClearExpectations(&observer_); |
| 303 | 303 |
| 304 base::ListValue new_value; | 304 base::ListValue new_value; |
| 305 new_value.Append(base::Value::CreateStringValue(kValue)); | 305 new_value.Append(new base::StringValue(kValue)); |
| 306 observer_.Expect(kName, &new_value); | 306 observer_.Expect(kName, &new_value); |
| 307 prefs_.Set(kName, new_value); | 307 prefs_.Set(kName, new_value); |
| 308 Mock::VerifyAndClearExpectations(&observer_); | 308 Mock::VerifyAndClearExpectations(&observer_); |
| 309 | 309 |
| 310 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); | 310 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); |
| 311 prefs_.Set(kName, new_value); | 311 prefs_.Set(kName, new_value); |
| 312 Mock::VerifyAndClearExpectations(&observer_); | 312 Mock::VerifyAndClearExpectations(&observer_); |
| 313 | 313 |
| 314 base::ListValue empty; | 314 base::ListValue empty; |
| 315 observer_.Expect(kName, &empty); | 315 observer_.Expect(kName, &empty); |
| 316 prefs_.Set(kName, empty); | 316 prefs_.Set(kName, empty); |
| 317 Mock::VerifyAndClearExpectations(&observer_); | 317 Mock::VerifyAndClearExpectations(&observer_); |
| 318 } | 318 } |
| OLD | NEW |