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

Side by Side Diff: base/prefs/public/pref_member_unittest.cc

Issue 11570009: Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review. 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 "base/prefs/public/pref_member.h" 5 #include "base/prefs/public/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 "base/synchronization/waitable_event.h" 9 #include "base/synchronization/waitable_event.h"
10 #include "base/threading/thread.h" 10 #include "base/threading/thread.h"
11 #include "chrome/test/base/testing_pref_service.h" 11 #include "chrome/test/base/testing_pref_service.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace { 14 namespace {
15 15
16 const char kBoolPref[] = "bool"; 16 const char kBoolPref[] = "bool";
17 const char kIntPref[] = "int"; 17 const char kIntPref[] = "int";
18 const char kDoublePref[] = "double"; 18 const char kDoublePref[] = "double";
19 const char kStringPref[] = "string"; 19 const char kStringPref[] = "string";
20 const char kStringListPref[] = "string_list"; 20 const char kStringListPref[] = "string_list";
21 21
22 void RegisterTestPrefs(PrefService* prefs) { 22 void RegisterTestPrefs(PrefServiceSimple* prefs) {
23 prefs->RegisterBooleanPref(kBoolPref, false, PrefService::UNSYNCABLE_PREF); 23 prefs->RegisterBooleanPref(kBoolPref, false);
24 prefs->RegisterIntegerPref(kIntPref, 0, PrefService::UNSYNCABLE_PREF); 24 prefs->RegisterIntegerPref(kIntPref, 0);
25 prefs->RegisterDoublePref(kDoublePref, 0.0, PrefService::UNSYNCABLE_PREF); 25 prefs->RegisterDoublePref(kDoublePref, 0.0);
26 prefs->RegisterStringPref(kStringPref, 26 prefs->RegisterStringPref(kStringPref, "default");
27 "default", 27 prefs->RegisterListPref(kStringListPref, new ListValue());
28 PrefService::UNSYNCABLE_PREF);
29 prefs->RegisterListPref(kStringListPref,
30 new ListValue(),
31 PrefService::UNSYNCABLE_PREF);
32 } 28 }
33 29
34 class GetPrefValueHelper 30 class GetPrefValueHelper
35 : public base::RefCountedThreadSafe<GetPrefValueHelper> { 31 : public base::RefCountedThreadSafe<GetPrefValueHelper> {
36 public: 32 public:
37 GetPrefValueHelper() : value_(false), pref_thread_("pref thread") { 33 GetPrefValueHelper() : value_(false), pref_thread_("pref thread") {
38 pref_thread_.Start(); 34 pref_thread_.Start();
39 } 35 }
40 36
41 void Init(const char* pref_name, PrefService* prefs) { 37 void Init(const char* pref_name, PrefService* prefs) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 StringPrefMember str_; 87 StringPrefMember str_;
92 int observe_cnt_; 88 int observe_cnt_;
93 89
94 private: 90 private:
95 PrefService* prefs_; 91 PrefService* prefs_;
96 }; 92 };
97 93
98 } // anonymous namespace 94 } // anonymous namespace
99 95
100 TEST(PrefMemberTest, BasicGetAndSet) { 96 TEST(PrefMemberTest, BasicGetAndSet) {
101 TestingPrefService prefs; 97 TestingPrefServiceSimple prefs;
102 RegisterTestPrefs(&prefs); 98 RegisterTestPrefs(&prefs);
103 99
104 // Test bool 100 // Test bool
105 BooleanPrefMember boolean; 101 BooleanPrefMember boolean;
106 boolean.Init(kBoolPref, &prefs); 102 boolean.Init(kBoolPref, &prefs);
107 103
108 // Check the defaults 104 // Check the defaults
109 EXPECT_FALSE(prefs.GetBoolean(kBoolPref)); 105 EXPECT_FALSE(prefs.GetBoolean(kBoolPref));
110 EXPECT_FALSE(boolean.GetValue()); 106 EXPECT_FALSE(boolean.GetValue());
111 EXPECT_FALSE(*boolean); 107 EXPECT_FALSE(*boolean);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 EXPECT_EQ(expected_vector, vector); 233 EXPECT_EQ(expected_vector, vector);
238 234
239 // Now try to add an invalid list. |vector| should not be changed. 235 // Now try to add an invalid list. |vector| should not be changed.
240 list.AppendInteger(0); 236 list.AppendInteger(0);
241 EXPECT_FALSE(subtle::PrefMemberVectorStringUpdate(list, &vector)); 237 EXPECT_FALSE(subtle::PrefMemberVectorStringUpdate(list, &vector));
242 EXPECT_EQ(expected_vector, vector); 238 EXPECT_EQ(expected_vector, vector);
243 } 239 }
244 240
245 TEST(PrefMemberTest, TwoPrefs) { 241 TEST(PrefMemberTest, TwoPrefs) {
246 // Make sure two DoublePrefMembers stay in sync. 242 // Make sure two DoublePrefMembers stay in sync.
247 TestingPrefService prefs; 243 TestingPrefServiceSimple prefs;
248 RegisterTestPrefs(&prefs); 244 RegisterTestPrefs(&prefs);
249 245
250 DoublePrefMember pref1; 246 DoublePrefMember pref1;
251 pref1.Init(kDoublePref, &prefs); 247 pref1.Init(kDoublePref, &prefs);
252 DoublePrefMember pref2; 248 DoublePrefMember pref2;
253 pref2.Init(kDoublePref, &prefs); 249 pref2.Init(kDoublePref, &prefs);
254 250
255 pref1.SetValue(2.3); 251 pref1.SetValue(2.3);
256 EXPECT_EQ(2.3, *pref2); 252 EXPECT_EQ(2.3, *pref2);
257 253
258 pref2.SetValue(3.5); 254 pref2.SetValue(3.5);
259 EXPECT_EQ(3.5, *pref1); 255 EXPECT_EQ(3.5, *pref1);
260 256
261 prefs.SetDouble(kDoublePref, 4.2); 257 prefs.SetDouble(kDoublePref, 4.2);
262 EXPECT_EQ(4.2, *pref1); 258 EXPECT_EQ(4.2, *pref1);
263 EXPECT_EQ(4.2, *pref2); 259 EXPECT_EQ(4.2, *pref2);
264 } 260 }
265 261
266 TEST(PrefMemberTest, Observer) { 262 TEST(PrefMemberTest, Observer) {
267 TestingPrefService prefs; 263 TestingPrefServiceSimple prefs;
268 RegisterTestPrefs(&prefs); 264 RegisterTestPrefs(&prefs);
269 265
270 PrefMemberTestClass test_obj(&prefs); 266 PrefMemberTestClass test_obj(&prefs);
271 EXPECT_EQ("default", *test_obj.str_); 267 EXPECT_EQ("default", *test_obj.str_);
272 268
273 // Calling SetValue should not fire the observer. 269 // Calling SetValue should not fire the observer.
274 test_obj.str_.SetValue("hello"); 270 test_obj.str_.SetValue("hello");
275 EXPECT_EQ(0, test_obj.observe_cnt_); 271 EXPECT_EQ(0, test_obj.observe_cnt_);
276 EXPECT_EQ("hello", prefs.GetString(kStringPref)); 272 EXPECT_EQ("hello", prefs.GetString(kStringPref));
277 273
(...skipping 11 matching lines...) Expand all
289 EXPECT_EQ(2, test_obj.observe_cnt_); 285 EXPECT_EQ(2, test_obj.observe_cnt_);
290 EXPECT_EQ("hello", prefs.GetString(kStringPref)); 286 EXPECT_EQ("hello", prefs.GetString(kStringPref));
291 } 287 }
292 288
293 TEST(PrefMemberTest, NoInit) { 289 TEST(PrefMemberTest, NoInit) {
294 // Make sure not calling Init on a PrefMember doesn't cause problems. 290 // Make sure not calling Init on a PrefMember doesn't cause problems.
295 IntegerPrefMember pref; 291 IntegerPrefMember pref;
296 } 292 }
297 293
298 TEST(PrefMemberTest, MoveToThread) { 294 TEST(PrefMemberTest, MoveToThread) {
299 TestingPrefService prefs; 295 TestingPrefServiceSimple prefs;
300 scoped_refptr<GetPrefValueHelper> helper(new GetPrefValueHelper()); 296 scoped_refptr<GetPrefValueHelper> helper(new GetPrefValueHelper());
301 RegisterTestPrefs(&prefs); 297 RegisterTestPrefs(&prefs);
302 helper->Init(kBoolPref, &prefs); 298 helper->Init(kBoolPref, &prefs);
303 299
304 helper->FetchValue(); 300 helper->FetchValue();
305 EXPECT_FALSE(helper->value()); 301 EXPECT_FALSE(helper->value());
306 302
307 prefs.SetBoolean(kBoolPref, true); 303 prefs.SetBoolean(kBoolPref, true);
308 304
309 helper->FetchValue(); 305 helper->FetchValue();
310 EXPECT_TRUE(helper->value()); 306 EXPECT_TRUE(helper->value());
311 307
312 helper->Destroy(); 308 helper->Destroy();
313 309
314 helper->FetchValue(); 310 helper->FetchValue();
315 EXPECT_TRUE(helper->value()); 311 EXPECT_TRUE(helper->value());
316 } 312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698