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

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

Issue 4876002: Create additional PrefStore for Device Management policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nits Created 10 years, 1 month 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) 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 "base/scoped_ptr.h" 5 #include "base/scoped_ptr.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "chrome/browser/browser_thread.h" 7 #include "chrome/browser/browser_thread.h"
8 #include "chrome/browser/policy/configuration_policy_pref_store.h" 8 #include "chrome/browser/policy/configuration_policy_pref_store.h"
9 #include "chrome/browser/prefs/dummy_pref_store.h" 9 #include "chrome/browser/prefs/dummy_pref_store.h"
10 #include "chrome/browser/prefs/pref_value_store.h" 10 #include "chrome/browser/prefs/pref_value_store.h"
(...skipping 18 matching lines...) Expand all
29 // Names of the preferences used in this test program. 29 // Names of the preferences used in this test program.
30 namespace prefs { 30 namespace prefs {
31 const char kMissingPref[] = "this.pref.does_not_exist"; 31 const char kMissingPref[] = "this.pref.does_not_exist";
32 const char kRecommendedPref[] = "this.pref.recommended_value_only"; 32 const char kRecommendedPref[] = "this.pref.recommended_value_only";
33 const char kSampleDict[] = "sample.dict"; 33 const char kSampleDict[] = "sample.dict";
34 const char kSampleList[] = "sample.list"; 34 const char kSampleList[] = "sample.list";
35 const char kDefaultPref[] = "default.pref"; 35 const char kDefaultPref[] = "default.pref";
36 } 36 }
37 37
38 // Potentially expected values of all preferences used in this test program. 38 // Potentially expected values of all preferences used in this test program.
39 namespace enforced_pref { 39 namespace managed_platform_pref {
40 const std::string kHomepageValue = "http://www.topeka.com"; 40 const std::string kHomepageValue = "http://www.topeka.com";
41 } 41 }
42 42
43 namespace device_management_pref {
44 const std::string kSearchProviderName = "Chromium";
Mattias Nissler (ping if slow) 2010/11/12 15:02:13 the idea of these tests is that this one should al
danno 2010/11/12 16:17:30 Done.
45 }
46
43 namespace extension_pref { 47 namespace extension_pref {
44 const char kCurrentThemeIDValue[] = "set by extension"; 48 const char kCurrentThemeIDValue[] = "set by extension";
45 const char kHomepageValue[] = "http://www.chromium.org"; 49 const char kHomepageValue[] = "http://www.chromium.org";
46 } 50 }
47 51
48 namespace command_line_pref { 52 namespace command_line_pref {
49 const char kApplicationLocaleValue[] = "hi-MOM"; 53 const char kApplicationLocaleValue[] = "hi-MOM";
50 const char kCurrentThemeIDValue[] = "zyxwvut"; 54 const char kCurrentThemeIDValue[] = "zyxwvut";
51 const char kHomepageValue[] = "http://www.ferretcentral.org"; 55 const char kHomepageValue[] = "http://www.ferretcentral.org";
52 } 56 }
(...skipping 15 matching lines...) Expand all
68 72
69 namespace default_pref { 73 namespace default_pref {
70 const int kDefaultValue = 7; 74 const int kDefaultValue = 7;
71 const char kHomepageValue[] = "default homepage"; 75 const char kHomepageValue[] = "default homepage";
72 } 76 }
73 77
74 class PrefValueStoreTest : public testing::Test { 78 class PrefValueStoreTest : public testing::Test {
75 protected: 79 protected:
76 virtual void SetUp() { 80 virtual void SetUp() {
77 // Create dummy user preferences. 81 // Create dummy user preferences.
78 enforced_prefs_= CreateEnforcedPrefs(); 82 managed_platform_prefs_= CreateManagedPlatformPrefs();
83 device_management_prefs_ = CreateDeviceManagementPrefs();
79 extension_prefs_ = CreateExtensionPrefs(); 84 extension_prefs_ = CreateExtensionPrefs();
80 command_line_prefs_ = CreateCommandLinePrefs(); 85 command_line_prefs_ = CreateCommandLinePrefs();
81 user_prefs_ = CreateUserPrefs(); 86 user_prefs_ = CreateUserPrefs();
82 recommended_prefs_ = CreateRecommendedPrefs(); 87 recommended_prefs_ = CreateRecommendedPrefs();
83 default_prefs_ = CreateDefaultPrefs(); 88 default_prefs_ = CreateDefaultPrefs();
84 89
90 std::sort(expected_differing_paths_.begin(),
91 expected_differing_paths_.end());
92
85 // Create |DummyPrefStore|s. 93 // Create |DummyPrefStore|s.
86 enforced_pref_store_ = new DummyPrefStore(); 94 managed_platform_pref_store_ = new DummyPrefStore();
87 enforced_pref_store_->set_prefs(enforced_prefs_); 95 managed_platform_pref_store_->set_prefs(managed_platform_prefs_);
96 device_management_pref_store_ = new DummyPrefStore();
97 device_management_pref_store_->set_prefs(device_management_prefs_);
88 extension_pref_store_ = new DummyPrefStore(); 98 extension_pref_store_ = new DummyPrefStore();
89 extension_pref_store_->set_prefs(extension_prefs_); 99 extension_pref_store_->set_prefs(extension_prefs_);
90 command_line_pref_store_ = new DummyPrefStore(); 100 command_line_pref_store_ = new DummyPrefStore();
91 command_line_pref_store_->set_prefs(command_line_prefs_); 101 command_line_pref_store_->set_prefs(command_line_prefs_);
92 user_pref_store_ = new DummyPrefStore(); 102 user_pref_store_ = new DummyPrefStore();
93 user_pref_store_->set_read_only(false); 103 user_pref_store_->set_read_only(false);
94 user_pref_store_->set_prefs(user_prefs_); 104 user_pref_store_->set_prefs(user_prefs_);
95 recommended_pref_store_ = new DummyPrefStore(); 105 recommended_pref_store_ = new DummyPrefStore();
96 recommended_pref_store_->set_prefs(recommended_prefs_); 106 recommended_pref_store_->set_prefs(recommended_prefs_);
97 default_pref_store_ = new DummyPrefStore(); 107 default_pref_store_ = new DummyPrefStore();
98 default_pref_store_->set_prefs(default_prefs_); 108 default_pref_store_->set_prefs(default_prefs_);
99 109
100 // Create a new pref-value-store. 110 // Create a new pref-value-store.
101 pref_value_store_ = new TestingPrefService::TestingPrefValueStore( 111 pref_value_store_ = new TestingPrefService::TestingPrefValueStore(
102 enforced_pref_store_, 112 managed_platform_pref_store_,
113 device_management_pref_store_,
103 extension_pref_store_, 114 extension_pref_store_,
104 command_line_pref_store_, 115 command_line_pref_store_,
105 user_pref_store_, 116 user_pref_store_,
106 recommended_pref_store_, 117 recommended_pref_store_,
107 default_pref_store_); 118 default_pref_store_);
108 119
109 // Register prefs with the PrefValueStore. 120 // Register prefs with the PrefValueStore.
110 pref_value_store_->RegisterPreferenceType(prefs::kApplicationLocale, 121 pref_value_store_->RegisterPreferenceType(prefs::kApplicationLocale,
111 Value::TYPE_STRING); 122 Value::TYPE_STRING);
112 pref_value_store_->RegisterPreferenceType(prefs::kCurrentThemeID, 123 pref_value_store_->RegisterPreferenceType(prefs::kCurrentThemeID,
113 Value::TYPE_STRING); 124 Value::TYPE_STRING);
125 pref_value_store_->RegisterPreferenceType(
126 prefs::kDefaultSearchProviderName,
127 Value::TYPE_STRING);
114 pref_value_store_->RegisterPreferenceType(prefs::kDeleteCache, 128 pref_value_store_->RegisterPreferenceType(prefs::kDeleteCache,
115 Value::TYPE_BOOLEAN); 129 Value::TYPE_BOOLEAN);
116 pref_value_store_->RegisterPreferenceType(prefs::kHomePage, 130 pref_value_store_->RegisterPreferenceType(prefs::kHomePage,
117 Value::TYPE_STRING); 131 Value::TYPE_STRING);
118 pref_value_store_->RegisterPreferenceType(prefs::kStabilityLaunchCount, 132 pref_value_store_->RegisterPreferenceType(prefs::kStabilityLaunchCount,
119 Value::TYPE_INTEGER); 133 Value::TYPE_INTEGER);
120 pref_value_store_->RegisterPreferenceType(prefs::kRecommendedPref, 134 pref_value_store_->RegisterPreferenceType(prefs::kRecommendedPref,
121 Value::TYPE_BOOLEAN); 135 Value::TYPE_BOOLEAN);
122 pref_value_store_->RegisterPreferenceType(prefs::kSampleDict, 136 pref_value_store_->RegisterPreferenceType(prefs::kSampleDict,
123 Value::TYPE_DICTIONARY); 137 Value::TYPE_DICTIONARY);
(...skipping 16 matching lines...) Expand all
140 user_prefs->SetInteger(prefs::kStabilityLaunchCount, 154 user_prefs->SetInteger(prefs::kStabilityLaunchCount,
141 user_pref::kStabilityLaunchCountValue); 155 user_pref::kStabilityLaunchCountValue);
142 user_prefs->SetString(prefs::kCurrentThemeID, 156 user_prefs->SetString(prefs::kCurrentThemeID,
143 user_pref::kCurrentThemeIDValue); 157 user_pref::kCurrentThemeIDValue);
144 user_prefs->SetString(prefs::kApplicationLocale, 158 user_prefs->SetString(prefs::kApplicationLocale,
145 user_pref::kApplicationLocaleValue); 159 user_pref::kApplicationLocaleValue);
146 user_prefs->SetString(prefs::kHomePage, user_pref::kHomepageValue); 160 user_prefs->SetString(prefs::kHomePage, user_pref::kHomepageValue);
147 return user_prefs; 161 return user_prefs;
148 } 162 }
149 163
150 DictionaryValue* CreateEnforcedPrefs() { 164 DictionaryValue* CreateManagedPlatformPrefs() {
151 DictionaryValue* enforced_prefs = new DictionaryValue(); 165 DictionaryValue* managed_platform_prefs = new DictionaryValue();
152 enforced_prefs->SetString(prefs::kHomePage, enforced_pref::kHomepageValue); 166 managed_platform_prefs->SetString(
167 prefs::kHomePage,
168 managed_platform_pref::kHomepageValue);
153 expected_differing_paths_.push_back(prefs::kHomePage); 169 expected_differing_paths_.push_back(prefs::kHomePage);
154 return enforced_prefs; 170 return managed_platform_prefs;
171 }
172
173 DictionaryValue* CreateDeviceManagementPrefs() {
174 DictionaryValue* device_management_prefs = new DictionaryValue();
175 device_management_prefs->SetString(
176 prefs::kDefaultSearchProviderName,
177 device_management_pref::kSearchProviderName);
178 expected_differing_paths_.push_back("default_search_provider");
179 expected_differing_paths_.push_back(prefs::kDefaultSearchProviderName);
180 return device_management_prefs;
155 } 181 }
156 182
157 DictionaryValue* CreateExtensionPrefs() { 183 DictionaryValue* CreateExtensionPrefs() {
158 DictionaryValue* extension_prefs = new DictionaryValue(); 184 DictionaryValue* extension_prefs = new DictionaryValue();
159 extension_prefs->SetString(prefs::kCurrentThemeID, 185 extension_prefs->SetString(prefs::kCurrentThemeID,
160 extension_pref::kCurrentThemeIDValue); 186 extension_pref::kCurrentThemeIDValue);
161 extension_prefs->SetString(prefs::kHomePage, 187 extension_prefs->SetString(prefs::kHomePage,
162 extension_pref::kHomepageValue); 188 extension_pref::kHomepageValue);
163 return extension_prefs; 189 return extension_prefs;
164 } 190 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 244
219 virtual void TearDown() { 245 virtual void TearDown() {
220 loop_.RunAllPending(); 246 loop_.RunAllPending();
221 } 247 }
222 248
223 MessageLoop loop_; 249 MessageLoop loop_;
224 250
225 scoped_refptr<TestingPrefService::TestingPrefValueStore> pref_value_store_; 251 scoped_refptr<TestingPrefService::TestingPrefValueStore> pref_value_store_;
226 252
227 // |PrefStore|s are owned by the |PrefValueStore|. 253 // |PrefStore|s are owned by the |PrefValueStore|.
228 DummyPrefStore* enforced_pref_store_; 254 DummyPrefStore* managed_platform_pref_store_;
255 DummyPrefStore* device_management_pref_store_;
229 DummyPrefStore* extension_pref_store_; 256 DummyPrefStore* extension_pref_store_;
230 DummyPrefStore* command_line_pref_store_; 257 DummyPrefStore* command_line_pref_store_;
231 DummyPrefStore* user_pref_store_; 258 DummyPrefStore* user_pref_store_;
232 DummyPrefStore* recommended_pref_store_; 259 DummyPrefStore* recommended_pref_store_;
233 DummyPrefStore* default_pref_store_; 260 DummyPrefStore* default_pref_store_;
234 261
235 // A vector of the preferences paths in the managed and recommended 262 // A vector of the preferences paths in the managed and recommended
236 // PrefStores that are set at the beginning of a test. Can be modified 263 // PrefStores that are set at the beginning of a test. Can be modified
237 // by the test to track changes that it makes to the preferences 264 // by the test to track changes that it makes to the preferences
238 // stored in the managed and recommended PrefStores. 265 // stored in the managed and recommended PrefStores.
239 std::vector<std::string> expected_differing_paths_; 266 std::vector<std::string> expected_differing_paths_;
240 267
241 // Preferences are owned by the individual |DummyPrefStores|. 268 // Preferences are owned by the individual |DummyPrefStores|.
242 DictionaryValue* enforced_prefs_; 269 DictionaryValue* managed_platform_prefs_;
270 DictionaryValue* device_management_prefs_;
243 DictionaryValue* extension_prefs_; 271 DictionaryValue* extension_prefs_;
244 DictionaryValue* command_line_prefs_; 272 DictionaryValue* command_line_prefs_;
245 DictionaryValue* user_prefs_; 273 DictionaryValue* user_prefs_;
246 DictionaryValue* recommended_prefs_; 274 DictionaryValue* recommended_prefs_;
247 DictionaryValue* default_prefs_; 275 DictionaryValue* default_prefs_;
248 276
249 private: 277 private:
250 scoped_ptr<BrowserThread> ui_thread_; 278 scoped_ptr<BrowserThread> ui_thread_;
251 scoped_ptr<BrowserThread> file_thread_; 279 scoped_ptr<BrowserThread> file_thread_;
252 }; 280 };
253 281
254 TEST_F(PrefValueStoreTest, IsReadOnly) { 282 TEST_F(PrefValueStoreTest, IsReadOnly) {
255 enforced_pref_store_->set_read_only(true); 283 managed_platform_pref_store_->set_read_only(true);
256 extension_pref_store_->set_read_only(true); 284 extension_pref_store_->set_read_only(true);
257 command_line_pref_store_->set_read_only(true); 285 command_line_pref_store_->set_read_only(true);
258 user_pref_store_->set_read_only(true); 286 user_pref_store_->set_read_only(true);
259 recommended_pref_store_->set_read_only(true); 287 recommended_pref_store_->set_read_only(true);
260 default_pref_store_->set_read_only(true); 288 default_pref_store_->set_read_only(true);
261 EXPECT_TRUE(pref_value_store_->ReadOnly()); 289 EXPECT_TRUE(pref_value_store_->ReadOnly());
262 290
263 user_pref_store_->set_read_only(false); 291 user_pref_store_->set_read_only(false);
264 EXPECT_FALSE(pref_value_store_->ReadOnly()); 292 EXPECT_FALSE(pref_value_store_->ReadOnly());
265 } 293 }
266 294
267 TEST_F(PrefValueStoreTest, GetValue) { 295 TEST_F(PrefValueStoreTest, GetValue) {
268 Value* value; 296 Value* value;
269 297
270 // Test getting an enforced value overwriting a user-defined and 298 // Test getting a managed_platform value overwriting a user-defined and
271 // extension-defined value. 299 // extension-defined value.
272 value = NULL; 300 value = NULL;
273 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value)); 301 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value));
274 std::string actual_str_value; 302 std::string actual_str_value;
275 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 303 EXPECT_TRUE(value->GetAsString(&actual_str_value));
276 EXPECT_EQ(enforced_pref::kHomepageValue, actual_str_value); 304 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value);
Mattias Nissler (ping if slow) 2010/11/12 15:02:13 Here you should insert a test case that tests the
danno 2010/11/12 16:17:30 Done.
277 305
278 // Test getting an extension value overwriting a user-defined and 306 // Test getting an extension value overwriting a user-defined and
279 // command-line-defined value. 307 // command-line-defined value.
280 value = NULL; 308 value = NULL;
281 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, &value)); 309 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, &value));
282 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 310 EXPECT_TRUE(value->GetAsString(&actual_str_value));
283 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value); 311 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value);
284 312
285 // Test getting a command-line value overwriting a user-defined value. 313 // Test getting a command-line value overwriting a user-defined value.
286 value = NULL; 314 value = NULL;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 Value* value = NULL; 362 Value* value = NULL;
335 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount, 363 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount,
336 &value)); 364 &value));
337 ASSERT_TRUE(value != NULL); 365 ASSERT_TRUE(value != NULL);
338 ASSERT_EQ(Value::TYPE_INTEGER, value->GetType()); 366 ASSERT_EQ(Value::TYPE_INTEGER, value->GetType());
339 int actual_int_value = -1; 367 int actual_int_value = -1;
340 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); 368 EXPECT_TRUE(value->GetAsInteger(&actual_int_value));
341 EXPECT_EQ(recommended_pref::kStabilityLaunchCountValue, actual_int_value); 369 EXPECT_EQ(recommended_pref::kStabilityLaunchCountValue, actual_int_value);
342 370
343 // Check falling back multiple times, to a default string. 371 // Check falling back multiple times, to a default string.
344 enforced_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1); 372 managed_platform_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1);
373 device_management_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1);
345 extension_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1); 374 extension_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1);
346 command_line_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1); 375 command_line_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1);
347 user_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1); 376 user_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1);
348 recommended_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1); 377 recommended_pref_store_->prefs()->SetInteger(prefs::kHomePage, 1);
349 default_pref_store_->prefs()->SetString(prefs::kHomePage, 378 default_pref_store_->prefs()->SetString(prefs::kHomePage,
350 default_pref::kHomepageValue); 379 default_pref::kHomepageValue);
351 380
352 value = NULL; 381 value = NULL;
353 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value)); 382 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &value));
354 ASSERT_TRUE(value != NULL); 383 ASSERT_TRUE(value != NULL);
355 ASSERT_EQ(Value::TYPE_STRING, value->GetType()); 384 ASSERT_EQ(Value::TYPE_STRING, value->GetType());
356 std::string actual_str_value; 385 std::string actual_str_value;
357 EXPECT_TRUE(value->GetAsString(&actual_str_value)); 386 EXPECT_TRUE(value->GetAsString(&actual_str_value));
358 EXPECT_EQ(default_pref::kHomepageValue, actual_str_value); 387 EXPECT_EQ(default_pref::kHomepageValue, actual_str_value);
359 } 388 }
360 389
361 TEST_F(PrefValueStoreTest, HasPrefPath) { 390 TEST_F(PrefValueStoreTest, HasPrefPath) {
362 // Enforced preference 391 // Managed_Platform preference
363 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); 392 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
393 // Device management preference
394 EXPECT_TRUE(pref_value_store_->HasPrefPath(
395 prefs::kDefaultSearchProviderName));
396 // Extension preference
397 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
364 // User preference 398 // User preference
365 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kDeleteCache)); 399 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kDeleteCache));
366 // Recommended preference 400 // Recommended preference
367 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); 401 EXPECT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
368 // Default preference 402 // Default preference
369 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); 403 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
370 // Unknown preference 404 // Unknown preference
371 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); 405 EXPECT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
372 } 406 }
373 407
374 TEST_F(PrefValueStoreTest, PrefHasChanged) { 408 TEST_F(PrefValueStoreTest, PrefHasChanged) {
375 // Setup. 409 // Setup.
376 const char managed_pref_path[] = "managed_pref"; 410 const char managed_platform_pref_path[] = "managed_platform_pref";
377 pref_value_store_->RegisterPreferenceType(managed_pref_path, 411 pref_value_store_->RegisterPreferenceType(managed_platform_pref_path,
378 Value::TYPE_STRING); 412 Value::TYPE_STRING);
379 enforced_pref_store_->prefs()->SetString(managed_pref_path, "managed value"); 413 managed_platform_pref_store_->prefs()->SetString(managed_platform_pref_path,
414 "managed value");
380 const char user_pref_path[] = "user_pref"; 415 const char user_pref_path[] = "user_pref";
381 pref_value_store_->RegisterPreferenceType(user_pref_path, Value::TYPE_STRING); 416 pref_value_store_->RegisterPreferenceType(user_pref_path, Value::TYPE_STRING);
382 user_pref_store_->prefs()->SetString(user_pref_path, "user value"); 417 user_pref_store_->prefs()->SetString(user_pref_path, "user value");
383 const char default_pref_path[] = "default_pref"; 418 const char default_pref_path[] = "default_pref";
384 pref_value_store_->RegisterPreferenceType(default_pref_path, 419 pref_value_store_->RegisterPreferenceType(default_pref_path,
385 Value::TYPE_STRING); 420 Value::TYPE_STRING);
386 default_pref_store_->prefs()->SetString(default_pref_path, "default value"); 421 default_pref_store_->prefs()->SetString(default_pref_path, "default value");
387 422
388 // Check pref controlled by highest-priority store. 423 // Check pref controlled by highest-priority store.
389 EXPECT_TRUE(pref_value_store_->PrefHasChanged(managed_pref_path, 424 EXPECT_TRUE(pref_value_store_->PrefHasChanged(managed_platform_pref_path,
390 static_cast<PrefNotifier::PrefStoreType>(0))); 425 static_cast<PrefNotifier::PrefStoreType>(0)));
391 EXPECT_FALSE(pref_value_store_->PrefHasChanged(managed_pref_path, 426 EXPECT_FALSE(pref_value_store_->PrefHasChanged(managed_platform_pref_path,
392 PrefNotifier::USER_STORE)); 427 PrefNotifier::USER_STORE));
393 428
394 // Check pref controlled by user store. 429 // Check pref controlled by user store.
395 EXPECT_TRUE(pref_value_store_->PrefHasChanged(user_pref_path, 430 EXPECT_TRUE(pref_value_store_->PrefHasChanged(user_pref_path,
396 static_cast<PrefNotifier::PrefStoreType>(0))); 431 static_cast<PrefNotifier::PrefStoreType>(0)));
397 EXPECT_TRUE(pref_value_store_->PrefHasChanged(user_pref_path, 432 EXPECT_TRUE(pref_value_store_->PrefHasChanged(user_pref_path,
398 PrefNotifier::USER_STORE)); 433 PrefNotifier::USER_STORE));
399 EXPECT_FALSE(pref_value_store_->PrefHasChanged(user_pref_path, 434 EXPECT_FALSE(pref_value_store_->PrefHasChanged(user_pref_path,
400 PrefNotifier::PREF_STORE_TYPE_MAX)); 435 PrefNotifier::PREF_STORE_TYPE_MAX));
401 436
(...skipping 16 matching lines...) Expand all
418 TEST_F(PrefValueStoreTest, WritePrefs) { 453 TEST_F(PrefValueStoreTest, WritePrefs) {
419 user_pref_store_->set_prefs_written(false); 454 user_pref_store_->set_prefs_written(false);
420 pref_value_store_->WritePrefs(); 455 pref_value_store_->WritePrefs();
421 ASSERT_TRUE(user_pref_store_->get_prefs_written()); 456 ASSERT_TRUE(user_pref_store_->get_prefs_written());
422 } 457 }
423 458
424 TEST_F(PrefValueStoreTest, SetUserPrefValue) { 459 TEST_F(PrefValueStoreTest, SetUserPrefValue) {
425 Value* new_value = NULL; 460 Value* new_value = NULL;
426 Value* actual_value = NULL; 461 Value* actual_value = NULL;
427 462
428 // Test that enforced values can not be set. 463 // Test that managed_platform values can not be set.
429 ASSERT_TRUE(pref_value_store_->PrefValueInManagedStore(prefs::kHomePage)); 464 ASSERT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore(
465 prefs::kHomePage));
430 // The Ownership is tranfered to |PrefValueStore|. 466 // The Ownership is tranfered to |PrefValueStore|.
431 new_value = Value::CreateStringValue("http://www.youtube.com"); 467 new_value = Value::CreateStringValue("http://www.youtube.com");
432 pref_value_store_->SetUserPrefValue(prefs::kHomePage, new_value); 468 pref_value_store_->SetUserPrefValue(prefs::kHomePage, new_value);
433 469
434 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &actual_value)); 470 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, &actual_value));
435 std::string value_str; 471 std::string value_str;
436 actual_value->GetAsString(&value_str); 472 actual_value->GetAsString(&value_str);
437 ASSERT_EQ(enforced_pref::kHomepageValue, value_str); 473 ASSERT_EQ(managed_platform_pref::kHomepageValue, value_str);
438 474
439 // User preferences values can be set 475 // User preferences values can be set
440 ASSERT_FALSE(pref_value_store_->PrefValueInManagedStore( 476 ASSERT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
441 prefs::kStabilityLaunchCount)); 477 prefs::kStabilityLaunchCount));
442 actual_value = NULL; 478 actual_value = NULL;
443 pref_value_store_->GetValue(prefs::kStabilityLaunchCount, &actual_value); 479 pref_value_store_->GetValue(prefs::kStabilityLaunchCount, &actual_value);
444 int int_value; 480 int int_value;
445 EXPECT_TRUE(actual_value->GetAsInteger(&int_value)); 481 EXPECT_TRUE(actual_value->GetAsInteger(&int_value));
446 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, int_value); 482 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, int_value);
447 483
448 new_value = Value::CreateIntegerValue(1); 484 new_value = Value::CreateIntegerValue(1);
449 pref_value_store_->SetUserPrefValue(prefs::kStabilityLaunchCount, new_value); 485 pref_value_store_->SetUserPrefValue(prefs::kStabilityLaunchCount, new_value);
450 actual_value = NULL; 486 actual_value = NULL;
(...skipping 16 matching lines...) Expand all
467 pref_value_store_->SetUserPrefValue(prefs::kSampleList, expected_list_value); 503 pref_value_store_->SetUserPrefValue(prefs::kSampleList, expected_list_value);
468 504
469 actual_value = NULL; 505 actual_value = NULL;
470 key = prefs::kSampleList; 506 key = prefs::kSampleList;
471 pref_value_store_->GetValue(key, &actual_value); 507 pref_value_store_->GetValue(key, &actual_value);
472 508
473 ASSERT_EQ(expected_list_value, actual_value); 509 ASSERT_EQ(expected_list_value, actual_value);
474 ASSERT_TRUE(expected_list_value->Equals(actual_value)); 510 ASSERT_TRUE(expected_list_value->Equals(actual_value));
475 } 511 }
476 512
477 TEST_F(PrefValueStoreTest, PrefValueInManagedStore) { 513 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) {
478 // Test an enforced preference. 514 // Test a managed platform preference.
479 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); 515 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
480 EXPECT_TRUE(pref_value_store_->PrefValueInManagedStore(prefs::kHomePage)); 516 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore(
517 prefs::kHomePage));
518
519 // Test a device management preference.
520 ASSERT_TRUE(pref_value_store_->HasPrefPath(
521 prefs::kDefaultSearchProviderName));
522 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore(
523 prefs::kDefaultSearchProviderName));
481 524
482 // Test an extension preference. 525 // Test an extension preference.
483 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); 526 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
484 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( 527 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
485 prefs::kCurrentThemeID)); 528 prefs::kCurrentThemeID));
486 529
487 // Test a command-line preference. 530 // Test a command-line preference.
488 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); 531 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
489 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( 532 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
490 prefs::kApplicationLocale)); 533 prefs::kApplicationLocale));
491 534
492 // Test a user preference. 535 // Test a user preference.
493 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount)); 536 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kStabilityLaunchCount));
494 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( 537 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
495 prefs::kStabilityLaunchCount)); 538 prefs::kStabilityLaunchCount));
496 539
497 // Test a preference from the recommended pref store. 540 // Test a preference from the recommended pref store.
498 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); 541 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref));
499 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( 542 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
500 prefs::kRecommendedPref)); 543 prefs::kRecommendedPref));
501 544
502 // Test a preference from the default pref store. 545 // Test a preference from the default pref store.
503 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); 546 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
504 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( 547 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
505 prefs::kDefaultPref)); 548 prefs::kDefaultPref));
506 549
507 // Test a preference for which the PrefValueStore does not contain a value. 550 // Test a preference for which the PrefValueStore does not contain a value.
508 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); 551 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
509 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(prefs::kMissingPref)); 552 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore(
553 prefs::kMissingPref));
510 } 554 }
511 555
512 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { 556 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) {
513 // Test an enforced preference. 557 // Test a managed platform preference.
514 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); 558 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
515 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage)); 559 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage));
516 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( 560 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
517 prefs::kHomePage)); 561 prefs::kHomePage));
518 562
563 // Test a device management preference.
564 ASSERT_TRUE(pref_value_store_->HasPrefPath(
565 prefs::kDefaultSearchProviderName));
566 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
567 prefs::kDefaultSearchProviderName));
568 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(
569 prefs::kDefaultSearchProviderName));
570
519 // Test an extension preference. 571 // Test an extension preference.
520 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); 572 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
521 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( 573 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(
522 prefs::kCurrentThemeID)); 574 prefs::kCurrentThemeID));
523 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( 575 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore(
524 prefs::kCurrentThemeID)); 576 prefs::kCurrentThemeID));
525 577
526 // Test a command-line preference. 578 // Test a command-line preference.
527 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); 579 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
528 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( 580 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 } 612 }
561 613
562 TEST_F(PrefValueStoreTest, DetectProxyConfigurationConflict) { 614 TEST_F(PrefValueStoreTest, DetectProxyConfigurationConflict) {
563 // There should be no conflicting proxy prefs in the default 615 // There should be no conflicting proxy prefs in the default
564 // preference stores created for the test. 616 // preference stores created for the test.
565 ASSERT_FALSE(pref_value_store_->HasPolicyConflictingUserProxySettings()); 617 ASSERT_FALSE(pref_value_store_->HasPolicyConflictingUserProxySettings());
566 618
567 // Create conflicting proxy settings in the managed and command-line 619 // Create conflicting proxy settings in the managed and command-line
568 // preference stores. 620 // preference stores.
569 command_line_prefs_->SetBoolean(prefs::kProxyAutoDetect, false); 621 command_line_prefs_->SetBoolean(prefs::kProxyAutoDetect, false);
570 enforced_prefs_->SetBoolean(prefs::kProxyAutoDetect, true); 622 managed_platform_prefs_->SetBoolean(prefs::kProxyAutoDetect, true);
571 ASSERT_TRUE(pref_value_store_->HasPolicyConflictingUserProxySettings()); 623 ASSERT_TRUE(pref_value_store_->HasPolicyConflictingUserProxySettings());
572 } 624 }
573 625
574 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { 626 TEST_F(PrefValueStoreTest, PrefValueInUserStore) {
575 // Test an enforced preference. 627 // Test a managed platform preference.
576 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); 628 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
577 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage)); 629 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage));
578 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage)); 630 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage));
579 631
632 // Test a device management preference.
633 ASSERT_TRUE(pref_value_store_->HasPrefPath(
634 prefs::kDefaultSearchProviderName));
635 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(
Mattias Nissler (ping if slow) 2010/11/12 15:02:13 should be PrefValueInUserStore
danno 2010/11/12 16:17:30 Done.
636 prefs::kDefaultSearchProviderName));
637 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
638 prefs::kDefaultSearchProviderName));
639
580 // Test an extension preference. 640 // Test an extension preference.
581 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); 641 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
582 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( 642 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
583 prefs::kCurrentThemeID)); 643 prefs::kCurrentThemeID));
584 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( 644 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(
585 prefs::kCurrentThemeID)); 645 prefs::kCurrentThemeID));
586 646
587 // Test a command-line preference. 647 // Test a command-line preference.
588 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); 648 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
589 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( 649 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(
(...skipping 20 matching lines...) Expand all
610 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref)); 670 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref));
611 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref)); 671 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref));
612 672
613 // Test a preference for which the PrefValueStore does not contain a value. 673 // Test a preference for which the PrefValueStore does not contain a value.
614 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); 674 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
615 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref)); 675 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref));
616 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref)); 676 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref));
617 } 677 }
618 678
619 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { 679 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) {
620 // Test an enforced preference. 680 // Test a managed platform preference.
621 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage)); 681 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomePage));
622 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage)); 682 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage));
623 683
684 // Test a device management preference.
685 ASSERT_TRUE(pref_value_store_->HasPrefPath(
686 prefs::kDefaultSearchProviderName));
687 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
688 prefs::kDefaultSearchProviderName));
689
624 // Test an extension preference. 690 // Test an extension preference.
625 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); 691 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID));
626 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 692 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
627 prefs::kCurrentThemeID)); 693 prefs::kCurrentThemeID));
628 694
629 // Test a command-line preference. 695 // Test a command-line preference.
630 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale)); 696 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kApplicationLocale));
631 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( 697 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(
632 prefs::kApplicationLocale)); 698 prefs::kApplicationLocale));
633 699
(...skipping 11 matching lines...) Expand all
645 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref)); 711 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kDefaultPref));
646 EXPECT_TRUE( 712 EXPECT_TRUE(
647 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref)); 713 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref));
648 714
649 // Test a preference for which the PrefValueStore does not contain a value. 715 // Test a preference for which the PrefValueStore does not contain a value.
650 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); 716 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref));
651 EXPECT_FALSE( 717 EXPECT_FALSE(
652 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); 718 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref));
653 } 719 }
654 720
721 // Ensure that
Mattias Nissler (ping if slow) 2010/11/12 15:02:13 Ensure what?
danno 2010/11/12 16:17:30 Done.
722 TEST_F(PrefValueStoreTest, TestPlatformTrumpsDeviceManagementPolicy) {
Mattias Nissler (ping if slow) 2010/11/12 15:02:13 I believe this test would be covered by the missin
danno 2010/11/12 16:17:30 Done.
723 // Test a preference for which the PrefValueStore does not contain a value.
724 ASSERT_FALSE(pref_value_store_->HasPrefPath(
725 prefs::kDefaultSearchProviderName));
726 EXPECT_FALSE(pref_value_store_->PrefValueInDeviceManagementStore(
727 prefs::kMissingPref));
728
729 Value* value = NULL;
730 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName,
731 &value));
732 std::string str_value;
733 EXPECT_TRUE(value->GetAsString(&str_value));
734 EXPECT_EQ(device_management_pref::kSearchProviderName, str_value);
735
736 managed_platform_prefs_->SetString(prefs::kDefaultSearchProviderName,
737 "override value");
738 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName,
739 &value));
740 EXPECT_TRUE(value->GetAsString(&str_value));
741 EXPECT_EQ("override value", str_value);
742 }
743
655 TEST_F(PrefValueStoreTest, TestPolicyRefresh) { 744 TEST_F(PrefValueStoreTest, TestPolicyRefresh) {
656 // pref_value_store_ is initialized by PrefValueStoreTest to have values 745 // pref_value_store_ is initialized by PrefValueStoreTest to have values in
657 // in both it's managed and recommended store. By replacing them with 746 // the managed platform, device management and recommended stores. By
658 // dummy stores, all of the paths of the prefs originally managed and 747 // replacing them with dummy stores, all of the paths of the prefs originally
659 // recommended stores should change. 748 // in the managed platform, device management and recommended stores should
749 // change.
660 MockPolicyRefreshCallback callback; 750 MockPolicyRefreshCallback callback;
661 EXPECT_CALL(callback, DoCallback(_)).Times(0); 751 EXPECT_CALL(callback, DoCallback(_)).Times(0);
662 BrowserThread::PostTask( 752 BrowserThread::PostTask(
663 BrowserThread::UI, FROM_HERE, 753 BrowserThread::UI, FROM_HERE,
664 NewRunnableMethod( 754 NewRunnableMethod(
665 pref_value_store_.get(), 755 pref_value_store_.get(),
666 &PrefValueStore::RefreshPolicyPrefs, 756 &PrefValueStore::RefreshPolicyPrefs,
667 NewCallback(&callback, 757 NewCallback(&callback,
668 &MockPolicyRefreshCallback::DoCallback))); 758 &MockPolicyRefreshCallback::DoCallback)));
669 Mock::VerifyAndClearExpectations(&callback); 759 Mock::VerifyAndClearExpectations(&callback);
670 EXPECT_CALL(callback, DoCallback(expected_differing_paths_)).Times(1); 760 EXPECT_CALL(callback, DoCallback(expected_differing_paths_)).Times(1);
671 loop_.RunAllPending(); 761 loop_.RunAllPending();
672 } 762 }
673 763
674 TEST_F(PrefValueStoreTest, TestRefreshPolicyPrefsCompletion) { 764 TEST_F(PrefValueStoreTest, TestRefreshPolicyPrefsCompletion) {
675 // Test changed preferences in managed store and removed 765 // Test changed preferences in the managed platform store and removed
676 // preferences in the recommended store. In addition 766 // preferences in the recommended store. In addition to "homepage", the other
677 // to "homepage", the other prefs that are set by default in 767 // prefs that are set by default in the test class are removed by the
678 // the test class are removed by the DummyStore 768 // DummyStore.
679 scoped_ptr<DummyPrefStore> new_managed_store(new DummyPrefStore()); 769 scoped_ptr<DummyPrefStore> new_managed_platform_store(new DummyPrefStore());
680 DictionaryValue* dict = new DictionaryValue(); 770 DictionaryValue* dict = new DictionaryValue();
681 dict->SetString("homepage", "some other changed homepage"); 771 dict->SetString("homepage", "some other changed homepage");
682 new_managed_store->set_prefs(dict); 772 new_managed_platform_store->set_prefs(dict);
683 MockPolicyRefreshCallback callback; 773 MockPolicyRefreshCallback callback;
684 EXPECT_CALL(callback, DoCallback(expected_differing_paths_)).Times(1); 774 EXPECT_CALL(callback, DoCallback(expected_differing_paths_)).Times(1);
685 pref_value_store_->RefreshPolicyPrefsCompletion( 775 pref_value_store_->RefreshPolicyPrefsCompletion(
686 new_managed_store.release(), 776 new_managed_platform_store.release(),
777 new DummyPrefStore(),
687 new DummyPrefStore(), 778 new DummyPrefStore(),
688 NewCallback(&callback, 779 NewCallback(&callback,
689 &MockPolicyRefreshCallback::DoCallback)); 780 &MockPolicyRefreshCallback::DoCallback));
690 781
691 // Test properties that have been removed from the managed store. 782 // Test properties that have been removed from the managed platform store.
692 // Homepage is still set in managed prefs. 783 // Homepage is still set in managed prefs.
693 expected_differing_paths_.clear(); 784 expected_differing_paths_.clear();
694 expected_differing_paths_.push_back(std::string("homepage")); 785 expected_differing_paths_.push_back(std::string("homepage"));
695 MockPolicyRefreshCallback callback2; 786 MockPolicyRefreshCallback callback2;
696 EXPECT_CALL(callback2, DoCallback(expected_differing_paths_)).Times(1); 787 EXPECT_CALL(callback2, DoCallback(expected_differing_paths_)).Times(1);
697 pref_value_store_->RefreshPolicyPrefsCompletion( 788 pref_value_store_->RefreshPolicyPrefsCompletion(
698 new DummyPrefStore(), 789 new DummyPrefStore(),
699 new DummyPrefStore(), 790 new DummyPrefStore(),
791 new DummyPrefStore(),
700 NewCallback(&callback2, 792 NewCallback(&callback2,
701 &MockPolicyRefreshCallback::DoCallback)); 793 &MockPolicyRefreshCallback::DoCallback));
702 794
795 // Test properties that are added to the device management store.
796 expected_differing_paths_.clear();
797 expected_differing_paths_.push_back(std::string("homepage"));
798 scoped_ptr<DummyPrefStore> new_device_management_store(
799 new DummyPrefStore());
800 dict = new DictionaryValue();
801 dict->SetString("homepage", "some other changed homepage");
802 new_device_management_store->set_prefs(dict);
803 MockPolicyRefreshCallback callback3;
804 EXPECT_CALL(callback3, DoCallback(expected_differing_paths_)).Times(1);
805 pref_value_store_->RefreshPolicyPrefsCompletion(
806 new DummyPrefStore(),
807 new_device_management_store.release(),
808 new DummyPrefStore(),
809 NewCallback(&callback3,
810 &MockPolicyRefreshCallback::DoCallback));
811
703 // Test properties that are added to the recommended store. 812 // Test properties that are added to the recommended store.
704 scoped_ptr<DummyPrefStore> new_recommended_store(new DummyPrefStore()); 813 scoped_ptr<DummyPrefStore> new_recommended_store(new DummyPrefStore());
705 dict = new DictionaryValue(); 814 dict = new DictionaryValue();
706 dict->SetString("homepage", "some other changed homepage 2"); 815 dict->SetString("homepage", "some other changed homepage 2");
707 new_recommended_store->set_prefs(dict); 816 new_recommended_store->set_prefs(dict);
708 expected_differing_paths_.clear(); 817 expected_differing_paths_.clear();
709 expected_differing_paths_.push_back(std::string("homepage")); 818 expected_differing_paths_.push_back(std::string("homepage"));
710 MockPolicyRefreshCallback callback3; 819 MockPolicyRefreshCallback callback4;
711 EXPECT_CALL(callback3, DoCallback(expected_differing_paths_)).Times(1); 820 EXPECT_CALL(callback4, DoCallback(expected_differing_paths_)).Times(1);
712 pref_value_store_->RefreshPolicyPrefsCompletion( 821 pref_value_store_->RefreshPolicyPrefsCompletion(
713 new DummyPrefStore(), 822 new DummyPrefStore(),
823 new DummyPrefStore(),
714 new_recommended_store.release(), 824 new_recommended_store.release(),
715 NewCallback(&callback3, 825 NewCallback(&callback4,
716 &MockPolicyRefreshCallback::DoCallback)); 826 &MockPolicyRefreshCallback::DoCallback));
717 827
718 // Test adding a multi-key path. 828 // Test adding a multi-key path.
719 new_managed_store.reset(new DummyPrefStore()); 829 new_managed_platform_store.reset(new DummyPrefStore());
720 dict = new DictionaryValue(); 830 dict = new DictionaryValue();
721 dict->SetString("segment1.segment2", "value"); 831 dict->SetString("segment1.segment2", "value");
722 new_managed_store->set_prefs(dict); 832 new_managed_platform_store->set_prefs(dict);
723 expected_differing_paths_.clear(); 833 expected_differing_paths_.clear();
724 expected_differing_paths_.push_back(std::string("homepage")); 834 expected_differing_paths_.push_back(std::string("homepage"));
725 expected_differing_paths_.push_back(std::string("segment1")); 835 expected_differing_paths_.push_back(std::string("segment1"));
726 expected_differing_paths_.push_back(std::string("segment1.segment2")); 836 expected_differing_paths_.push_back(std::string("segment1.segment2"));
727 MockPolicyRefreshCallback callback4; 837 MockPolicyRefreshCallback callback5;
728 EXPECT_CALL(callback4, DoCallback(expected_differing_paths_)).Times(1); 838 EXPECT_CALL(callback5, DoCallback(expected_differing_paths_)).Times(1);
729 pref_value_store_->RefreshPolicyPrefsCompletion( 839 pref_value_store_->RefreshPolicyPrefsCompletion(
730 new_managed_store.release(), 840 new_managed_platform_store.release(),
731 new DummyPrefStore(), 841 new DummyPrefStore(),
732 NewCallback(&callback4, 842 new DummyPrefStore(),
843 NewCallback(&callback5,
733 &MockPolicyRefreshCallback::DoCallback)); 844 &MockPolicyRefreshCallback::DoCallback));
734 } 845 }
735 846
736 TEST_F(PrefValueStoreTest, TestConcurrentPolicyRefresh) { 847 TEST_F(PrefValueStoreTest, TestConcurrentPolicyRefresh) {
737 MockPolicyRefreshCallback callback1; 848 MockPolicyRefreshCallback callback1;
738 BrowserThread::PostTask( 849 BrowserThread::PostTask(
739 BrowserThread::UI, FROM_HERE, 850 BrowserThread::UI, FROM_HERE,
740 NewRunnableMethod( 851 NewRunnableMethod(
741 pref_value_store_.get(), 852 pref_value_store_.get(),
742 &PrefValueStore::RefreshPolicyPrefs, 853 &PrefValueStore::RefreshPolicyPrefs,
(...skipping 23 matching lines...) Expand all
766 Mock::VerifyAndClearExpectations(&callback1); 877 Mock::VerifyAndClearExpectations(&callback1);
767 Mock::VerifyAndClearExpectations(&callback2); 878 Mock::VerifyAndClearExpectations(&callback2);
768 Mock::VerifyAndClearExpectations(&callback3); 879 Mock::VerifyAndClearExpectations(&callback3);
769 880
770 EXPECT_CALL(callback1, DoCallback(expected_differing_paths_)).Times(1); 881 EXPECT_CALL(callback1, DoCallback(expected_differing_paths_)).Times(1);
771 std::vector<std::string> no_differing_paths; 882 std::vector<std::string> no_differing_paths;
772 EXPECT_CALL(callback2, DoCallback(no_differing_paths)).Times(1); 883 EXPECT_CALL(callback2, DoCallback(no_differing_paths)).Times(1);
773 EXPECT_CALL(callback3, DoCallback(no_differing_paths)).Times(1); 884 EXPECT_CALL(callback3, DoCallback(no_differing_paths)).Times(1);
774 loop_.RunAllPending(); 885 loop_.RunAllPending();
775 } 886 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698