| 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/file_path.h" | 5 #include "base/file_path.h" |
| 6 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 6 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| 7 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 7 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
| 8 #include "chrome/browser/prefs/proxy_prefs.h" | 8 #include "chrome/browser/prefs/proxy_prefs.h" |
| 9 #include "chrome/common/chrome_switches.h" | 9 #include "chrome/common/chrome_switches.h" |
| 10 #include "chrome/common/notification_service.h" | 10 #include "chrome/common/notification_service.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 Value* value; | 64 Value* value; |
| 65 EXPECT_EQ(PrefStore::READ_OK, | 65 EXPECT_EQ(PrefStore::READ_OK, |
| 66 store_.GetValue(GetParam().pref_name(), &value)); | 66 store_.GetValue(GetParam().pref_name(), &value)); |
| 67 EXPECT_TRUE(in_value->Equals(value)); | 67 EXPECT_TRUE(in_value->Equals(value)); |
| 68 } | 68 } |
| 69 | 69 |
| 70 INSTANTIATE_TEST_CASE_P( | 70 INSTANTIATE_TEST_CASE_P( |
| 71 ConfigurationPolicyPrefStoreListTestInstance, | 71 ConfigurationPolicyPrefStoreListTestInstance, |
| 72 ConfigurationPolicyPrefStoreListTest, | 72 ConfigurationPolicyPrefStoreListTest, |
| 73 testing::Values( | 73 testing::Values( |
| 74 TypeAndName(kPolicyURLsToRestoreOnStartup, | 74 TypeAndName(kPolicyRestoreOnStartupURLs, |
| 75 prefs::kURLsToRestoreOnStartup), | 75 prefs::kURLsToRestoreOnStartup), |
| 76 TypeAndName(kPolicyExtensionInstallAllowList, | 76 TypeAndName(kPolicyExtensionInstallWhitelist, |
| 77 prefs::kExtensionInstallAllowList), | 77 prefs::kExtensionInstallAllowList), |
| 78 TypeAndName(kPolicyExtensionInstallDenyList, | 78 TypeAndName(kPolicyExtensionInstallBlacklist, |
| 79 prefs::kExtensionInstallDenyList), | 79 prefs::kExtensionInstallDenyList), |
| 80 TypeAndName(kPolicyDisabledPlugins, | 80 TypeAndName(kPolicyDisabledPlugins, |
| 81 prefs::kPluginsPluginsBlacklist))); | 81 prefs::kPluginsPluginsBlacklist))); |
| 82 | 82 |
| 83 // Test cases for string-valued policy settings. | 83 // Test cases for string-valued policy settings. |
| 84 class ConfigurationPolicyPrefStoreStringTest | 84 class ConfigurationPolicyPrefStoreStringTest |
| 85 : public ConfigurationPolicyPrefStoreTestBase< | 85 : public ConfigurationPolicyPrefStoreTestBase< |
| 86 testing::TestWithParam<TypeAndName> > { | 86 testing::TestWithParam<TypeAndName> > { |
| 87 }; | 87 }; |
| 88 | 88 |
| 89 TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { | 89 TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { |
| 90 EXPECT_EQ(PrefStore::READ_NO_VALUE, | 90 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
| 91 store_.GetValue(GetParam().pref_name(), NULL)); | 91 store_.GetValue(GetParam().pref_name(), NULL)); |
| 92 } | 92 } |
| 93 | 93 |
| 94 TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { | 94 TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { |
| 95 provider_.AddPolicy(GetParam().type(), | 95 provider_.AddPolicy(GetParam().type(), |
| 96 Value::CreateStringValue("http://chromium.org")); | 96 Value::CreateStringValue("http://chromium.org")); |
| 97 store_.OnUpdatePolicy(); | 97 store_.OnUpdatePolicy(); |
| 98 Value* value; | 98 Value* value; |
| 99 EXPECT_EQ(PrefStore::READ_OK, | 99 EXPECT_EQ(PrefStore::READ_OK, |
| 100 store_.GetValue(GetParam().pref_name(), &value)); | 100 store_.GetValue(GetParam().pref_name(), &value)); |
| 101 EXPECT_TRUE(StringValue("http://chromium.org").Equals(value)); | 101 EXPECT_TRUE(StringValue("http://chromium.org").Equals(value)); |
| 102 } | 102 } |
| 103 | 103 |
| 104 INSTANTIATE_TEST_CASE_P( | 104 INSTANTIATE_TEST_CASE_P( |
| 105 ConfigurationPolicyPrefStoreStringTestInstance, | 105 ConfigurationPolicyPrefStoreStringTestInstance, |
| 106 ConfigurationPolicyPrefStoreStringTest, | 106 ConfigurationPolicyPrefStoreStringTest, |
| 107 testing::Values( | 107 testing::Values( |
| 108 TypeAndName(kPolicyHomePage, | 108 TypeAndName(kPolicyHomepageLocation, |
| 109 prefs::kHomePage), | 109 prefs::kHomePage), |
| 110 TypeAndName(kPolicyApplicationLocale, | 110 TypeAndName(kPolicyApplicationLocaleValue, |
| 111 prefs::kApplicationLocale), | 111 prefs::kApplicationLocale), |
| 112 TypeAndName(kPolicyApplicationLocale, | 112 TypeAndName(kPolicyApplicationLocaleValue, |
| 113 prefs::kApplicationLocale), | 113 prefs::kApplicationLocale), |
| 114 TypeAndName(kPolicyAuthSchemes, | 114 TypeAndName(kPolicyAuthSchemes, |
| 115 prefs::kAuthSchemes), | 115 prefs::kAuthSchemes), |
| 116 TypeAndName(kPolicyAuthServerWhitelist, | 116 TypeAndName(kPolicyAuthServerWhitelist, |
| 117 prefs::kAuthServerWhitelist), | 117 prefs::kAuthServerWhitelist), |
| 118 TypeAndName(kPolicyAuthNegotiateDelegateWhitelist, | 118 TypeAndName(kPolicyAuthNegotiateDelegateWhitelist, |
| 119 prefs::kAuthNegotiateDelegateWhitelist), | 119 prefs::kAuthNegotiateDelegateWhitelist), |
| 120 TypeAndName(kPolicyGSSAPILibraryName, | 120 TypeAndName(kPolicyGSSAPILibraryName, |
| 121 prefs::kGSSAPILibraryName))); | 121 prefs::kGSSAPILibraryName))); |
| 122 | 122 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 EXPECT_TRUE(FundamentalValue(expected_proxy_mode).Equals(value)); | 263 EXPECT_TRUE(FundamentalValue(expected_proxy_mode).Equals(value)); |
| 264 } | 264 } |
| 265 }; | 265 }; |
| 266 | 266 |
| 267 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { | 267 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { |
| 268 MockConfigurationPolicyProvider provider; | 268 MockConfigurationPolicyProvider provider; |
| 269 provider.AddPolicy(kPolicyProxyBypassList, | 269 provider.AddPolicy(kPolicyProxyBypassList, |
| 270 Value::CreateStringValue("http://chromium.org/override")); | 270 Value::CreateStringValue("http://chromium.org/override")); |
| 271 provider.AddPolicy(kPolicyProxyServer, | 271 provider.AddPolicy(kPolicyProxyServer, |
| 272 Value::CreateStringValue("chromium.org")); | 272 Value::CreateStringValue("chromium.org")); |
| 273 provider.AddPolicy(kPolicyProxyMode, | 273 provider.AddPolicy(kPolicyProxyServerMode, |
| 274 Value::CreateIntegerValue( | 274 Value::CreateIntegerValue( |
| 275 kPolicyManuallyConfiguredProxyMode)); | 275 kPolicyManuallyConfiguredProxyMode)); |
| 276 | 276 |
| 277 ConfigurationPolicyPrefStore store(&provider); | 277 ConfigurationPolicyPrefStore store(&provider); |
| 278 VerifyProxyPrefs( | 278 VerifyProxyPrefs( |
| 279 store, "chromium.org", "", "http://chromium.org/override", | 279 store, "chromium.org", "", "http://chromium.org/override", |
| 280 ProxyPrefs::MODE_FIXED_SERVERS); | 280 ProxyPrefs::MODE_FIXED_SERVERS); |
| 281 } | 281 } |
| 282 | 282 |
| 283 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) { | 283 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) { |
| 284 MockConfigurationPolicyProvider provider; | 284 MockConfigurationPolicyProvider provider; |
| 285 provider.AddPolicy(kPolicyProxyMode, | 285 provider.AddPolicy(kPolicyProxyServerMode, |
| 286 Value::CreateIntegerValue( | 286 Value::CreateIntegerValue( |
| 287 kPolicyManuallyConfiguredProxyMode)); | 287 kPolicyManuallyConfiguredProxyMode)); |
| 288 provider.AddPolicy(kPolicyProxyBypassList, | 288 provider.AddPolicy(kPolicyProxyBypassList, |
| 289 Value::CreateStringValue("http://chromium.org/override")); | 289 Value::CreateStringValue("http://chromium.org/override")); |
| 290 provider.AddPolicy(kPolicyProxyServer, | 290 provider.AddPolicy(kPolicyProxyServer, |
| 291 Value::CreateStringValue("chromium.org")); | 291 Value::CreateStringValue("chromium.org")); |
| 292 | 292 |
| 293 ConfigurationPolicyPrefStore store(&provider); | 293 ConfigurationPolicyPrefStore store(&provider); |
| 294 VerifyProxyPrefs( | 294 VerifyProxyPrefs( |
| 295 store, "chromium.org", "", "http://chromium.org/override", | 295 store, "chromium.org", "", "http://chromium.org/override", |
| 296 ProxyPrefs::MODE_FIXED_SERVERS); | 296 ProxyPrefs::MODE_FIXED_SERVERS); |
| 297 } | 297 } |
| 298 | 298 |
| 299 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { | 299 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { |
| 300 MockConfigurationPolicyProvider provider; | 300 MockConfigurationPolicyProvider provider; |
| 301 provider.AddPolicy(kPolicyProxyMode, | 301 provider.AddPolicy(kPolicyProxyServerMode, |
| 302 Value::CreateIntegerValue(kPolicyNoProxyServerMode)); | 302 Value::CreateIntegerValue(kPolicyNoProxyServerMode)); |
| 303 | 303 |
| 304 ConfigurationPolicyPrefStore store(&provider); | 304 ConfigurationPolicyPrefStore store(&provider); |
| 305 VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_DIRECT); | 305 VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_DIRECT); |
| 306 } | 306 } |
| 307 | 307 |
| 308 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { | 308 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { |
| 309 MockConfigurationPolicyProvider provider; | 309 MockConfigurationPolicyProvider provider; |
| 310 provider.AddPolicy(kPolicyProxyMode, | 310 provider.AddPolicy(kPolicyProxyServerMode, |
| 311 Value::CreateIntegerValue(kPolicyAutoDetectProxyMode)); | 311 Value::CreateIntegerValue(kPolicyAutoDetectProxyMode)); |
| 312 | 312 |
| 313 ConfigurationPolicyPrefStore store(&provider); | 313 ConfigurationPolicyPrefStore store(&provider); |
| 314 VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_AUTO_DETECT); | 314 VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_AUTO_DETECT); |
| 315 } | 315 } |
| 316 | 316 |
| 317 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectPac) { | 317 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectPac) { |
| 318 MockConfigurationPolicyProvider provider; | 318 MockConfigurationPolicyProvider provider; |
| 319 provider.AddPolicy(kPolicyProxyPacUrl, | 319 provider.AddPolicy(kPolicyProxyPacUrl, |
| 320 Value::CreateStringValue("http://short.org/proxy.pac")); | 320 Value::CreateStringValue("http://short.org/proxy.pac")); |
| 321 provider.AddPolicy( | 321 provider.AddPolicy( |
| 322 kPolicyProxyMode, | 322 kPolicyProxyServerMode, |
| 323 Value::CreateIntegerValue(kPolicyManuallyConfiguredProxyMode)); | 323 Value::CreateIntegerValue(kPolicyManuallyConfiguredProxyMode)); |
| 324 | 324 |
| 325 ConfigurationPolicyPrefStore store(&provider); | 325 ConfigurationPolicyPrefStore store(&provider); |
| 326 VerifyProxyPrefs( | 326 VerifyProxyPrefs( |
| 327 store, "", "http://short.org/proxy.pac", "", ProxyPrefs::MODE_PAC_SCRIPT); | 327 store, "", "http://short.org/proxy.pac", "", ProxyPrefs::MODE_PAC_SCRIPT); |
| 328 } | 328 } |
| 329 | 329 |
| 330 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { | 330 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { |
| 331 MockConfigurationPolicyProvider provider; | 331 MockConfigurationPolicyProvider provider; |
| 332 provider.AddPolicy(kPolicyProxyMode, | 332 provider.AddPolicy(kPolicyProxyServerMode, |
| 333 Value::CreateIntegerValue(kPolicyUseSystemProxyMode)); | 333 Value::CreateIntegerValue(kPolicyUseSystemProxyMode)); |
| 334 | 334 |
| 335 ConfigurationPolicyPrefStore store(&provider); | 335 ConfigurationPolicyPrefStore store(&provider); |
| 336 VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_SYSTEM); | 336 VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_SYSTEM); |
| 337 } | 337 } |
| 338 | 338 |
| 339 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) { | 339 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) { |
| 340 for (int i = 0; i < MODE_COUNT; ++i) { | 340 for (int i = 0; i < MODE_COUNT; ++i) { |
| 341 MockConfigurationPolicyProvider provider; | 341 MockConfigurationPolicyProvider provider; |
| 342 provider.AddPolicy(kPolicyProxyMode, Value::CreateIntegerValue(i)); | 342 provider.AddPolicy(kPolicyProxyServerMode, Value::CreateIntegerValue(i)); |
| 343 // No mode expects all three parameters being set. | 343 // No mode expects all three parameters being set. |
| 344 provider.AddPolicy(kPolicyProxyPacUrl, | 344 provider.AddPolicy(kPolicyProxyPacUrl, |
| 345 Value::CreateStringValue("http://short.org/proxy.pac")); | 345 Value::CreateStringValue("http://short.org/proxy.pac")); |
| 346 provider.AddPolicy(kPolicyProxyBypassList, | 346 provider.AddPolicy(kPolicyProxyBypassList, |
| 347 Value::CreateStringValue( | 347 Value::CreateStringValue( |
| 348 "http://chromium.org/override")); | 348 "http://chromium.org/override")); |
| 349 provider.AddPolicy(kPolicyProxyServer, | 349 provider.AddPolicy(kPolicyProxyServer, |
| 350 Value::CreateStringValue("chromium.org")); | 350 Value::CreateStringValue("chromium.org")); |
| 351 | 351 |
| 352 ConfigurationPolicyPrefStore store(&provider); | 352 ConfigurationPolicyPrefStore store(&provider); |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 | 598 |
| 599 PrefStoreObserverMock observer_; | 599 PrefStoreObserverMock observer_; |
| 600 }; | 600 }; |
| 601 | 601 |
| 602 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) { | 602 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) { |
| 603 Value* value = NULL; | 603 Value* value = NULL; |
| 604 EXPECT_EQ(PrefStore::READ_NO_VALUE, | 604 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
| 605 store_.GetValue(prefs::kHomePage, NULL)); | 605 store_.GetValue(prefs::kHomePage, NULL)); |
| 606 | 606 |
| 607 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); | 607 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); |
| 608 provider_.AddPolicy(kPolicyHomePage, | 608 provider_.AddPolicy(kPolicyHomepageLocation, |
| 609 Value::CreateStringValue("http://www.chromium.org")); | 609 Value::CreateStringValue("http://www.chromium.org")); |
| 610 store_.OnUpdatePolicy(); | 610 store_.OnUpdatePolicy(); |
| 611 Mock::VerifyAndClearExpectations(&observer_); | 611 Mock::VerifyAndClearExpectations(&observer_); |
| 612 EXPECT_EQ(PrefStore::READ_OK, | 612 EXPECT_EQ(PrefStore::READ_OK, |
| 613 store_.GetValue(prefs::kHomePage, &value)); | 613 store_.GetValue(prefs::kHomePage, &value)); |
| 614 EXPECT_TRUE(StringValue("http://www.chromium.org").Equals(value)); | 614 EXPECT_TRUE(StringValue("http://www.chromium.org").Equals(value)); |
| 615 | 615 |
| 616 EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0); | 616 EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0); |
| 617 store_.OnUpdatePolicy(); | 617 store_.OnUpdatePolicy(); |
| 618 Mock::VerifyAndClearExpectations(&observer_); | 618 Mock::VerifyAndClearExpectations(&observer_); |
| 619 | 619 |
| 620 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); | 620 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); |
| 621 provider_.RemovePolicy(kPolicyHomePage); | 621 provider_.RemovePolicy(kPolicyHomepageLocation); |
| 622 store_.OnUpdatePolicy(); | 622 store_.OnUpdatePolicy(); |
| 623 Mock::VerifyAndClearExpectations(&observer_); | 623 Mock::VerifyAndClearExpectations(&observer_); |
| 624 EXPECT_EQ(PrefStore::READ_NO_VALUE, | 624 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
| 625 store_.GetValue(prefs::kHomePage, NULL)); | 625 store_.GetValue(prefs::kHomePage, NULL)); |
| 626 } | 626 } |
| 627 | 627 |
| 628 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) { | 628 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) { |
| 629 EXPECT_FALSE(store_.IsInitializationComplete()); | 629 EXPECT_FALSE(store_.IsInitializationComplete()); |
| 630 | 630 |
| 631 EXPECT_CALL(observer_, OnInitializationCompleted()).Times(1); | 631 EXPECT_CALL(observer_, OnInitializationCompleted()).Times(1); |
| 632 | 632 |
| 633 provider_.SetInitializationComplete(true); | 633 provider_.SetInitializationComplete(true); |
| 634 EXPECT_FALSE(store_.IsInitializationComplete()); | 634 EXPECT_FALSE(store_.IsInitializationComplete()); |
| 635 | 635 |
| 636 store_.OnUpdatePolicy(); | 636 store_.OnUpdatePolicy(); |
| 637 Mock::VerifyAndClearExpectations(&observer_); | 637 Mock::VerifyAndClearExpectations(&observer_); |
| 638 EXPECT_TRUE(store_.IsInitializationComplete()); | 638 EXPECT_TRUE(store_.IsInitializationComplete()); |
| 639 } | 639 } |
| 640 | 640 |
| 641 } // namespace policy | 641 } // namespace policy |
| OLD | NEW |