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 <gtest/gtest.h> | 5 #include <gtest/gtest.h> |
6 | 6 |
7 #include "base/file_path.h" | 7 #include "base/file_path.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/policy/mock_configuration_policy_provider.h" | 9 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
10 #include "chrome/browser/prefs/proxy_prefs.h" | |
10 #include "chrome/common/pref_names.h" | 11 #include "chrome/common/pref_names.h" |
11 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
12 | 13 |
13 namespace policy { | 14 namespace policy { |
14 | 15 |
15 // Holds a set of test parameters, consisting of pref name and policy type. | 16 // Holds a set of test parameters, consisting of pref name and policy type. |
16 class TypeAndName { | 17 class TypeAndName { |
17 public: | 18 public: |
18 TypeAndName(ConfigurationPolicyType type, const char* pref_name) | 19 TypeAndName(ConfigurationPolicyType type, const char* pref_name) |
19 : type_(type), | 20 : type_(type), |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
216 | 217 |
217 INSTANTIATE_TEST_CASE_P( | 218 INSTANTIATE_TEST_CASE_P( |
218 ConfigurationPolicyPrefStoreIntegerTestInstance, | 219 ConfigurationPolicyPrefStoreIntegerTestInstance, |
219 ConfigurationPolicyPrefStoreIntegerTest, | 220 ConfigurationPolicyPrefStoreIntegerTest, |
220 testing::Values( | 221 testing::Values( |
221 TypeAndName(kPolicyRestoreOnStartup, | 222 TypeAndName(kPolicyRestoreOnStartup, |
222 prefs::kRestoreOnStartup))); | 223 prefs::kRestoreOnStartup))); |
223 | 224 |
224 // Test cases for the proxy policy settings. | 225 // Test cases for the proxy policy settings. |
225 class ConfigurationPolicyPrefStoreProxyTest : public testing::Test { | 226 class ConfigurationPolicyPrefStoreProxyTest : public testing::Test { |
227 protected: | |
228 // Verify that all the proxy prefs are set to the speicifed expected values. | |
Mattias Nissler (ping if slow)
2010/12/20 13:34:03
s/speicifed/specified/
battre (please use the other)
2010/12/21 14:18:18
Done.
| |
229 void VerifyEnabledProxyPrefs( | |
Mattias Nissler (ping if slow)
2010/12/20 13:34:03
Looks like this could be static?
battre (please use the other)
2010/12/21 14:18:18
Done.
| |
230 const ConfigurationPolicyPrefStore& store, | |
231 const std::string& expected_proxy_server, | |
232 const std::string& expected_proxy_pac_url, | |
233 const std::string& expected_proxy_bypass_list, | |
234 const ProxyPrefs::ProxyServerMode& expected_proxy_mode) { | |
235 std::string string_result; | |
236 | |
237 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | |
238 EXPECT_EQ(expected_proxy_server, string_result); | |
239 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | |
240 EXPECT_EQ(expected_proxy_pac_url, string_result); | |
241 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyBypassList, | |
242 &string_result)); | |
243 EXPECT_EQ(expected_proxy_bypass_list, string_result); | |
244 int int_result = -1; | |
245 EXPECT_TRUE( | |
246 store.prefs()->GetInteger(prefs::kProxyServerMode, &int_result)); | |
247 EXPECT_EQ(expected_proxy_mode, int_result); | |
248 } | |
249 | |
250 // Verify that kProxyServerMode is set to its expected value, and all the | |
251 // other proxy prefs are unset. | |
252 void VerifyDisabledProxyPrefs( | |
Mattias Nissler (ping if slow)
2010/12/20 13:34:03
static?
battre (please use the other)
2010/12/21 14:18:18
Done.
| |
253 const ConfigurationPolicyPrefStore& store, | |
254 const ProxyPrefs::ProxyServerMode& expected_proxy_mode) { | |
255 std::string string_result; | |
256 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | |
257 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | |
258 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | |
259 &string_result)); | |
260 int int_result = -1; | |
261 EXPECT_TRUE( | |
262 store.prefs()->GetInteger(prefs::kProxyServerMode, &int_result)); | |
263 EXPECT_EQ(expected_proxy_mode, int_result); | |
264 } | |
265 | |
266 void AddProxyPolicies( | |
Mattias Nissler (ping if slow)
2010/12/20 13:34:03
static?
battre (please use the other)
2010/12/21 14:18:18
Done.
| |
267 MockConfigurationPolicyProvider* provider, | |
268 const std::string& proxy_server, | |
269 const std::string& proxy_pac_url, | |
270 const std::string& proxy_bypass_list) { | |
271 provider->AddPolicy(kPolicyProxyBypassList, | |
272 Value::CreateStringValue(proxy_bypass_list)); | |
273 provider->AddPolicy(kPolicyProxyPacUrl, | |
274 Value::CreateStringValue(proxy_pac_url)); | |
275 provider->AddPolicy(kPolicyProxyServer, | |
276 Value::CreateStringValue(proxy_server)); | |
277 } | |
226 }; | 278 }; |
227 | 279 |
228 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { | 280 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { |
229 scoped_ptr<MockConfigurationPolicyProvider> provider( | 281 scoped_ptr<MockConfigurationPolicyProvider> provider( |
230 new MockConfigurationPolicyProvider()); | 282 new MockConfigurationPolicyProvider()); |
231 provider->AddPolicy(kPolicyProxyBypassList, | 283 AddProxyPolicies(provider.get(), |
232 Value::CreateStringValue("http://chromium.org/override")); | 284 "chromium.org", |
233 provider->AddPolicy(kPolicyProxyPacUrl, | 285 "http://short.org/proxy.pac", |
234 Value::CreateStringValue("http://short.org/proxy.pac")); | 286 "http://chromium.org/override"); |
235 provider->AddPolicy(kPolicyProxyServer, | |
236 Value::CreateStringValue("chromium.org")); | |
237 provider->AddPolicy(kPolicyProxyServerMode, | 287 provider->AddPolicy(kPolicyProxyServerMode, |
238 Value::CreateIntegerValue( | 288 Value::CreateIntegerValue(ProxyPrefs::MANUAL)); |
239 kPolicyManuallyConfiguredProxyMode)); | |
240 | 289 |
241 ConfigurationPolicyPrefStore store(provider.get()); | 290 ConfigurationPolicyPrefStore store(provider.get()); |
291 VerifyEnabledProxyPrefs( | |
292 store, | |
293 "chromium.org", | |
294 "http://short.org/proxy.pac", | |
295 "http://chromium.org/override", | |
296 ProxyPrefs::MANUAL); | |
297 } | |
242 | 298 |
243 std::string string_result; | 299 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) { |
244 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyBypassList, | 300 scoped_ptr<MockConfigurationPolicyProvider> provider( |
245 &string_result)); | 301 new MockConfigurationPolicyProvider()); |
246 EXPECT_EQ("http://chromium.org/override", string_result); | 302 provider->AddPolicy(kPolicyProxyServerMode, |
247 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 303 Value::CreateIntegerValue(ProxyPrefs::MANUAL)); |
248 EXPECT_EQ("http://short.org/proxy.pac", string_result); | 304 AddProxyPolicies(provider.get(), |
249 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 305 "chromium.org", |
250 EXPECT_EQ("chromium.org", string_result); | 306 "http://short.org/proxy.pac", |
251 bool bool_result; | 307 "http://chromium.org/override"); |
252 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 308 |
253 EXPECT_FALSE(bool_result); | 309 ConfigurationPolicyPrefStore store(provider.get()); |
254 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | 310 VerifyEnabledProxyPrefs( |
255 EXPECT_FALSE(bool_result); | 311 store, |
312 "chromium.org", | |
313 "http://short.org/proxy.pac", | |
314 "http://chromium.org/override", | |
315 ProxyPrefs::MANUAL); | |
256 } | 316 } |
257 | 317 |
258 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { | 318 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { |
259 scoped_ptr<MockConfigurationPolicyProvider> provider( | 319 scoped_ptr<MockConfigurationPolicyProvider> provider( |
260 new MockConfigurationPolicyProvider()); | 320 new MockConfigurationPolicyProvider()); |
261 provider->AddPolicy(kPolicyProxyBypassList, | 321 AddProxyPolicies(provider.get(), |
262 Value::CreateStringValue("http://chromium.org/override")); | 322 "chromium.org", |
323 "http://short.org/proxy.pac", | |
324 "http://chromium.org/override"); | |
263 provider->AddPolicy(kPolicyProxyServerMode, | 325 provider->AddPolicy(kPolicyProxyServerMode, |
264 Value::CreateIntegerValue( | 326 Value::CreateIntegerValue(ProxyPrefs::DISABLED)); |
265 kPolicyNoProxyServerMode)); | |
266 | 327 |
267 ConfigurationPolicyPrefStore store(provider.get()); | 328 ConfigurationPolicyPrefStore store(provider.get()); |
268 | 329 VerifyDisabledProxyPrefs(store, ProxyPrefs::DISABLED); |
269 std::string string_result; | |
270 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | |
271 &string_result)); | |
272 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | |
273 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | |
274 bool bool_result; | |
275 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | |
276 EXPECT_TRUE(bool_result); | |
277 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | |
278 EXPECT_FALSE(bool_result); | |
279 } | 330 } |
280 | 331 |
281 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyReversedApplyOrder) { | 332 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyReversedApplyOrder) { |
282 scoped_ptr<MockConfigurationPolicyProvider> provider( | 333 scoped_ptr<MockConfigurationPolicyProvider> provider( |
283 new MockConfigurationPolicyProvider()); | 334 new MockConfigurationPolicyProvider()); |
284 provider->AddPolicy(kPolicyProxyServerMode, | 335 provider->AddPolicy(kPolicyProxyServerMode, |
285 Value::CreateIntegerValue( | 336 Value::CreateIntegerValue(ProxyPrefs::DISABLED)); |
286 kPolicyNoProxyServerMode)); | 337 AddProxyPolicies(provider.get(), |
287 provider->AddPolicy(kPolicyProxyBypassList, | 338 "chromium.org", |
288 Value::CreateStringValue("http://chromium.org/override")); | 339 "http://short.org/proxy.pac", |
340 "http://chromium.org/override"); | |
289 | 341 |
290 ConfigurationPolicyPrefStore store(provider.get()); | 342 ConfigurationPolicyPrefStore store(provider.get()); |
291 | 343 VerifyDisabledProxyPrefs(store, ProxyPrefs::DISABLED); |
292 std::string string_result; | |
293 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | |
294 &string_result)); | |
295 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | |
296 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | |
297 bool bool_result; | |
298 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | |
299 EXPECT_TRUE(bool_result); | |
300 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | |
301 EXPECT_FALSE(bool_result); | |
302 } | 344 } |
303 | 345 |
304 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { | 346 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { |
305 scoped_ptr<MockConfigurationPolicyProvider> provider( | 347 scoped_ptr<MockConfigurationPolicyProvider> provider( |
306 new MockConfigurationPolicyProvider()); | 348 new MockConfigurationPolicyProvider()); |
349 AddProxyPolicies(provider.get(), | |
350 "chromium.org", | |
351 "http://short.org/proxy.pac", | |
352 "http://chromium.org/override"); | |
307 provider->AddPolicy(kPolicyProxyServerMode, | 353 provider->AddPolicy(kPolicyProxyServerMode, |
308 Value::CreateIntegerValue( | 354 Value::CreateIntegerValue(ProxyPrefs::AUTO_DETECT)); |
309 kPolicyAutoDetectProxyMode)); | |
310 | 355 |
311 ConfigurationPolicyPrefStore store(provider.get()); | 356 ConfigurationPolicyPrefStore store(provider.get()); |
357 VerifyEnabledProxyPrefs( | |
358 store, | |
359 "chromium.org", | |
360 "http://short.org/proxy.pac", | |
361 "http://chromium.org/override", | |
362 ProxyPrefs::AUTO_DETECT); | |
363 } | |
312 | 364 |
313 std::string string_result; | 365 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectReversedApplyOrder) { |
314 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | 366 scoped_ptr<MockConfigurationPolicyProvider> provider( |
315 &string_result)); | 367 new MockConfigurationPolicyProvider()); |
316 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 368 provider->AddPolicy(kPolicyProxyServerMode, |
317 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 369 Value::CreateIntegerValue(ProxyPrefs::AUTO_DETECT)); |
318 bool bool_result; | 370 AddProxyPolicies(provider.get(), |
319 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 371 "chromium.org", |
320 EXPECT_FALSE(bool_result); | 372 "http://short.org/proxy.pac", |
321 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | 373 "http://chromium.org/override"); |
322 EXPECT_TRUE(bool_result); | 374 |
375 ConfigurationPolicyPrefStore store(provider.get()); | |
376 VerifyEnabledProxyPrefs( | |
377 store, | |
378 "chromium.org", | |
379 "http://short.org/proxy.pac", | |
380 "http://chromium.org/override", | |
381 ProxyPrefs::AUTO_DETECT); | |
323 } | 382 } |
324 | 383 |
325 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { | 384 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { |
326 scoped_ptr<MockConfigurationPolicyProvider> provider( | 385 scoped_ptr<MockConfigurationPolicyProvider> provider( |
327 new MockConfigurationPolicyProvider()); | 386 new MockConfigurationPolicyProvider()); |
328 provider->AddPolicy(kPolicyProxyBypassList, | 387 AddProxyPolicies(provider.get(), |
329 Value::CreateStringValue("http://chromium.org/override")); | 388 "chromium.org", |
389 "http://short.org/proxy.pac", | |
390 "http://chromium.org/override"); | |
330 provider->AddPolicy(kPolicyProxyServerMode, | 391 provider->AddPolicy(kPolicyProxyServerMode, |
331 Value::CreateIntegerValue( | 392 Value::CreateIntegerValue(ProxyPrefs::SYSTEM)); |
332 kPolicyUseSystemProxyMode)); | |
333 | 393 |
334 ConfigurationPolicyPrefStore store(provider.get()); | 394 ConfigurationPolicyPrefStore store(provider.get()); |
335 | 395 VerifyDisabledProxyPrefs(store, ProxyPrefs::SYSTEM); |
336 std::string string_result; | |
337 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | |
338 &string_result)); | |
339 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | |
340 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | |
341 bool bool_result; | |
342 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | |
343 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, | |
344 &bool_result)); | |
345 } | 396 } |
346 | 397 |
347 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemReversedApplyOrder) { | 398 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemReversedApplyOrder) { |
348 scoped_ptr<MockConfigurationPolicyProvider> provider( | 399 scoped_ptr<MockConfigurationPolicyProvider> provider( |
349 new MockConfigurationPolicyProvider()); | 400 new MockConfigurationPolicyProvider()); |
350 provider->AddPolicy(kPolicyProxyServerMode, | 401 provider->AddPolicy(kPolicyProxyServerMode, |
351 Value::CreateIntegerValue( | 402 Value::CreateIntegerValue(ProxyPrefs::SYSTEM)); |
352 kPolicyUseSystemProxyMode)); | 403 AddProxyPolicies(provider.get(), |
353 provider->AddPolicy(kPolicyProxyBypassList, | 404 "chromium.org", |
354 Value::CreateStringValue("http://chromium.org/override")); | 405 "http://short.org/proxy.pac", |
406 "http://chromium.org/override"); | |
355 | 407 |
356 ConfigurationPolicyPrefStore store(provider.get()); | 408 ConfigurationPolicyPrefStore store(provider.get()); |
357 | 409 VerifyDisabledProxyPrefs(store, ProxyPrefs::SYSTEM); |
358 std::string string_result; | |
359 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | |
360 &string_result)); | |
361 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | |
362 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | |
363 bool bool_result; | |
364 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | |
365 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, | |
366 &bool_result)); | |
367 } | 410 } |
368 | 411 |
369 class ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test { | 412 class ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test { |
370 }; | 413 }; |
371 | 414 |
372 // Checks that if the policy for default search is valid, i.e. there's a | 415 // Checks that if the policy for default search is valid, i.e. there's a |
373 // search URL, that all the elements have been given proper defaults. | 416 // search URL, that all the elements have been given proper defaults. |
374 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { | 417 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { |
375 const char* const search_url = "http://test.com/search?t={searchTerms}"; | 418 const char* const search_url = "http://test.com/search?t={searchTerms}"; |
376 scoped_ptr<MockConfigurationPolicyProvider> provider( | 419 scoped_ptr<MockConfigurationPolicyProvider> provider( |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
622 | 665 |
623 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Disabled) { | 666 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Disabled) { |
624 store_.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false)); | 667 store_.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false)); |
625 // Disabling AutoFill should switch the pref to managed. | 668 // Disabling AutoFill should switch the pref to managed. |
626 bool result = true; | 669 bool result = true; |
627 EXPECT_TRUE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); | 670 EXPECT_TRUE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); |
628 EXPECT_FALSE(result); | 671 EXPECT_FALSE(result); |
629 } | 672 } |
630 | 673 |
631 } // namespace policy | 674 } // namespace policy |
OLD | NEW |