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

Side by Side Diff: chrome/browser/api/prefs/pref_member_unittest.cc

Issue 11316163: Remove the last usages of PrefObserver outside of Prefs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Win and CrOS build. Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 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 "chrome/browser/api/prefs/pref_member.h" 5 #include "chrome/browser/api/prefs/pref_member.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chrome/browser/prefs/pref_value_store.h" 9 #include "chrome/browser/prefs/pref_value_store.h"
10 #include "chrome/common/chrome_notification_types.h" 10 #include "chrome/common/chrome_notification_types.h"
(...skipping 24 matching lines...) Expand all
35 new ListValue(), 35 new ListValue(),
36 PrefService::UNSYNCABLE_PREF); 36 PrefService::UNSYNCABLE_PREF);
37 } 37 }
38 38
39 class GetPrefValueCallback 39 class GetPrefValueCallback
40 : public base::RefCountedThreadSafe<GetPrefValueCallback> { 40 : public base::RefCountedThreadSafe<GetPrefValueCallback> {
41 public: 41 public:
42 GetPrefValueCallback() : value_(false) {} 42 GetPrefValueCallback() : value_(false) {}
43 43
44 void Init(const char* pref_name, PrefService* prefs) { 44 void Init(const char* pref_name, PrefService* prefs) {
45 pref_.Init(pref_name, prefs, NULL); 45 pref_.Init(pref_name, prefs);
46 pref_.MoveToThread( 46 pref_.MoveToThread(
47 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); 47 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO));
48 } 48 }
49 49
50 void Destroy() { 50 void Destroy() {
51 pref_.Destroy(); 51 pref_.Destroy();
52 } 52 }
53 53
54 bool FetchValue() { 54 bool FetchValue() {
55 if (!BrowserThread::PostTask( 55 if (!BrowserThread::PostTask(
(...skipping 14 matching lines...) Expand all
70 void GetPrefValueOnIOThread() { 70 void GetPrefValueOnIOThread() {
71 value_ = pref_.GetValue(); 71 value_ = pref_.GetValue();
72 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 72 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
73 MessageLoop::QuitClosure()); 73 MessageLoop::QuitClosure());
74 } 74 }
75 75
76 BooleanPrefMember pref_; 76 BooleanPrefMember pref_;
77 bool value_; 77 bool value_;
78 }; 78 };
79 79
80 class PrefMemberTestClass : public PrefObserver { 80 class PrefMemberTestClass {
81 public: 81 public:
82 explicit PrefMemberTestClass(PrefService* prefs) 82 explicit PrefMemberTestClass(PrefService* prefs)
83 : observe_cnt_(0), prefs_(prefs) { 83 : observe_cnt_(0), prefs_(prefs) {
84 str_.Init(kStringPref, prefs, this); 84 str_.Init(kStringPref, prefs,
85 base::Bind(&PrefMemberTestClass::OnPreferenceChanged,
86 base::Unretained(this)));
85 } 87 }
86 88
87 virtual void OnPreferenceChanged(PrefServiceBase* service, 89 void OnPreferenceChanged(const std::string& pref_name) {
88 const std::string& pref_name) OVERRIDE {
89 EXPECT_EQ(service, prefs_);
90 EXPECT_EQ(pref_name, kStringPref); 90 EXPECT_EQ(pref_name, kStringPref);
91 EXPECT_EQ(str_.GetValue(), prefs_->GetString(kStringPref)); 91 EXPECT_EQ(str_.GetValue(), prefs_->GetString(kStringPref));
92 ++observe_cnt_; 92 ++observe_cnt_;
93 } 93 }
94 94
95 StringPrefMember str_; 95 StringPrefMember str_;
96 int observe_cnt_; 96 int observe_cnt_;
97 97
98 private: 98 private:
99 PrefService* prefs_; 99 PrefService* prefs_;
100 }; 100 };
101 101
102 } // anonymous namespace 102 } // anonymous namespace
103 103
104 TEST(PrefMemberTest, BasicGetAndSet) { 104 TEST(PrefMemberTest, BasicGetAndSet) {
105 TestingPrefService prefs; 105 TestingPrefService prefs;
106 RegisterTestPrefs(&prefs); 106 RegisterTestPrefs(&prefs);
107 107
108 // Test bool 108 // Test bool
109 BooleanPrefMember boolean; 109 BooleanPrefMember boolean;
110 boolean.Init(kBoolPref, &prefs, NULL); 110 boolean.Init(kBoolPref, &prefs);
111 111
112 // Check the defaults 112 // Check the defaults
113 EXPECT_FALSE(prefs.GetBoolean(kBoolPref)); 113 EXPECT_FALSE(prefs.GetBoolean(kBoolPref));
114 EXPECT_FALSE(boolean.GetValue()); 114 EXPECT_FALSE(boolean.GetValue());
115 EXPECT_FALSE(*boolean); 115 EXPECT_FALSE(*boolean);
116 116
117 // Try changing through the member variable. 117 // Try changing through the member variable.
118 boolean.SetValue(true); 118 boolean.SetValue(true);
119 EXPECT_TRUE(boolean.GetValue()); 119 EXPECT_TRUE(boolean.GetValue());
120 EXPECT_TRUE(prefs.GetBoolean(kBoolPref)); 120 EXPECT_TRUE(prefs.GetBoolean(kBoolPref));
121 EXPECT_TRUE(*boolean); 121 EXPECT_TRUE(*boolean);
122 122
123 // Try changing back through the pref. 123 // Try changing back through the pref.
124 prefs.SetBoolean(kBoolPref, false); 124 prefs.SetBoolean(kBoolPref, false);
125 EXPECT_FALSE(prefs.GetBoolean(kBoolPref)); 125 EXPECT_FALSE(prefs.GetBoolean(kBoolPref));
126 EXPECT_FALSE(boolean.GetValue()); 126 EXPECT_FALSE(boolean.GetValue());
127 EXPECT_FALSE(*boolean); 127 EXPECT_FALSE(*boolean);
128 128
129 // Test int 129 // Test int
130 IntegerPrefMember integer; 130 IntegerPrefMember integer;
131 integer.Init(kIntPref, &prefs, NULL); 131 integer.Init(kIntPref, &prefs);
132 132
133 // Check the defaults 133 // Check the defaults
134 EXPECT_EQ(0, prefs.GetInteger(kIntPref)); 134 EXPECT_EQ(0, prefs.GetInteger(kIntPref));
135 EXPECT_EQ(0, integer.GetValue()); 135 EXPECT_EQ(0, integer.GetValue());
136 EXPECT_EQ(0, *integer); 136 EXPECT_EQ(0, *integer);
137 137
138 // Try changing through the member variable. 138 // Try changing through the member variable.
139 integer.SetValue(5); 139 integer.SetValue(5);
140 EXPECT_EQ(5, integer.GetValue()); 140 EXPECT_EQ(5, integer.GetValue());
141 EXPECT_EQ(5, prefs.GetInteger(kIntPref)); 141 EXPECT_EQ(5, prefs.GetInteger(kIntPref));
142 EXPECT_EQ(5, *integer); 142 EXPECT_EQ(5, *integer);
143 143
144 // Try changing back through the pref. 144 // Try changing back through the pref.
145 prefs.SetInteger(kIntPref, 2); 145 prefs.SetInteger(kIntPref, 2);
146 EXPECT_EQ(2, prefs.GetInteger(kIntPref)); 146 EXPECT_EQ(2, prefs.GetInteger(kIntPref));
147 EXPECT_EQ(2, integer.GetValue()); 147 EXPECT_EQ(2, integer.GetValue());
148 EXPECT_EQ(2, *integer); 148 EXPECT_EQ(2, *integer);
149 149
150 // Test double 150 // Test double
151 DoublePrefMember double_member; 151 DoublePrefMember double_member;
152 double_member.Init(kDoublePref, &prefs, NULL); 152 double_member.Init(kDoublePref, &prefs);
153 153
154 // Check the defaults 154 // Check the defaults
155 EXPECT_EQ(0.0, prefs.GetDouble(kDoublePref)); 155 EXPECT_EQ(0.0, prefs.GetDouble(kDoublePref));
156 EXPECT_EQ(0.0, double_member.GetValue()); 156 EXPECT_EQ(0.0, double_member.GetValue());
157 EXPECT_EQ(0.0, *double_member); 157 EXPECT_EQ(0.0, *double_member);
158 158
159 // Try changing through the member variable. 159 // Try changing through the member variable.
160 double_member.SetValue(1.0); 160 double_member.SetValue(1.0);
161 EXPECT_EQ(1.0, double_member.GetValue()); 161 EXPECT_EQ(1.0, double_member.GetValue());
162 EXPECT_EQ(1.0, prefs.GetDouble(kDoublePref)); 162 EXPECT_EQ(1.0, prefs.GetDouble(kDoublePref));
163 EXPECT_EQ(1.0, *double_member); 163 EXPECT_EQ(1.0, *double_member);
164 164
165 // Try changing back through the pref. 165 // Try changing back through the pref.
166 prefs.SetDouble(kDoublePref, 3.0); 166 prefs.SetDouble(kDoublePref, 3.0);
167 EXPECT_EQ(3.0, prefs.GetDouble(kDoublePref)); 167 EXPECT_EQ(3.0, prefs.GetDouble(kDoublePref));
168 EXPECT_EQ(3.0, double_member.GetValue()); 168 EXPECT_EQ(3.0, double_member.GetValue());
169 EXPECT_EQ(3.0, *double_member); 169 EXPECT_EQ(3.0, *double_member);
170 170
171 // Test string 171 // Test string
172 StringPrefMember string; 172 StringPrefMember string;
173 string.Init(kStringPref, &prefs, NULL); 173 string.Init(kStringPref, &prefs);
174 174
175 // Check the defaults 175 // Check the defaults
176 EXPECT_EQ("default", prefs.GetString(kStringPref)); 176 EXPECT_EQ("default", prefs.GetString(kStringPref));
177 EXPECT_EQ("default", string.GetValue()); 177 EXPECT_EQ("default", string.GetValue());
178 EXPECT_EQ("default", *string); 178 EXPECT_EQ("default", *string);
179 179
180 // Try changing through the member variable. 180 // Try changing through the member variable.
181 string.SetValue("foo"); 181 string.SetValue("foo");
182 EXPECT_EQ("foo", string.GetValue()); 182 EXPECT_EQ("foo", string.GetValue());
183 EXPECT_EQ("foo", prefs.GetString(kStringPref)); 183 EXPECT_EQ("foo", prefs.GetString(kStringPref));
184 EXPECT_EQ("foo", *string); 184 EXPECT_EQ("foo", *string);
185 185
186 // Try changing back through the pref. 186 // Try changing back through the pref.
187 prefs.SetString(kStringPref, "bar"); 187 prefs.SetString(kStringPref, "bar");
188 EXPECT_EQ("bar", prefs.GetString(kStringPref)); 188 EXPECT_EQ("bar", prefs.GetString(kStringPref));
189 EXPECT_EQ("bar", string.GetValue()); 189 EXPECT_EQ("bar", string.GetValue());
190 EXPECT_EQ("bar", *string); 190 EXPECT_EQ("bar", *string);
191 191
192 // Test string list 192 // Test string list
193 ListValue expected_list; 193 ListValue expected_list;
194 std::vector<std::string> expected_vector; 194 std::vector<std::string> expected_vector;
195 StringListPrefMember string_list; 195 StringListPrefMember string_list;
196 string_list.Init(kStringListPref, &prefs, NULL); 196 string_list.Init(kStringListPref, &prefs);
197 197
198 // Check the defaults 198 // Check the defaults
199 EXPECT_TRUE(expected_list.Equals(prefs.GetList(kStringListPref))); 199 EXPECT_TRUE(expected_list.Equals(prefs.GetList(kStringListPref)));
200 EXPECT_EQ(expected_vector, string_list.GetValue()); 200 EXPECT_EQ(expected_vector, string_list.GetValue());
201 EXPECT_EQ(expected_vector, *string_list); 201 EXPECT_EQ(expected_vector, *string_list);
202 202
203 // Try changing through the pref member. 203 // Try changing through the pref member.
204 expected_list.AppendString("foo"); 204 expected_list.AppendString("foo");
205 expected_vector.push_back("foo"); 205 expected_vector.push_back("foo");
206 string_list.SetValue(expected_vector); 206 string_list.SetValue(expected_vector);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 EXPECT_FALSE(subtle::PrefMemberVectorStringUpdate(list, &vector)); 245 EXPECT_FALSE(subtle::PrefMemberVectorStringUpdate(list, &vector));
246 EXPECT_EQ(expected_vector, vector); 246 EXPECT_EQ(expected_vector, vector);
247 } 247 }
248 248
249 TEST(PrefMemberTest, TwoPrefs) { 249 TEST(PrefMemberTest, TwoPrefs) {
250 // Make sure two DoublePrefMembers stay in sync. 250 // Make sure two DoublePrefMembers stay in sync.
251 TestingPrefService prefs; 251 TestingPrefService prefs;
252 RegisterTestPrefs(&prefs); 252 RegisterTestPrefs(&prefs);
253 253
254 DoublePrefMember pref1; 254 DoublePrefMember pref1;
255 pref1.Init(kDoublePref, &prefs, NULL); 255 pref1.Init(kDoublePref, &prefs);
256 DoublePrefMember pref2; 256 DoublePrefMember pref2;
257 pref2.Init(kDoublePref, &prefs, NULL); 257 pref2.Init(kDoublePref, &prefs);
258 258
259 pref1.SetValue(2.3); 259 pref1.SetValue(2.3);
260 EXPECT_EQ(2.3, *pref2); 260 EXPECT_EQ(2.3, *pref2);
261 261
262 pref2.SetValue(3.5); 262 pref2.SetValue(3.5);
263 EXPECT_EQ(3.5, *pref1); 263 EXPECT_EQ(3.5, *pref1);
264 264
265 prefs.SetDouble(kDoublePref, 4.2); 265 prefs.SetDouble(kDoublePref, 4.2);
266 EXPECT_EQ(4.2, *pref1); 266 EXPECT_EQ(4.2, *pref1);
267 EXPECT_EQ(4.2, *pref2); 267 EXPECT_EQ(4.2, *pref2);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 prefs.SetBoolean(kBoolPref, true); 316 prefs.SetBoolean(kBoolPref, true);
317 317
318 ASSERT_TRUE(callback->FetchValue()); 318 ASSERT_TRUE(callback->FetchValue());
319 EXPECT_TRUE(callback->value()); 319 EXPECT_TRUE(callback->value());
320 320
321 callback->Destroy(); 321 callback->Destroy();
322 322
323 ASSERT_TRUE(callback->FetchValue()); 323 ASSERT_TRUE(callback->FetchValue());
324 EXPECT_TRUE(callback->value()); 324 EXPECT_TRUE(callback->value());
325 } 325 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698