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

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

Issue 4876002: Create additional PrefStore for Device Management policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review feedback 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
« no previous file with comments | « chrome/browser/prefs/pref_service.cc ('k') | chrome/browser/prefs/pref_value_store.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 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 <string> 5 #include <string>
6 6
7 #include "app/test/data/resource.h" 7 #include "app/test/data/resource.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 obs2.Reset(new_pref_value); 184 obs2.Reset(new_pref_value);
185 // This should only fire the observer in obs2. 185 // This should only fire the observer in obs2.
186 prefs.SetString(pref_name, new_pref_value); 186 prefs.SetString(pref_name, new_pref_value);
187 EXPECT_FALSE(obs.observer_fired()); 187 EXPECT_FALSE(obs.observer_fired());
188 EXPECT_TRUE(obs2.observer_fired()); 188 EXPECT_TRUE(obs2.observer_fired());
189 } 189 }
190 190
191 TEST(PrefServiceTest, ProxyFromCommandLineNotPolicy) { 191 TEST(PrefServiceTest, ProxyFromCommandLineNotPolicy) {
192 CommandLine command_line(CommandLine::NO_PROGRAM); 192 CommandLine command_line(CommandLine::NO_PROGRAM);
193 command_line.AppendSwitch(switches::kProxyAutoDetect); 193 command_line.AppendSwitch(switches::kProxyAutoDetect);
194 TestingPrefService prefs(NULL, &command_line); 194 TestingPrefService prefs(NULL, NULL, &command_line);
195 browser::RegisterUserPrefs(&prefs); 195 browser::RegisterUserPrefs(&prefs);
196 EXPECT_TRUE(prefs.GetBoolean(prefs::kProxyAutoDetect)); 196 EXPECT_TRUE(prefs.GetBoolean(prefs::kProxyAutoDetect));
197 const PrefService::Preference* pref = 197 const PrefService::Preference* pref =
198 prefs.FindPreference(prefs::kProxyAutoDetect); 198 prefs.FindPreference(prefs::kProxyAutoDetect);
199 ASSERT_TRUE(pref); 199 ASSERT_TRUE(pref);
200 EXPECT_FALSE(pref->IsManaged()); 200 EXPECT_FALSE(pref->IsManaged());
201 } 201 }
202 202
203 TEST(PrefServiceTest, ProxyPolicyOverridesCommandLineOptions) { 203 TEST(PrefServiceTest, ProxyPolicyOverridesCommandLineOptions) {
204 CommandLine command_line(CommandLine::NO_PROGRAM); 204 CommandLine command_line(CommandLine::NO_PROGRAM);
205 command_line.AppendSwitchASCII(switches::kProxyBypassList, "123"); 205 command_line.AppendSwitchASCII(switches::kProxyBypassList, "123");
206 command_line.AppendSwitchASCII(switches::kProxyPacUrl, "456"); 206 command_line.AppendSwitchASCII(switches::kProxyPacUrl, "456");
207 command_line.AppendSwitchASCII(switches::kProxyServer, "789"); 207 command_line.AppendSwitchASCII(switches::kProxyServer, "789");
208 scoped_ptr<policy::MockConfigurationPolicyProvider> provider( 208 scoped_ptr<policy::MockConfigurationPolicyProvider> provider(
209 new policy::MockConfigurationPolicyProvider()); 209 new policy::MockConfigurationPolicyProvider());
210 Value* mode_value = Value::CreateIntegerValue( 210 Value* mode_value = Value::CreateIntegerValue(
211 policy::kPolicyManuallyConfiguredProxyMode); 211 policy::kPolicyManuallyConfiguredProxyMode);
212 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value); 212 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value);
213 provider->AddPolicy(policy::kPolicyProxyBypassList, 213 provider->AddPolicy(policy::kPolicyProxyBypassList,
214 Value::CreateStringValue("abc")); 214 Value::CreateStringValue("abc"));
215 provider->AddPolicy(policy::kPolicyProxyPacUrl, 215 provider->AddPolicy(policy::kPolicyProxyPacUrl,
216 Value::CreateStringValue("def")); 216 Value::CreateStringValue("def"));
217 provider->AddPolicy(policy::kPolicyProxyServer, 217 provider->AddPolicy(policy::kPolicyProxyServer,
218 Value::CreateStringValue("ghi")); 218 Value::CreateStringValue("ghi"));
219 219
220 // First verify that command-line options are set correctly when 220 // First verify that command-line options are set correctly when
221 // there is no policy in effect. 221 // there is no policy in effect.
222 TestingPrefService prefs(NULL, &command_line); 222 TestingPrefService prefs(NULL, NULL, &command_line);
223 browser::RegisterUserPrefs(&prefs); 223 browser::RegisterUserPrefs(&prefs);
224 EXPECT_FALSE(prefs.GetBoolean(prefs::kProxyAutoDetect)); 224 EXPECT_FALSE(prefs.GetBoolean(prefs::kProxyAutoDetect));
225 EXPECT_FALSE(prefs.GetBoolean(prefs::kNoProxyServer)); 225 EXPECT_FALSE(prefs.GetBoolean(prefs::kNoProxyServer));
226 EXPECT_EQ("789", prefs.GetString(prefs::kProxyServer)); 226 EXPECT_EQ("789", prefs.GetString(prefs::kProxyServer));
227 EXPECT_EQ("456", prefs.GetString(prefs::kProxyPacUrl)); 227 EXPECT_EQ("456", prefs.GetString(prefs::kProxyPacUrl));
228 EXPECT_EQ("123", prefs.GetString(prefs::kProxyBypassList)); 228 EXPECT_EQ("123", prefs.GetString(prefs::kProxyBypassList));
229 229
230 // Try a second time time with the managed PrefStore in place, the 230 // Try a second time time with the managed PrefStore in place, the
231 // manual proxy policy should have removed all traces of the command 231 // manual proxy policy should have removed all traces of the command
232 // line and replaced them with the policy versions. 232 // line and replaced them with the policy versions.
233 TestingPrefService prefs2(provider.get(), &command_line); 233 TestingPrefService prefs2(provider.get(), NULL, &command_line);
234 browser::RegisterUserPrefs(&prefs2); 234 browser::RegisterUserPrefs(&prefs2);
235 EXPECT_FALSE(prefs2.GetBoolean(prefs::kProxyAutoDetect)); 235 EXPECT_FALSE(prefs2.GetBoolean(prefs::kProxyAutoDetect));
236 EXPECT_FALSE(prefs2.GetBoolean(prefs::kNoProxyServer)); 236 EXPECT_FALSE(prefs2.GetBoolean(prefs::kNoProxyServer));
237 EXPECT_EQ("ghi", prefs2.GetString(prefs::kProxyServer)); 237 EXPECT_EQ("ghi", prefs2.GetString(prefs::kProxyServer));
238 EXPECT_EQ("def", prefs2.GetString(prefs::kProxyPacUrl)); 238 EXPECT_EQ("def", prefs2.GetString(prefs::kProxyPacUrl));
239 EXPECT_EQ("abc", prefs2.GetString(prefs::kProxyBypassList)); 239 EXPECT_EQ("abc", prefs2.GetString(prefs::kProxyBypassList));
240 } 240 }
241 241
242 TEST(PrefServiceTest, ProxyPolicyOverridesUnrelatedCommandLineOptions) { 242 TEST(PrefServiceTest, ProxyPolicyOverridesUnrelatedCommandLineOptions) {
243 CommandLine command_line(CommandLine::NO_PROGRAM); 243 CommandLine command_line(CommandLine::NO_PROGRAM);
244 command_line.AppendSwitchASCII(switches::kProxyBypassList, "123"); 244 command_line.AppendSwitchASCII(switches::kProxyBypassList, "123");
245 command_line.AppendSwitchASCII(switches::kProxyPacUrl, "456"); 245 command_line.AppendSwitchASCII(switches::kProxyPacUrl, "456");
246 command_line.AppendSwitchASCII(switches::kProxyServer, "789"); 246 command_line.AppendSwitchASCII(switches::kProxyServer, "789");
247 scoped_ptr<policy::MockConfigurationPolicyProvider> provider( 247 scoped_ptr<policy::MockConfigurationPolicyProvider> provider(
248 new policy::MockConfigurationPolicyProvider()); 248 new policy::MockConfigurationPolicyProvider());
249 Value* mode_value = Value::CreateIntegerValue( 249 Value* mode_value = Value::CreateIntegerValue(
250 policy::kPolicyUseSystemProxyMode); 250 policy::kPolicyUseSystemProxyMode);
251 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value); 251 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value);
252 252
253 // First verify that command-line options are set correctly when 253 // First verify that command-line options are set correctly when
254 // there is no policy in effect. 254 // there is no policy in effect.
255 TestingPrefService prefs(NULL, &command_line); 255 TestingPrefService prefs(NULL, NULL, &command_line);
256 browser::RegisterUserPrefs(&prefs); 256 browser::RegisterUserPrefs(&prefs);
257 EXPECT_FALSE(prefs.GetBoolean(prefs::kProxyAutoDetect)); 257 EXPECT_FALSE(prefs.GetBoolean(prefs::kProxyAutoDetect));
258 EXPECT_FALSE(prefs.GetBoolean(prefs::kNoProxyServer)); 258 EXPECT_FALSE(prefs.GetBoolean(prefs::kNoProxyServer));
259 EXPECT_EQ("789", prefs.GetString(prefs::kProxyServer)); 259 EXPECT_EQ("789", prefs.GetString(prefs::kProxyServer));
260 EXPECT_EQ("456", prefs.GetString(prefs::kProxyPacUrl)); 260 EXPECT_EQ("456", prefs.GetString(prefs::kProxyPacUrl));
261 EXPECT_EQ("123", prefs.GetString(prefs::kProxyBypassList)); 261 EXPECT_EQ("123", prefs.GetString(prefs::kProxyBypassList));
262 262
263 // Try a second time time with the managed PrefStore in place, the 263 // Try a second time time with the managed PrefStore in place, the
264 // no proxy policy should have removed all traces of the command 264 // no proxy policy should have removed all traces of the command
265 // line proxy settings, even though they were not the specific one 265 // line proxy settings, even though they were not the specific one
266 // set in policy. 266 // set in policy.
267 TestingPrefService prefs2(provider.get(), &command_line); 267 TestingPrefService prefs2(provider.get(), NULL, &command_line);
268 browser::RegisterUserPrefs(&prefs2); 268 browser::RegisterUserPrefs(&prefs2);
269 EXPECT_FALSE(prefs2.GetBoolean(prefs::kProxyAutoDetect)); 269 EXPECT_FALSE(prefs2.GetBoolean(prefs::kProxyAutoDetect));
270 EXPECT_FALSE(prefs2.GetBoolean(prefs::kNoProxyServer)); 270 EXPECT_FALSE(prefs2.GetBoolean(prefs::kNoProxyServer));
271 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyServer)); 271 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyServer));
272 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyPacUrl)); 272 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyPacUrl));
273 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyBypassList)); 273 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyBypassList));
274 } 274 }
275 275
276 TEST(PrefServiceTest, ProxyPolicyOverridesCommandLineNoProxy) { 276 TEST(PrefServiceTest, ProxyPolicyOverridesCommandLineNoProxy) {
277 CommandLine command_line(CommandLine::NO_PROGRAM); 277 CommandLine command_line(CommandLine::NO_PROGRAM);
278 command_line.AppendSwitch(switches::kNoProxyServer); 278 command_line.AppendSwitch(switches::kNoProxyServer);
279 scoped_ptr<policy::MockConfigurationPolicyProvider> provider( 279 scoped_ptr<policy::MockConfigurationPolicyProvider> provider(
280 new policy::MockConfigurationPolicyProvider()); 280 new policy::MockConfigurationPolicyProvider());
281 Value* mode_value = Value::CreateIntegerValue( 281 Value* mode_value = Value::CreateIntegerValue(
282 policy::kPolicyAutoDetectProxyMode); 282 policy::kPolicyAutoDetectProxyMode);
283 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value); 283 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value);
284 284
285 // First verify that command-line options are set correctly when 285 // First verify that command-line options are set correctly when
286 // there is no policy in effect. 286 // there is no policy in effect.
287 TestingPrefService prefs(NULL, &command_line); 287 TestingPrefService prefs(NULL, NULL, &command_line);
288 browser::RegisterUserPrefs(&prefs); 288 browser::RegisterUserPrefs(&prefs);
289 EXPECT_FALSE(prefs.GetBoolean(prefs::kProxyAutoDetect)); 289 EXPECT_FALSE(prefs.GetBoolean(prefs::kProxyAutoDetect));
290 EXPECT_TRUE(prefs.GetBoolean(prefs::kNoProxyServer)); 290 EXPECT_TRUE(prefs.GetBoolean(prefs::kNoProxyServer));
291 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyServer)); 291 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyServer));
292 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyPacUrl)); 292 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyPacUrl));
293 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyBypassList)); 293 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyBypassList));
294 294
295 // Try a second time time with the managed PrefStore in place, the 295 // Try a second time time with the managed PrefStore in place, the
296 // auto-detect should be overridden. The default pref store must be 296 // auto-detect should be overridden. The default pref store must be
297 // in place with the appropriate default value for this to work. 297 // in place with the appropriate default value for this to work.
298 TestingPrefService prefs2(provider.get(), &command_line); 298 TestingPrefService prefs2(provider.get(), NULL, &command_line);
299 browser::RegisterUserPrefs(&prefs2); 299 browser::RegisterUserPrefs(&prefs2);
300 EXPECT_TRUE(prefs2.GetBoolean(prefs::kProxyAutoDetect)); 300 EXPECT_TRUE(prefs2.GetBoolean(prefs::kProxyAutoDetect));
301 EXPECT_FALSE(prefs2.GetBoolean(prefs::kNoProxyServer)); 301 EXPECT_FALSE(prefs2.GetBoolean(prefs::kNoProxyServer));
302 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyServer)); 302 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyServer));
303 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyPacUrl)); 303 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyPacUrl));
304 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyBypassList)); 304 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyBypassList));
305 } 305 }
306 306
307 TEST(PrefServiceTest, ProxyPolicyOverridesCommandLineAutoDetect) { 307 TEST(PrefServiceTest, ProxyPolicyOverridesCommandLineAutoDetect) {
308 CommandLine command_line(CommandLine::NO_PROGRAM); 308 CommandLine command_line(CommandLine::NO_PROGRAM);
309 command_line.AppendSwitch(switches::kProxyAutoDetect); 309 command_line.AppendSwitch(switches::kProxyAutoDetect);
310 scoped_ptr<policy::MockConfigurationPolicyProvider> provider( 310 scoped_ptr<policy::MockConfigurationPolicyProvider> provider(
311 new policy::MockConfigurationPolicyProvider()); 311 new policy::MockConfigurationPolicyProvider());
312 Value* mode_value = Value::CreateIntegerValue( 312 Value* mode_value = Value::CreateIntegerValue(
313 policy::kPolicyNoProxyServerMode); 313 policy::kPolicyNoProxyServerMode);
314 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value); 314 provider->AddPolicy(policy::kPolicyProxyServerMode, mode_value);
315 315
316 // First verify that the auto-detect is set if there is no managed 316 // First verify that the auto-detect is set if there is no managed
317 // PrefStore. 317 // PrefStore.
318 TestingPrefService prefs(NULL, &command_line); 318 TestingPrefService prefs(NULL, NULL, &command_line);
319 browser::RegisterUserPrefs(&prefs); 319 browser::RegisterUserPrefs(&prefs);
320 EXPECT_TRUE(prefs.GetBoolean(prefs::kProxyAutoDetect)); 320 EXPECT_TRUE(prefs.GetBoolean(prefs::kProxyAutoDetect));
321 EXPECT_FALSE(prefs.GetBoolean(prefs::kNoProxyServer)); 321 EXPECT_FALSE(prefs.GetBoolean(prefs::kNoProxyServer));
322 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyServer)); 322 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyServer));
323 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyPacUrl)); 323 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyPacUrl));
324 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyBypassList)); 324 EXPECT_EQ(std::string(), prefs.GetString(prefs::kProxyBypassList));
325 325
326 // Try a second time time with the managed PrefStore in place, the 326 // Try a second time time with the managed PrefStore in place, the
327 // auto-detect should be overridden. The default pref store must be 327 // auto-detect should be overridden. The default pref store must be
328 // in place with the appropriate default value for this to work. 328 // in place with the appropriate default value for this to work.
329 TestingPrefService prefs2(provider.get(), &command_line); 329 TestingPrefService prefs2(provider.get(), NULL, &command_line);
330 browser::RegisterUserPrefs(&prefs2); 330 browser::RegisterUserPrefs(&prefs2);
331 EXPECT_FALSE(prefs2.GetBoolean(prefs::kProxyAutoDetect)); 331 EXPECT_FALSE(prefs2.GetBoolean(prefs::kProxyAutoDetect));
332 EXPECT_TRUE(prefs2.GetBoolean(prefs::kNoProxyServer)); 332 EXPECT_TRUE(prefs2.GetBoolean(prefs::kNoProxyServer));
333 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyServer)); 333 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyServer));
334 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyPacUrl)); 334 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyPacUrl));
335 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyBypassList)); 335 EXPECT_EQ(std::string(), prefs2.GetString(prefs::kProxyBypassList));
336 } 336 }
337 337
338 class PrefServiceSetValueTest : public testing::Test { 338 class PrefServiceSetValueTest : public testing::Test {
339 protected: 339 protected:
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 SetExpectNoNotification(); 449 SetExpectNoNotification();
450 prefs_.Set(kName, new_value); 450 prefs_.Set(kName, new_value);
451 Mock::VerifyAndClearExpectations(&observer_); 451 Mock::VerifyAndClearExpectations(&observer_);
452 452
453 SetExpectPrefChanged(); 453 SetExpectPrefChanged();
454 prefs_.Set(kName, *null_value_); 454 prefs_.Set(kName, *null_value_);
455 Mock::VerifyAndClearExpectations(&observer_); 455 Mock::VerifyAndClearExpectations(&observer_);
456 list = prefs_.GetMutableList(kName); 456 list = prefs_.GetMutableList(kName);
457 EXPECT_EQ(0U, list->GetSize()); 457 EXPECT_EQ(0U, list->GetSize());
458 } 458 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/pref_service.cc ('k') | chrome/browser/prefs/pref_value_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698