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

Side by Side Diff: chrome/browser/prefs/pref_value_store_unittest.cc

Issue 6312121: Add initial device policy infrastructure. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix race condition and tests. Created 9 years, 10 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/browser/prefs/pref_value_store.cc ('k') | chrome/chrome_browser.gypi » ('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) 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 7
8 #include "base/scoped_ptr.h" 8 #include "base/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/browser_thread.h" 10 #include "chrome/browser/browser_thread.h"
(...skipping 15 matching lines...) Expand all
26 26
27 // Allows to capture pref notifications through gmock. 27 // Allows to capture pref notifications through gmock.
28 class MockPrefNotifier : public PrefNotifier { 28 class MockPrefNotifier : public PrefNotifier {
29 public: 29 public:
30 MOCK_METHOD1(OnPreferenceChanged, void(const std::string&)); 30 MOCK_METHOD1(OnPreferenceChanged, void(const std::string&));
31 MOCK_METHOD0(OnInitializationCompleted, void()); 31 MOCK_METHOD0(OnInitializationCompleted, void());
32 }; 32 };
33 33
34 } // namespace 34 } // namespace
35 35
36 // Names of the preferences used in this test program. 36 // Names of the preferences used in this test.
37 namespace prefs { 37 namespace prefs {
38 const char kManagedPlatformPref[] = "this.pref.managed_platform";
39 const char kManagedCloudPref[] = "this.pref.managed_cloud";
40 const char kCommandLinePref[] = "this.pref.command_line";
41 const char kExtensionPref[] = "this.pref.extension";
42 const char kUserPref[] = "this.pref.user";
43 const char kRecommendedPlatformPref[] = "this.pref.recommended_platform";
44 const char kRecommendedCloudPref[] = "this.pref.recommended_cloud";
45 const char kDefaultPref[] = "this.pref.default";
38 const char kMissingPref[] = "this.pref.does_not_exist"; 46 const char kMissingPref[] = "this.pref.does_not_exist";
39 const char kRecommendedPref[] = "this.pref.recommended_value_only";
40 const char kSampleDict[] = "sample.dict";
41 const char kSampleList[] = "sample.list";
42 const char kDefaultPref[] = "default.pref";
43 } 47 }
44 48
45 // Potentially expected values of all preferences used in this test program. 49 // Potentially expected values of all preferences used in this test program.
46 namespace managed_platform_pref { 50 namespace managed_platform_pref {
47 const std::string kHomepageValue = "http://www.topeka.com"; 51 const char kManagedPlatformValue[] = "managed_platform:managed_platform";
48 } 52 }
49 53
50 namespace device_management_pref { 54 namespace managed_cloud_pref {
51 const std::string kSearchProviderNameValue = "Chromium"; 55 const char kManagedPlatformValue[] = "managed_cloud:managed_platform";
52 const char kHomepageValue[] = "http://www.wandering-around.org"; 56 const char kManagedCloudValue[] = "managed_cloud:managed_cloud";
53 } 57 }
54 58
55 namespace extension_pref { 59 namespace extension_pref {
56 const char kCurrentThemeIDValue[] = "set by extension"; 60 const char kManagedPlatformValue[] = "extension:managed_platform";
57 const char kHomepageValue[] = "http://www.chromium.org"; 61 const char kManagedCloudValue[] = "extension:managed_cloud";
58 const std::string kSearchProviderNameValue = "AreYouFeelingALittleLucky"; 62 const char kExtensionValue[] = "extension:extension";
59 } 63 }
60 64
61 namespace command_line_pref { 65 namespace command_line_pref {
62 const char kApplicationLocaleValue[] = "hi-MOM"; 66 const char kManagedPlatformValue[] = "command_line:managed_platform";
63 const char kCurrentThemeIDValue[] = "zyxwvut"; 67 const char kManagedCloudValue[] = "command_line:managed_cloud";
64 const char kHomepageValue[] = "http://www.ferretcentral.org"; 68 const char kExtensionValue[] = "command_line:extension";
65 const std::string kSearchProviderNameValue = "AreYouFeelingPrettyLucky"; 69 const char kCommandLineValue[] = "command_line:command_line";
66 } 70 }
67 71
68 // The "user" namespace is defined globally in an ARM system header, so we need
69 // something different here.
70 namespace user_pref { 72 namespace user_pref {
71 const int kStabilityLaunchCountValue = 31; 73 const char kManagedPlatformValue[] = "user:managed_platform";
72 const bool kDeleteCacheValue = true; 74 const char kManagedCloudValue[] = "user:managed_cloud";
73 const char kCurrentThemeIDValue[] = "abcdefg"; 75 const char kExtensionValue[] = "user:extension";
74 const char kHomepageValue[] = "http://www.google.com"; 76 const char kCommandLineValue[] = "user:command_line";
75 const char kApplicationLocaleValue[] = "is-WRONG"; 77 const char kUserValue[] = "user:user";
76 const std::string kSearchProviderNameValue = "AreYouFeelingVeryLucky";
77 } 78 }
78 79
79 namespace recommended_pref { 80 namespace recommended_platform_pref {
80 const int kStabilityLaunchCountValue = 10; 81 const char kManagedPlatformValue[] = "recommended_platform:managed_platform";
81 const bool kRecommendedPrefValue = true; 82 const char kManagedCloudValue[] = "recommended_platform:managed_cloud";
83 const char kExtensionValue[] = "recommended_platform:extension";
84 const char kCommandLineValue[] = "recommended_platform:command_line";
85 const char kUserValue[] = "recommended_platform:user";
86 const char kRecommendedPlatformValue[] =
87 "recommended_platform:recommended_platform";
88 }
89
90 namespace recommended_cloud_pref {
91 const char kManagedPlatformValue[] = "recommended_cloud:managed_platform";
92 const char kManagedCloudValue[] = "recommended_cloud:managed_cloud";
93 const char kExtensionValue[] = "recommended_cloud:extension";
94 const char kCommandLineValue[] = "recommended_cloud:command_line";
95 const char kUserValue[] = "recommended_cloud:user";
96 const char kRecommendedPlatformValue[] =
97 "recommended_cloud:recommended_platform";
98 const char kRecommendedCloudValue[] = "recommended_cloud:recommended_cloud";
82 } 99 }
83 100
84 namespace default_pref { 101 namespace default_pref {
85 const int kDefaultValue = 7; 102 const char kManagedPlatformValue[] = "default:managed_platform";
86 const char kHomepageValue[] = "default homepage"; 103 const char kManagedCloudValue[] = "default:managed_cloud";
87 const std::string kSearchProviderNameValue = "AreYouFeelingExtraLucky"; 104 const char kExtensionValue[] = "default:extension";
105 const char kCommandLineValue[] = "default:command_line";
106 const char kUserValue[] = "default:user";
107 const char kRecommendedPlatformValue[] = "default:recommended_platform";
108 const char kRecommendedCloudValue[] = "default:recommended_cloud";
109 const char kDefaultValue[] = "default:default";
88 } 110 }
89 111
90 class PrefValueStoreTest : public testing::Test { 112 class PrefValueStoreTest : public testing::Test {
91 protected: 113 protected:
92 virtual void SetUp() { 114 virtual void SetUp() {
93 // Create TestingPrefStores. 115 // Create TestingPrefStores.
94 CreateManagedPlatformPrefs(); 116 CreateManagedPlatformPrefs();
95 CreateDeviceManagementPrefs(); 117 CreateManagedCloudPrefs();
96 CreateExtensionPrefs(); 118 CreateExtensionPrefs();
97 CreateCommandLinePrefs(); 119 CreateCommandLinePrefs();
98 CreateUserPrefs(); 120 CreateUserPrefs();
99 CreateRecommendedPrefs(); 121 CreateRecommendedPlatformPrefs();
122 CreateRecommendedCloudPrefs();
100 CreateDefaultPrefs(); 123 CreateDefaultPrefs();
101 124
102 // Create a fresh PrefValueStore. 125 // Create a fresh PrefValueStore.
103 pref_value_store_.reset(new PrefValueStore( 126 pref_value_store_.reset(new PrefValueStore(
104 managed_platform_pref_store_, 127 managed_platform_pref_store_,
105 device_management_pref_store_, 128 managed_cloud_pref_store_,
106 extension_pref_store_, 129 extension_pref_store_,
107 command_line_pref_store_, 130 command_line_pref_store_,
108 user_pref_store_, 131 user_pref_store_,
109 recommended_pref_store_, 132 recommended_platform_pref_store_,
133 recommended_cloud_pref_store_,
110 default_pref_store_, 134 default_pref_store_,
111 &pref_notifier_)); 135 &pref_notifier_));
112 } 136 }
113 137
114 // Creates a new dictionary and stores some sample user preferences 138 void CreateManagedPlatformPrefs() {
115 // in it. 139 managed_platform_pref_store_ = new TestingPrefStore;
140 managed_platform_pref_store_->SetString(
141 prefs::kManagedPlatformPref,
142 managed_platform_pref::kManagedPlatformValue);
143 }
144
145 void CreateManagedCloudPrefs() {
146 managed_cloud_pref_store_ = new TestingPrefStore;
147 managed_cloud_pref_store_->SetString(
148 prefs::kManagedPlatformPref,
149 managed_cloud_pref::kManagedPlatformValue);
150 managed_cloud_pref_store_->SetString(
151 prefs::kManagedCloudPref,
152 managed_cloud_pref::kManagedCloudValue);
153 }
154
155 void CreateExtensionPrefs() {
156 extension_pref_store_ = new TestingPrefStore;
157 extension_pref_store_->SetString(
158 prefs::kManagedPlatformPref,
159 extension_pref::kManagedPlatformValue);
160 extension_pref_store_->SetString(
161 prefs::kManagedCloudPref,
162 extension_pref::kManagedCloudValue);
163 extension_pref_store_->SetString(
164 prefs::kExtensionPref,
165 extension_pref::kExtensionValue);
166 }
167
168 void CreateCommandLinePrefs() {
169 command_line_pref_store_ = new TestingPrefStore;
170 command_line_pref_store_->SetString(
171 prefs::kManagedPlatformPref,
172 command_line_pref::kManagedPlatformValue);
173 command_line_pref_store_->SetString(
174 prefs::kManagedCloudPref,
175 command_line_pref::kManagedCloudValue);
176 command_line_pref_store_->SetString(
177 prefs::kExtensionPref,
178 command_line_pref::kExtensionValue);
179 command_line_pref_store_->SetString(
180 prefs::kCommandLinePref,
181 command_line_pref::kCommandLineValue);
182 }
183
116 void CreateUserPrefs() { 184 void CreateUserPrefs() {
117 user_pref_store_ = new TestingPrefStore; 185 user_pref_store_ = new TestingPrefStore;
118 user_pref_store_->SetBoolean(prefs::kDeleteCache, 186 user_pref_store_->SetString(
119 user_pref::kDeleteCacheValue); 187 prefs::kManagedPlatformPref,
120 user_pref_store_->SetInteger(prefs::kStabilityLaunchCount, 188 user_pref::kManagedPlatformValue);
121 user_pref::kStabilityLaunchCountValue); 189 user_pref_store_->SetString(
122 user_pref_store_->SetString(prefs::kCurrentThemeID, 190 prefs::kManagedCloudPref,
123 user_pref::kCurrentThemeIDValue); 191 user_pref::kManagedCloudValue);
124 user_pref_store_->SetString(prefs::kApplicationLocale, 192 user_pref_store_->SetString(
125 user_pref::kApplicationLocaleValue); 193 prefs::kCommandLinePref,
126 user_pref_store_->SetString(prefs::kDefaultSearchProviderName, 194 user_pref::kCommandLineValue);
127 user_pref::kSearchProviderNameValue); 195 user_pref_store_->SetString(
128 user_pref_store_->SetString(prefs::kHomePage, 196 prefs::kExtensionPref,
129 user_pref::kHomepageValue); 197 user_pref::kExtensionValue);
130 } 198 user_pref_store_->SetString(
131 199 prefs::kUserPref,
132 void CreateManagedPlatformPrefs() { 200 user_pref::kUserValue);
133 managed_platform_pref_store_ = new TestingPrefStore; 201 }
134 managed_platform_pref_store_->SetString(prefs::kHomePage, 202
135 managed_platform_pref::kHomepageValue); 203 void CreateRecommendedPlatformPrefs() {
136 } 204 recommended_platform_pref_store_ = new TestingPrefStore;
137 205 recommended_platform_pref_store_->SetString(
138 void CreateDeviceManagementPrefs() { 206 prefs::kManagedPlatformPref,
139 device_management_pref_store_ = new TestingPrefStore; 207 recommended_platform_pref::kManagedPlatformValue);
140 device_management_pref_store_->SetString(prefs::kDefaultSearchProviderName, 208 recommended_platform_pref_store_->SetString(
141 device_management_pref::kSearchProviderNameValue); 209 prefs::kManagedCloudPref,
142 device_management_pref_store_->SetString(prefs::kHomePage, 210 recommended_platform_pref::kManagedCloudValue);
143 device_management_pref::kHomepageValue); 211 recommended_platform_pref_store_->SetString(
144 } 212 prefs::kCommandLinePref,
145 213 recommended_platform_pref::kCommandLineValue);
146 void CreateExtensionPrefs() { 214 recommended_platform_pref_store_->SetString(
147 extension_pref_store_ = new TestingPrefStore; 215 prefs::kExtensionPref,
148 extension_pref_store_->SetString(prefs::kCurrentThemeID, 216 recommended_platform_pref::kExtensionValue);
149 extension_pref::kCurrentThemeIDValue); 217 recommended_platform_pref_store_->SetString(
150 extension_pref_store_->SetString(prefs::kHomePage, 218 prefs::kUserPref,
151 extension_pref::kHomepageValue); 219 recommended_platform_pref::kUserValue);
152 extension_pref_store_->SetString(prefs::kDefaultSearchProviderName, 220 recommended_platform_pref_store_->SetString(
153 extension_pref::kSearchProviderNameValue); 221 prefs::kRecommendedPlatformPref,
154 } 222 recommended_platform_pref::kRecommendedPlatformValue);
155 223 }
156 void CreateCommandLinePrefs() { 224
157 command_line_pref_store_ = new TestingPrefStore; 225 void CreateRecommendedCloudPrefs() {
158 command_line_pref_store_->SetString(prefs::kCurrentThemeID, 226 recommended_cloud_pref_store_ = new TestingPrefStore;
159 command_line_pref::kCurrentThemeIDValue); 227 recommended_cloud_pref_store_->SetString(
160 command_line_pref_store_->SetString(prefs::kApplicationLocale, 228 prefs::kManagedPlatformPref,
161 command_line_pref::kApplicationLocaleValue); 229 recommended_cloud_pref::kManagedPlatformValue);
162 command_line_pref_store_->SetString(prefs::kHomePage, 230 recommended_cloud_pref_store_->SetString(
163 command_line_pref::kHomepageValue); 231 prefs::kManagedCloudPref,
164 command_line_pref_store_->SetString(prefs::kDefaultSearchProviderName, 232 recommended_cloud_pref::kManagedCloudValue);
165 command_line_pref::kSearchProviderNameValue); 233 recommended_cloud_pref_store_->SetString(
166 } 234 prefs::kCommandLinePref,
167 235 recommended_cloud_pref::kCommandLineValue);
168 void CreateRecommendedPrefs() { 236 recommended_cloud_pref_store_->SetString(
169 recommended_pref_store_ = new TestingPrefStore; 237 prefs::kExtensionPref,
170 recommended_pref_store_->SetInteger(prefs::kStabilityLaunchCount, 238 recommended_cloud_pref::kExtensionValue);
171 recommended_pref::kStabilityLaunchCountValue); 239 recommended_cloud_pref_store_->SetString(
172 recommended_pref_store_->SetBoolean(prefs::kRecommendedPref, 240 prefs::kUserPref,
173 recommended_pref::kRecommendedPrefValue); 241 recommended_cloud_pref::kUserValue);
242 recommended_cloud_pref_store_->SetString(
243 prefs::kRecommendedPlatformPref,
244 recommended_cloud_pref::kRecommendedPlatformValue);
245 recommended_cloud_pref_store_->SetString(
246 prefs::kRecommendedCloudPref,
247 recommended_cloud_pref::kRecommendedCloudValue);
174 } 248 }
175 249
176 void CreateDefaultPrefs() { 250 void CreateDefaultPrefs() {
177 default_pref_store_ = new TestingPrefStore; 251 default_pref_store_ = new TestingPrefStore;
178 default_pref_store_->SetInteger(prefs::kDefaultPref, 252 default_pref_store_->SetString(
179 default_pref::kDefaultValue); 253 prefs::kManagedPlatformPref,
180 } 254 default_pref::kManagedPlatformValue);
181 255 default_pref_store_->SetString(
182 DictionaryValue* CreateSampleDictValue() { 256 prefs::kManagedCloudPref,
183 DictionaryValue* sample_dict = new DictionaryValue(); 257 default_pref::kManagedCloudValue);
184 sample_dict->SetBoolean("issample", true); 258 default_pref_store_->SetString(
185 sample_dict->SetInteger("value", 4); 259 prefs::kCommandLinePref,
186 sample_dict->SetString("descr", "Sample Test Dictionary"); 260 default_pref::kCommandLineValue);
187 return sample_dict; 261 default_pref_store_->SetString(
188 } 262 prefs::kExtensionPref,
189 263 default_pref::kExtensionValue);
190 ListValue* CreateSampleListValue() { 264 default_pref_store_->SetString(
191 ListValue* sample_list = new ListValue(); 265 prefs::kUserPref,
192 sample_list->Set(0, Value::CreateIntegerValue(0)); 266 default_pref::kUserValue);
193 sample_list->Set(1, Value::CreateIntegerValue(1)); 267 default_pref_store_->SetString(
194 sample_list->Set(2, Value::CreateIntegerValue(2)); 268 prefs::kRecommendedPlatformPref,
195 sample_list->Set(3, Value::CreateIntegerValue(3)); 269 default_pref::kRecommendedPlatformValue);
196 return sample_list; 270 default_pref_store_->SetString(
271 prefs::kRecommendedCloudPref,
272 default_pref::kRecommendedCloudValue);
273 default_pref_store_->SetString(
274 prefs::kDefaultPref,
275 default_pref::kDefaultValue);
197 } 276 }
198 277
199 MockPrefNotifier pref_notifier_; 278 MockPrefNotifier pref_notifier_;
200 scoped_ptr<PrefValueStore> pref_value_store_; 279 scoped_ptr<PrefValueStore> pref_value_store_;
201 280
202 scoped_refptr<TestingPrefStore> managed_platform_pref_store_; 281 scoped_refptr<TestingPrefStore> managed_platform_pref_store_;
203 scoped_refptr<TestingPrefStore> device_management_pref_store_; 282 scoped_refptr<TestingPrefStore> managed_cloud_pref_store_;
204 scoped_refptr<TestingPrefStore> extension_pref_store_; 283 scoped_refptr<TestingPrefStore> extension_pref_store_;
205 scoped_refptr<TestingPrefStore> command_line_pref_store_; 284 scoped_refptr<TestingPrefStore> command_line_pref_store_;
206 scoped_refptr<TestingPrefStore> user_pref_store_; 285 scoped_refptr<TestingPrefStore> user_pref_store_;
207 scoped_refptr<TestingPrefStore> recommended_pref_store_; 286 scoped_refptr<TestingPrefStore> recommended_platform_pref_store_;
287 scoped_refptr<TestingPrefStore> recommended_cloud_pref_store_;
208 scoped_refptr<TestingPrefStore> default_pref_store_; 288 scoped_refptr<TestingPrefStore> default_pref_store_;
209 }; 289 };
210 290
211 TEST_F(PrefValueStoreTest, GetValue) { 291 TEST_F(PrefValueStoreTest, GetValue) {
212 Value* value; 292 Value* value;
213 293
214 // Test getting a managed platform value overwriting a user-defined and 294 // The following tests read a value from the PrefService. The preferences are
215 // extension-defined value. 295 // set in a way such that all lower-priority stores have a value and we can
216 value = NULL; 296 // test whether overrides work correctly.
217 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, Value::TYPE_STRING, 297
218 &value)); 298 // Test getting a managed platform value.
299 value = NULL;
300 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kManagedPlatformPref,
301 Value::TYPE_STRING, &value));
219 std::string actual_str_value; 302 std::string actual_str_value;
220 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 303 EXPECT_TRUE(value->GetAsString(&actual_str_value));
221 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value); 304 EXPECT_EQ(managed_platform_pref::kManagedPlatformValue, actual_str_value);
222 305
223 // Test getting a managed platform value overwriting a user-defined value. 306 // Test getting a managed cloud value.
224 value = NULL; 307 value = NULL;
225 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName, 308 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kManagedCloudPref,
226 Value::TYPE_STRING, &value)); 309 Value::TYPE_STRING, &value));
227 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 310 EXPECT_TRUE(value->GetAsString(&actual_str_value));
228 EXPECT_EQ(device_management_pref::kSearchProviderNameValue, 311 EXPECT_EQ(managed_cloud_pref::kManagedCloudValue, actual_str_value);
312
313 // Test getting an extension value.
314 value = NULL;
315 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kExtensionPref,
316 Value::TYPE_STRING, &value));
317 EXPECT_TRUE(value->GetAsString(&actual_str_value));
318 EXPECT_EQ(extension_pref::kExtensionValue, actual_str_value);
319
320 // Test getting a command-line value.
321 value = NULL;
322 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCommandLinePref,
323 Value::TYPE_STRING, &value));
324 EXPECT_TRUE(value->GetAsString(&actual_str_value));
325 EXPECT_EQ(command_line_pref::kCommandLineValue, actual_str_value);
326
327 // Test getting a user-set value.
328 value = NULL;
329 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kUserPref,
330 Value::TYPE_STRING, &value));
331 EXPECT_TRUE(value->GetAsString(&actual_str_value));
332 EXPECT_EQ(user_pref::kUserValue, actual_str_value);
333
334 // Test getting a user set value overwriting a recommended value.
335 value = NULL;
336 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPlatformPref,
337 Value::TYPE_STRING, &value));
338 EXPECT_TRUE(value->GetAsString(&actual_str_value));
339 EXPECT_EQ(recommended_platform_pref::kRecommendedPlatformValue,
229 actual_str_value); 340 actual_str_value);
230 341
231 // Test getting an extension value overwriting a user-defined and
232 // command-line-defined value.
233 value = NULL;
234 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID,
235 Value::TYPE_STRING, &value));
236 EXPECT_TRUE(value->GetAsString(&actual_str_value));
237 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value);
238
239 // Test getting a command-line value overwriting a user-defined value.
240 value = NULL;
241 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kApplicationLocale,
242 Value::TYPE_STRING, &value));
243 EXPECT_TRUE(value->GetAsString(&actual_str_value));
244 EXPECT_EQ(command_line_pref::kApplicationLocaleValue, actual_str_value);
245
246 // Test getting a user-set value.
247 value = NULL;
248 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache,
249 Value::TYPE_BOOLEAN, &value));
250 bool actual_bool_value = false;
251 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value));
252 EXPECT_EQ(user_pref::kDeleteCacheValue, actual_bool_value);
253
254 // Test getting a user set value overwriting a recommended value.
255 value = NULL;
256 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount,
257 Value::TYPE_INTEGER, &value));
258 int actual_int_value = -1;
259 EXPECT_TRUE(value->GetAsInteger(&actual_int_value));
260 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, actual_int_value);
261
262 // Test getting a recommended value. 342 // Test getting a recommended value.
263 value = NULL; 343 value = NULL;
264 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPref, 344 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedCloudPref,
265 Value::TYPE_BOOLEAN, &value)); 345 Value::TYPE_STRING, &value));
266 actual_bool_value = false; 346 EXPECT_TRUE(value->GetAsString(&actual_str_value));
267 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); 347 EXPECT_EQ(recommended_cloud_pref::kRecommendedCloudValue, actual_str_value);
268 EXPECT_EQ(recommended_pref::kRecommendedPrefValue, actual_bool_value);
269 348
270 // Test getting a default value. 349 // Test getting a default value.
271 value = NULL; 350 value = NULL;
272 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref, 351 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref,
273 Value::TYPE_INTEGER, &value)); 352 Value::TYPE_STRING, &value));
274 actual_int_value = -1; 353 EXPECT_TRUE(value->GetAsString(&actual_str_value));
275 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); 354 EXPECT_EQ(default_pref::kDefaultValue, actual_str_value);
276 EXPECT_EQ(default_pref::kDefaultValue, actual_int_value);
277 355
278 // Test getting a preference value that the |PrefValueStore| 356 // Test getting a preference value that the |PrefValueStore|
279 // does not contain. 357 // does not contain.
280 FundamentalValue tmp_dummy_value(true); 358 FundamentalValue tmp_dummy_value(true);
281 Value* v_null = &tmp_dummy_value; 359 value = &tmp_dummy_value;
282 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, 360 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref,
283 Value::TYPE_STRING, &v_null)); 361 Value::TYPE_STRING, &value));
284 ASSERT_TRUE(v_null == NULL); 362 ASSERT_TRUE(value == NULL);
285 } 363 }
286 364
287 TEST_F(PrefValueStoreTest, PrefChanges) { 365 TEST_F(PrefValueStoreTest, PrefChanges) {
288 // Setup.
289 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber());
290 const char managed_platform_pref_path[] = "managed_platform_pref";
291 managed_platform_pref_store_->SetString(managed_platform_pref_path,
292 "managed value");
293 const char user_pref_path[] = "user_pref";
294 user_pref_store_->SetString(user_pref_path, "user value");
295 const char default_pref_path[] = "default_pref";
296 default_pref_store_->SetString(default_pref_path, "default value");
297 Mock::VerifyAndClearExpectations(&pref_notifier_);
298
299 // Check pref controlled by highest-priority store. 366 // Check pref controlled by highest-priority store.
300 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(managed_platform_pref_path)); 367 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPlatformPref));
301 managed_platform_pref_store_->NotifyPrefValueChanged( 368 managed_platform_pref_store_->NotifyPrefValueChanged(
302 managed_platform_pref_path); 369 prefs::kManagedPlatformPref);
303 Mock::VerifyAndClearExpectations(&pref_notifier_); 370 Mock::VerifyAndClearExpectations(&pref_notifier_);
304 371
305 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); 372 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
306 user_pref_store_->NotifyPrefValueChanged(managed_platform_pref_path); 373 managed_cloud_pref_store_->NotifyPrefValueChanged(
374 prefs::kManagedPlatformPref);
375 extension_pref_store_->NotifyPrefValueChanged(
376 prefs::kManagedPlatformPref);
377 command_line_pref_store_->NotifyPrefValueChanged(
378 prefs::kManagedPlatformPref);
379 user_pref_store_->NotifyPrefValueChanged(
380 prefs::kManagedPlatformPref);
381 recommended_platform_pref_store_->NotifyPrefValueChanged(
382 prefs::kManagedPlatformPref);
383 recommended_cloud_pref_store_->NotifyPrefValueChanged(
384 prefs::kManagedPlatformPref);
385 default_pref_store_->NotifyPrefValueChanged(
386 prefs::kManagedPlatformPref);
307 Mock::VerifyAndClearExpectations(&pref_notifier_); 387 Mock::VerifyAndClearExpectations(&pref_notifier_);
308 388
309 // Check pref controlled by user store. 389 // Check pref controlled by user store.
310 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(user_pref_path)); 390 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
311 managed_platform_pref_store_->NotifyPrefValueChanged(user_pref_path); 391 managed_platform_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
312 Mock::VerifyAndClearExpectations(&pref_notifier_); 392 Mock::VerifyAndClearExpectations(&pref_notifier_);
313 393
314 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(user_pref_path)); 394 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
315 user_pref_store_->NotifyPrefValueChanged(user_pref_path); 395 managed_cloud_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
396 Mock::VerifyAndClearExpectations(&pref_notifier_);
397
398 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
399 extension_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
400 Mock::VerifyAndClearExpectations(&pref_notifier_);
401
402 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
403 command_line_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
404 Mock::VerifyAndClearExpectations(&pref_notifier_);
405
406 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
407 user_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
316 Mock::VerifyAndClearExpectations(&pref_notifier_); 408 Mock::VerifyAndClearExpectations(&pref_notifier_);
317 409
318 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); 410 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
319 default_pref_store_->NotifyPrefValueChanged(user_pref_path); 411 recommended_platform_pref_store_->NotifyPrefValueChanged(
412 prefs::kUserPref);
413 recommended_cloud_pref_store_->NotifyPrefValueChanged(
414 prefs::kUserPref);
415 default_pref_store_->NotifyPrefValueChanged(
416 prefs::kUserPref);
320 Mock::VerifyAndClearExpectations(&pref_notifier_); 417 Mock::VerifyAndClearExpectations(&pref_notifier_);
321 418
322 // Check pref controlled by default-pref store. 419 // Check pref controlled by default-pref store.
323 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(default_pref_path)); 420 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
324 user_pref_store_->NotifyPrefValueChanged(default_pref_path); 421 managed_platform_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
325 Mock::VerifyAndClearExpectations(&pref_notifier_); 422 Mock::VerifyAndClearExpectations(&pref_notifier_);
326 423
327 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(default_pref_path)); 424 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
328 default_pref_store_->NotifyPrefValueChanged(default_pref_path); 425 managed_cloud_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
426 Mock::VerifyAndClearExpectations(&pref_notifier_);
427
428 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
429 extension_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
430 Mock::VerifyAndClearExpectations(&pref_notifier_);
431
432 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
433 command_line_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
434 Mock::VerifyAndClearExpectations(&pref_notifier_);
435
436 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
437 user_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
438 Mock::VerifyAndClearExpectations(&pref_notifier_);
439
440 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
441 recommended_platform_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
442 Mock::VerifyAndClearExpectations(&pref_notifier_);
443
444 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
445 recommended_cloud_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
446 Mock::VerifyAndClearExpectations(&pref_notifier_);
447
448 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
449 default_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
329 Mock::VerifyAndClearExpectations(&pref_notifier_); 450 Mock::VerifyAndClearExpectations(&pref_notifier_);
330 } 451 }
331 452
332 TEST_F(PrefValueStoreTest, OnInitializationCompleted) { 453 TEST_F(PrefValueStoreTest, OnInitializationCompleted) {
333 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(0); 454 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(0);
334 managed_platform_pref_store_->SetInitializationCompleted(); 455 managed_platform_pref_store_->SetInitializationCompleted();
335 device_management_pref_store_->SetInitializationCompleted(); 456 managed_cloud_pref_store_->SetInitializationCompleted();
336 extension_pref_store_->SetInitializationCompleted(); 457 extension_pref_store_->SetInitializationCompleted();
337 command_line_pref_store_->SetInitializationCompleted(); 458 command_line_pref_store_->SetInitializationCompleted();
338 recommended_pref_store_->SetInitializationCompleted(); 459 recommended_platform_pref_store_->SetInitializationCompleted();
460 recommended_cloud_pref_store_->SetInitializationCompleted();
339 default_pref_store_->SetInitializationCompleted(); 461 default_pref_store_->SetInitializationCompleted();
340 Mock::VerifyAndClearExpectations(&pref_notifier_); 462 Mock::VerifyAndClearExpectations(&pref_notifier_);
341 463
342 // The notification should only be triggered after the last store is done. 464 // The notification should only be triggered after the last store is done.
343 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1); 465 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1);
344 user_pref_store_->SetInitializationCompleted(); 466 user_pref_store_->SetInitializationCompleted();
345 Mock::VerifyAndClearExpectations(&pref_notifier_); 467 Mock::VerifyAndClearExpectations(&pref_notifier_);
346 } 468 }
347 469
348 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) { 470 TEST_F(PrefValueStoreTest, PrefValueInManagedStore) {
349 // Test a managed platform preference. 471 EXPECT_TRUE(pref_value_store_->PrefValueInManagedStore(
350 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore( 472 prefs::kManagedPlatformPref));
351 prefs::kHomePage)); 473 EXPECT_TRUE(pref_value_store_->PrefValueInManagedStore(
352 474 prefs::kManagedCloudPref));
353 // Test a device management preference. 475 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
354 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore( 476 prefs::kExtensionPref));
355 prefs::kDefaultSearchProviderName)); 477 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
356 478 prefs::kCommandLinePref));
357 // Test an extension preference. 479 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
358 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 480 prefs::kUserPref));
359 prefs::kCurrentThemeID)); 481 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
360 482 prefs::kRecommendedPlatformPref));
361 // Test a command-line preference. 483 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
362 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( 484 prefs::kRecommendedCloudPref));
363 prefs::kApplicationLocale)); 485 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
364
365 // Test a user preference.
366 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
367 prefs::kStabilityLaunchCount));
368
369 // Test a preference from the recommended pref store.
370 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
371 prefs::kRecommendedPref));
372
373 // Test a preference from the default pref store.
374 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
375 prefs::kDefaultPref)); 486 prefs::kDefaultPref));
376 487 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(
377 // Test a preference for which the PrefValueStore does not contain a value.
378 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
379 prefs::kMissingPref)); 488 prefs::kMissingPref));
380 } 489 }
381 490
382 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { 491 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) {
383 // Test a managed platform preference.
384 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage));
385 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
386 prefs::kHomePage));
387
388 // Test a device management preference.
389 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( 492 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(
390 prefs::kDefaultSearchProviderName)); 493 prefs::kManagedPlatformPref));
391 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
392 prefs::kDefaultSearchProviderName));
393
394 // Test an extension preference.
395 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( 494 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(
396 prefs::kCurrentThemeID)); 495 prefs::kManagedCloudPref));
397 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( 496 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(
398 prefs::kCurrentThemeID)); 497 prefs::kExtensionPref));
399
400 // Test a command-line preference.
401 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 498 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
402 prefs::kApplicationLocale)); 499 prefs::kCommandLinePref));
403 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
404 prefs::kApplicationLocale));
405
406 // Test a user preference.
407 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 500 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
408 prefs::kStabilityLaunchCount)); 501 prefs::kUserPref));
409 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
410 prefs::kStabilityLaunchCount));
411
412 // Test a preference from the recommended pref store.
413 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 502 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
414 prefs::kRecommendedPref)); 503 prefs::kRecommendedPlatformPref));
415 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 504 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
416 prefs::kRecommendedPref)); 505 prefs::kRecommendedCloudPref));
417
418 // Test a preference from the default pref store.
419 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 506 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
420 prefs::kDefaultPref)); 507 prefs::kDefaultPref));
508 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
509 prefs::kMissingPref));
510 }
511
512 TEST_F(PrefValueStoreTest, PrefValueInUserStore) {
513 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
514 prefs::kManagedPlatformPref));
515 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
516 prefs::kManagedCloudPref));
517 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
518 prefs::kExtensionPref));
519 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
520 prefs::kCommandLinePref));
521 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
522 prefs::kUserPref));
523 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(
524 prefs::kRecommendedPlatformPref));
525 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(
526 prefs::kRecommendedCloudPref));
527 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(
528 prefs::kDefaultPref));
529 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(
530 prefs::kMissingPref));
531 }
532
533 TEST_F(PrefValueStoreTest, PrefValueFromExtensionStore) {
534 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
535 prefs::kManagedPlatformPref));
536 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
537 prefs::kManagedCloudPref));
538 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore(
539 prefs::kExtensionPref));
540 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
541 prefs::kCommandLinePref));
542 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
543 prefs::kUserPref));
544 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
545 prefs::kRecommendedPlatformPref));
546 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
547 prefs::kRecommendedCloudPref));
421 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 548 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
422 prefs::kDefaultPref)); 549 prefs::kDefaultPref));
423
424 // Test a preference for which the PrefValueStore does not contain a value.
425 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
426 prefs::kMissingPref));
427 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 550 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
428 prefs::kMissingPref)); 551 prefs::kMissingPref));
429 } 552 }
430 553
431 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { 554 TEST_F(PrefValueStoreTest, PrefValueFromUserStore) {
432 // Test a managed platform preference.
433 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage));
434 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage));
435
436 // Test a device management preference.
437 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
438 prefs::kDefaultSearchProviderName));
439 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 555 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
440 prefs::kDefaultSearchProviderName)); 556 prefs::kManagedPlatformPref));
441
442 // Test an extension preference.
443 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
444 prefs::kCurrentThemeID));
445 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 557 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
446 prefs::kCurrentThemeID)); 558 prefs::kManagedCloudPref));
447
448 // Test a command-line preference.
449 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
450 prefs::kApplicationLocale));
451 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 559 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
452 prefs::kApplicationLocale)); 560 prefs::kExtensionPref));
453 561 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
454 // Test a user preference. 562 prefs::kCommandLinePref));
455 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
456 prefs::kStabilityLaunchCount));
457 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore( 563 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore(
458 prefs::kStabilityLaunchCount)); 564 prefs::kUserPref));
459
460 // Test a preference from the recommended pref store.
461 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(
462 prefs::kRecommendedPref));
463 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 565 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
464 prefs::kRecommendedPref)); 566 prefs::kRecommendedPlatformPref));
465 567 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
466 // Test a preference from the default pref store. 568 prefs::kRecommendedCloudPref));
467 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref)); 569 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
468 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref)); 570 prefs::kDefaultPref));
469 571 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
470 // Test a preference for which the PrefValueStore does not contain a value. 572 prefs::kMissingPref));
471 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref));
472 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref));
473 } 573 }
474 574
475 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { 575 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) {
476 // Test a managed platform preference. 576 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
477 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage)); 577 prefs::kManagedPlatformPref));
578 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
579 prefs::kManagedCloudPref));
580 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
581 prefs::kExtensionPref));
582 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
583 prefs::kCommandLinePref));
584 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
585 prefs::kUserPref));
586 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
587 prefs::kRecommendedPlatformPref));
588 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
589 prefs::kRecommendedCloudPref));
590 EXPECT_TRUE(pref_value_store_->PrefValueFromDefaultStore(
591 prefs::kDefaultPref));
592 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
593 prefs::kMissingPref));
594 }
478 595
479 // Test a device management preference. 596 TEST_F(PrefValueStoreTest, PrefValueUserModifiable) {
480 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 597 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable(
481 prefs::kDefaultSearchProviderName)); 598 prefs::kManagedPlatformPref));
482 599 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable(
483 // Test an extension preference. 600 prefs::kManagedCloudPref));
484 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 601 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable(
485 prefs::kCurrentThemeID)); 602 prefs::kExtensionPref));
486 603 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable(
487 // Test a command-line preference. 604 prefs::kCommandLinePref));
488 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 605 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable(
489 prefs::kApplicationLocale)); 606 prefs::kUserPref));
490 607 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable(
491 // Test a user preference. 608 prefs::kRecommendedPlatformPref));
492 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 609 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable(
493 prefs::kStabilityLaunchCount)); 610 prefs::kRecommendedCloudPref));
494 611 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable(
495 // Test a preference from the recommended pref store. 612 prefs::kDefaultPref));
496 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 613 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable(
497 prefs::kRecommendedPref)); 614 prefs::kMissingPref));
498
499 // Test a preference from the default pref store.
500 EXPECT_TRUE(
501 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref));
502
503 // Test a preference for which the PrefValueStore does not contain a value.
504 EXPECT_FALSE(
505 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref));
506 } 615 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/pref_value_store.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698