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