| 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 "chrome/browser/prefs/pref_member.h" | 5 #include "chrome/browser/prefs/pref_member.h" |
| 6 #include "chrome/browser/prefs/pref_value_store.h" | 6 #include "chrome/browser/prefs/pref_value_store.h" |
| 7 #include "chrome/common/notification_details.h" | 7 #include "chrome/common/notification_details.h" |
| 8 #include "chrome/common/notification_source.h" | 8 #include "chrome/common/notification_source.h" |
| 9 #include "chrome/common/notification_type.h" | 9 #include "chrome/common/notification_type.h" |
| 10 #include "chrome/test/testing_pref_service.h" | 10 #include "chrome/test/testing_pref_service.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 namespace { | 13 namespace { |
| 14 | 14 |
| 15 static const char kBoolPref[] = "bool"; | 15 static const char kBoolPref[] = "bool"; |
| 16 static const char kIntPref[] = "int"; | 16 static const char kIntPref[] = "int"; |
| 17 static const char kRealPref[] = "real"; | 17 static const char kDoublePref[] = "double"; |
| 18 static const char kStringPref[] = "string"; | 18 static const char kStringPref[] = "string"; |
| 19 | 19 |
| 20 void RegisterTestPrefs(PrefService* prefs) { | 20 void RegisterTestPrefs(PrefService* prefs) { |
| 21 prefs->RegisterBooleanPref(kBoolPref, false); | 21 prefs->RegisterBooleanPref(kBoolPref, false); |
| 22 prefs->RegisterIntegerPref(kIntPref, 0); | 22 prefs->RegisterIntegerPref(kIntPref, 0); |
| 23 prefs->RegisterRealPref(kRealPref, 0.0); | 23 prefs->RegisterDoublePref(kDoublePref, 0.0); |
| 24 prefs->RegisterStringPref(kStringPref, "default"); | 24 prefs->RegisterStringPref(kStringPref, "default"); |
| 25 } | 25 } |
| 26 | 26 |
| 27 class PrefMemberTestClass : public NotificationObserver { | 27 class PrefMemberTestClass : public NotificationObserver { |
| 28 public: | 28 public: |
| 29 explicit PrefMemberTestClass(PrefService* prefs) | 29 explicit PrefMemberTestClass(PrefService* prefs) |
| 30 : observe_cnt_(0), prefs_(prefs) { | 30 : observe_cnt_(0), prefs_(prefs) { |
| 31 str_.Init(kStringPref, prefs, this); | 31 str_.Init(kStringPref, prefs, this); |
| 32 } | 32 } |
| 33 | 33 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 EXPECT_EQ(5, integer.GetValue()); | 91 EXPECT_EQ(5, integer.GetValue()); |
| 92 EXPECT_EQ(5, prefs.GetInteger(kIntPref)); | 92 EXPECT_EQ(5, prefs.GetInteger(kIntPref)); |
| 93 EXPECT_EQ(5, *integer); | 93 EXPECT_EQ(5, *integer); |
| 94 | 94 |
| 95 // Try changing back through the pref. | 95 // Try changing back through the pref. |
| 96 prefs.SetInteger(kIntPref, 2); | 96 prefs.SetInteger(kIntPref, 2); |
| 97 EXPECT_EQ(2, prefs.GetInteger(kIntPref)); | 97 EXPECT_EQ(2, prefs.GetInteger(kIntPref)); |
| 98 EXPECT_EQ(2, integer.GetValue()); | 98 EXPECT_EQ(2, integer.GetValue()); |
| 99 EXPECT_EQ(2, *integer); | 99 EXPECT_EQ(2, *integer); |
| 100 | 100 |
| 101 // Test real (double) | 101 // Test double |
| 102 RealPrefMember real; | 102 DoublePrefMember double_member; |
| 103 real.Init(kRealPref, &prefs, NULL); | 103 double_member.Init(kDoublePref, &prefs, NULL); |
| 104 | 104 |
| 105 // Check the defaults | 105 // Check the defaults |
| 106 EXPECT_EQ(0.0, prefs.GetReal(kRealPref)); | 106 EXPECT_EQ(0.0, prefs.GetDouble(kDoublePref)); |
| 107 EXPECT_EQ(0.0, real.GetValue()); | 107 EXPECT_EQ(0.0, double_member.GetValue()); |
| 108 EXPECT_EQ(0.0, *real); | 108 EXPECT_EQ(0.0, *double_member); |
| 109 | 109 |
| 110 // Try changing through the member variable. | 110 // Try changing through the member variable. |
| 111 real.SetValue(1.0); | 111 double_member.SetValue(1.0); |
| 112 EXPECT_EQ(1.0, real.GetValue()); | 112 EXPECT_EQ(1.0, double_member.GetValue()); |
| 113 EXPECT_EQ(1.0, prefs.GetReal(kRealPref)); | 113 EXPECT_EQ(1.0, prefs.GetDouble(kDoublePref)); |
| 114 EXPECT_EQ(1.0, *real); | 114 EXPECT_EQ(1.0, *double_member); |
| 115 | 115 |
| 116 // Try changing back through the pref. | 116 // Try changing back through the pref. |
| 117 prefs.SetReal(kRealPref, 3.0); | 117 prefs.SetDouble(kDoublePref, 3.0); |
| 118 EXPECT_EQ(3.0, prefs.GetReal(kRealPref)); | 118 EXPECT_EQ(3.0, prefs.GetDouble(kDoublePref)); |
| 119 EXPECT_EQ(3.0, real.GetValue()); | 119 EXPECT_EQ(3.0, double_member.GetValue()); |
| 120 EXPECT_EQ(3.0, *real); | 120 EXPECT_EQ(3.0, *double_member); |
| 121 | 121 |
| 122 // Test string | 122 // Test string |
| 123 StringPrefMember string; | 123 StringPrefMember string; |
| 124 string.Init(kStringPref, &prefs, NULL); | 124 string.Init(kStringPref, &prefs, NULL); |
| 125 | 125 |
| 126 // Check the defaults | 126 // Check the defaults |
| 127 EXPECT_EQ("default", prefs.GetString(kStringPref)); | 127 EXPECT_EQ("default", prefs.GetString(kStringPref)); |
| 128 EXPECT_EQ("default", string.GetValue()); | 128 EXPECT_EQ("default", string.GetValue()); |
| 129 EXPECT_EQ("default", *string); | 129 EXPECT_EQ("default", *string); |
| 130 | 130 |
| 131 // Try changing through the member variable. | 131 // Try changing through the member variable. |
| 132 string.SetValue("foo"); | 132 string.SetValue("foo"); |
| 133 EXPECT_EQ("foo", string.GetValue()); | 133 EXPECT_EQ("foo", string.GetValue()); |
| 134 EXPECT_EQ("foo", prefs.GetString(kStringPref)); | 134 EXPECT_EQ("foo", prefs.GetString(kStringPref)); |
| 135 EXPECT_EQ("foo", *string); | 135 EXPECT_EQ("foo", *string); |
| 136 | 136 |
| 137 // Try changing back through the pref. | 137 // Try changing back through the pref. |
| 138 prefs.SetString(kStringPref, "bar"); | 138 prefs.SetString(kStringPref, "bar"); |
| 139 EXPECT_EQ("bar", prefs.GetString(kStringPref)); | 139 EXPECT_EQ("bar", prefs.GetString(kStringPref)); |
| 140 EXPECT_EQ("bar", string.GetValue()); | 140 EXPECT_EQ("bar", string.GetValue()); |
| 141 EXPECT_EQ("bar", *string); | 141 EXPECT_EQ("bar", *string); |
| 142 } | 142 } |
| 143 | 143 |
| 144 TEST(PrefMemberTest, TwoPrefs) { | 144 TEST(PrefMemberTest, TwoPrefs) { |
| 145 // Make sure two RealPrefMembers stay in sync. | 145 // Make sure two DoublePrefMembers stay in sync. |
| 146 TestingPrefService prefs; | 146 TestingPrefService prefs; |
| 147 RegisterTestPrefs(&prefs); | 147 RegisterTestPrefs(&prefs); |
| 148 | 148 |
| 149 RealPrefMember pref1; | 149 DoublePrefMember pref1; |
| 150 pref1.Init(kRealPref, &prefs, NULL); | 150 pref1.Init(kDoublePref, &prefs, NULL); |
| 151 RealPrefMember pref2; | 151 DoublePrefMember pref2; |
| 152 pref2.Init(kRealPref, &prefs, NULL); | 152 pref2.Init(kDoublePref, &prefs, NULL); |
| 153 | 153 |
| 154 pref1.SetValue(2.3); | 154 pref1.SetValue(2.3); |
| 155 EXPECT_EQ(2.3, *pref2); | 155 EXPECT_EQ(2.3, *pref2); |
| 156 | 156 |
| 157 pref2.SetValue(3.5); | 157 pref2.SetValue(3.5); |
| 158 EXPECT_EQ(3.5, *pref1); | 158 EXPECT_EQ(3.5, *pref1); |
| 159 | 159 |
| 160 prefs.SetReal(kRealPref, 4.2); | 160 prefs.SetDouble(kDoublePref, 4.2); |
| 161 EXPECT_EQ(4.2, *pref1); | 161 EXPECT_EQ(4.2, *pref1); |
| 162 EXPECT_EQ(4.2, *pref2); | 162 EXPECT_EQ(4.2, *pref2); |
| 163 } | 163 } |
| 164 | 164 |
| 165 TEST(PrefMemberTest, Observer) { | 165 TEST(PrefMemberTest, Observer) { |
| 166 TestingPrefService prefs; | 166 TestingPrefService prefs; |
| 167 RegisterTestPrefs(&prefs); | 167 RegisterTestPrefs(&prefs); |
| 168 | 168 |
| 169 PrefMemberTestClass test_obj(&prefs); | 169 PrefMemberTestClass test_obj(&prefs); |
| 170 EXPECT_EQ("default", *test_obj.str_); | 170 EXPECT_EQ("default", *test_obj.str_); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 186 | 186 |
| 187 prefs.SetString(kStringPref, "hello"); | 187 prefs.SetString(kStringPref, "hello"); |
| 188 EXPECT_EQ(2, test_obj.observe_cnt_); | 188 EXPECT_EQ(2, test_obj.observe_cnt_); |
| 189 EXPECT_EQ("hello", prefs.GetString(kStringPref)); | 189 EXPECT_EQ("hello", prefs.GetString(kStringPref)); |
| 190 } | 190 } |
| 191 | 191 |
| 192 TEST(PrefMemberTest, NoInit) { | 192 TEST(PrefMemberTest, NoInit) { |
| 193 // Make sure not calling Init on a PrefMember doesn't cause problems. | 193 // Make sure not calling Init on a PrefMember doesn't cause problems. |
| 194 IntegerPrefMember pref; | 194 IntegerPrefMember pref; |
| 195 } | 195 } |
| OLD | NEW |