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

Side by Side Diff: chrome/test/base/testing_pref_service.cc

Issue 11570009: Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head again, previous had unrelated broken win_rel test. Created 7 years, 12 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/base/testing_pref_service.h ('k') | chrome/test/base/testing_profile.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/test/base/testing_pref_service.h" 5 #include "chrome/test/base/testing_pref_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/prefs/default_pref_store.h" 8 #include "base/prefs/default_pref_store.h"
9 #include "base/prefs/testing_pref_store.h"
10 #include "chrome/browser/policy/configuration_policy_pref_store.h"
11 #include "chrome/browser/prefs/browser_prefs.h" 9 #include "chrome/browser/prefs/browser_prefs.h"
12 #include "chrome/browser/prefs/command_line_pref_store.h"
13 #include "chrome/browser/prefs/pref_model_associator.h"
14 #include "chrome/browser/prefs/pref_notifier_impl.h" 10 #include "chrome/browser/prefs/pref_notifier_impl.h"
15 #include "chrome/browser/prefs/pref_value_store.h" 11 #include "chrome/browser/prefs/pref_value_store.h"
16 #include "chrome/test/base/testing_browser_process.h" 12 #include "chrome/test/base/testing_browser_process.h"
17 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
18 #include "ui/base/l10n/l10n_util.h"
19 14
20 namespace { 15 namespace {
21 16
22 // Do-nothing implementation for PrefService. 17 // Do-nothing implementation for TestingPrefService.
23 void HandleReadError(PersistentPrefStore::PrefReadError error) { 18 void HandleReadError(PersistentPrefStore::PrefReadError error) {
24 } 19 }
25 20
26 } // namespace 21 } // namespace
27 22
28 TestingPrefServiceBase::TestingPrefServiceBase( 23 template<>
24 TestingPrefServiceBase<PrefServiceSimple>::TestingPrefServiceBase(
29 TestingPrefStore* managed_prefs, 25 TestingPrefStore* managed_prefs,
30 TestingPrefStore* user_prefs, 26 TestingPrefStore* user_prefs,
31 TestingPrefStore* recommended_prefs, 27 TestingPrefStore* recommended_prefs,
32 DefaultPrefStore* default_store, 28 DefaultPrefStore* default_store,
33 PrefModelAssociator* pref_sync_associator,
34 PrefNotifierImpl* pref_notifier) 29 PrefNotifierImpl* pref_notifier)
35 : PrefService(pref_notifier, 30 : PrefServiceSimple(pref_notifier,
36 new PrefValueStore( 31 new PrefValueStore(
37 managed_prefs, 32 managed_prefs,
38 NULL, 33 NULL,
39 NULL, 34 NULL,
40 user_prefs, 35 user_prefs,
41 recommended_prefs, 36 recommended_prefs,
42 default_store, 37 default_store,
43 pref_sync_associator, 38 pref_notifier),
44 pref_notifier), 39 user_prefs,
45 user_prefs, 40 default_store,
46 default_store, 41 base::Bind(&HandleReadError),
47 pref_sync_associator, 42 false),
48 base::Bind(&HandleReadError),
49 false),
50 managed_prefs_(managed_prefs), 43 managed_prefs_(managed_prefs),
51 user_prefs_(user_prefs), 44 user_prefs_(user_prefs),
52 recommended_prefs_(recommended_prefs) { 45 recommended_prefs_(recommended_prefs) {
53 } 46 }
54 47
55 TestingPrefServiceBase::~TestingPrefServiceBase() { 48 template<>
49 TestingPrefServiceBase<PrefServiceSyncable>::TestingPrefServiceBase(
50 TestingPrefStore* managed_prefs,
51 TestingPrefStore* user_prefs,
52 TestingPrefStore* recommended_prefs,
53 DefaultPrefStore* default_store,
54 PrefNotifierImpl* pref_notifier)
55 : PrefServiceSyncable(pref_notifier,
56 new PrefValueStore(
57 managed_prefs,
58 NULL,
59 NULL,
60 user_prefs,
61 recommended_prefs,
62 default_store,
63 pref_notifier),
64 user_prefs,
65 default_store,
66 base::Bind(&HandleReadError),
67 false),
68 managed_prefs_(managed_prefs),
69 user_prefs_(user_prefs),
70 recommended_prefs_(recommended_prefs) {
56 } 71 }
57 72
58 const Value* TestingPrefServiceBase::GetManagedPref(const char* path) const { 73 TestingPrefServiceSimple::TestingPrefServiceSimple()
59 return GetPref(managed_prefs_, path); 74 : TestingPrefServiceBase<PrefServiceSimple>(new TestingPrefStore(),
75 new TestingPrefStore(),
76 new TestingPrefStore(),
77 new DefaultPrefStore(),
78 new PrefNotifierImpl()) {
60 } 79 }
61 80
62 void TestingPrefServiceBase::SetManagedPref(const char* path, Value* value) { 81 TestingPrefServiceSimple::~TestingPrefServiceSimple() {
63 SetPref(managed_prefs_, path, value);
64 } 82 }
65 83
66 void TestingPrefServiceBase::RemoveManagedPref(const char* path) { 84 TestingPrefServiceSyncable::TestingPrefServiceSyncable()
67 RemovePref(managed_prefs_, path); 85 : TestingPrefServiceBase<PrefServiceSyncable>(new TestingPrefStore(),
86 new TestingPrefStore(),
87 new TestingPrefStore(),
88 new DefaultPrefStore(),
89 new PrefNotifierImpl()) {
68 } 90 }
69 91
70 const Value* TestingPrefServiceBase::GetUserPref(const char* path) const { 92 TestingPrefServiceSyncable::~TestingPrefServiceSyncable() {
71 return GetPref(user_prefs_, path);
72 }
73
74 void TestingPrefServiceBase::SetUserPref(const char* path, Value* value) {
75 SetPref(user_prefs_, path, value);
76 }
77
78 void TestingPrefServiceBase::RemoveUserPref(const char* path) {
79 RemovePref(user_prefs_, path);
80 }
81
82 const Value* TestingPrefServiceBase::GetRecommendedPref(
83 const char* path) const {
84 return GetPref(recommended_prefs_, path);
85 }
86
87 void TestingPrefServiceBase::SetRecommendedPref(
88 const char* path, Value* value) {
89 SetPref(recommended_prefs_, path, value);
90 }
91
92 void TestingPrefServiceBase::RemoveRecommendedPref(const char* path) {
93 RemovePref(recommended_prefs_, path);
94 }
95
96 const Value* TestingPrefServiceBase::GetPref(TestingPrefStore* pref_store,
97 const char* path) const {
98 const Value* res;
99 return pref_store->GetValue(path, &res) ? res : NULL;
100 }
101
102 void TestingPrefServiceBase::SetPref(TestingPrefStore* pref_store,
103 const char* path,
104 Value* value) {
105 pref_store->SetValue(path, value);
106 }
107
108 void TestingPrefServiceBase::RemovePref(TestingPrefStore* pref_store,
109 const char* path) {
110 pref_store->RemoveValue(path);
111 }
112
113 TestingPrefService::TestingPrefService()
114 : TestingPrefServiceBase(new TestingPrefStore(),
115 new TestingPrefStore(),
116 new TestingPrefStore(),
117 new DefaultPrefStore(),
118 new PrefModelAssociator(),
119 new PrefNotifierImpl()) {
120 }
121
122 TestingPrefService::~TestingPrefService() {
123 } 93 }
124 94
125 ScopedTestingLocalState::ScopedTestingLocalState( 95 ScopedTestingLocalState::ScopedTestingLocalState(
126 TestingBrowserProcess* browser_process) 96 TestingBrowserProcess* browser_process)
127 : browser_process_(browser_process) { 97 : browser_process_(browser_process) {
128 chrome::RegisterLocalState(&local_state_); 98 chrome::RegisterLocalState(&local_state_);
129 EXPECT_FALSE(browser_process->local_state()); 99 EXPECT_FALSE(browser_process->local_state());
130 browser_process->SetLocalState(&local_state_); 100 browser_process->SetLocalState(&local_state_);
131 } 101 }
132 102
133 ScopedTestingLocalState::~ScopedTestingLocalState() { 103 ScopedTestingLocalState::~ScopedTestingLocalState() {
134 EXPECT_EQ(&local_state_, browser_process_->local_state()); 104 EXPECT_EQ(&local_state_, browser_process_->local_state());
135 browser_process_->SetLocalState(NULL); 105 browser_process_->SetLocalState(NULL);
136 } 106 }
OLDNEW
« no previous file with comments | « chrome/test/base/testing_pref_service.h ('k') | chrome/test/base/testing_profile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698