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. |
| 229 void VerifyEnabledProxyPrefs( |
| 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( |
| 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( |
| 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 |