| Index: chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| index 5f56df179877f3d82b18435c634eb828f66cb68e..14bba3ecb8feb192f69b84ba01a09f37f9fe6c88 100644
|
| --- a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| +++ b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| @@ -6,6 +6,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "chrome/browser/policy/configuration_policy_pref_store.h"
|
| #include "chrome/browser/policy/mock_configuration_policy_provider.h"
|
| +#include "chrome/browser/prefs/incognito_mode_availability_prefs.h"
|
| #include "chrome/browser/prefs/proxy_config_dictionary.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/common/pref_store_observer_mock.h"
|
| @@ -202,8 +203,6 @@ INSTANTIATE_TEST_CASE_P(
|
| prefs::kWebKitJavascriptEnabled),
|
| TypeAndName(kPolicyIncognitoEnabled,
|
| prefs::kIncognitoEnabled),
|
| - TypeAndName(kPolicyIncognitoForced,
|
| - prefs::kIncognitoForced),
|
| TypeAndName(kPolicyRemoteAccessClientFirewallTraversal,
|
| prefs::kRemoteAccessClientFirewallTraversal),
|
| TypeAndName(kPolicyRemoteAccessHostFirewallTraversal,
|
| @@ -697,6 +696,78 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) {
|
| store->GetValue(prefs::kDefaultSearchProviderEncodings, NULL));
|
| }
|
|
|
| +// Tests Incognito mode availability preference setting.
|
| +class ConfigurationPolicyPrefStoreIncognitoModeTest : public testing::Test {
|
| + protected:
|
| + void SetPolicies(bool incognito_enabled, int availability) {
|
| + provider_.AddPolicy(kPolicyIncognitoEnabled,
|
| + Value::CreateBooleanValue(incognito_enabled));
|
| + provider_.AddPolicy(kPolicyIncognitoModeAvailability,
|
| + Value::CreateIntegerValue(availability));
|
| + store_ = new ConfigurationPolicyPrefStore(&provider_);
|
| + }
|
| +
|
| + void VerifyValues(
|
| + bool incognito_enabled,
|
| + IncognitoModeAvailabilityPrefs::IncognitoModeAvailability availability) {
|
| + const Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_->GetValue(prefs::kIncognitoEnabled, &value));
|
| + EXPECT_TRUE(Value::CreateBooleanValue(incognito_enabled)->Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_->GetValue(prefs::kIncognitoModeAvailability, &value));
|
| + EXPECT_TRUE(Value::CreateIntegerValue(availability)->Equals(value));
|
| + }
|
| + MockConfigurationPolicyProvider provider_;
|
| + scoped_refptr<ConfigurationPolicyPrefStore> store_;
|
| +};
|
| +
|
| +// The following three testcases verify that if the obsolete IncognitoEnabled
|
| +// policy is set to true, the IncognitoModeAvailability values should be copied
|
| +// from policy to pref "as is".
|
| +TEST_F(ConfigurationPolicyPrefStoreIncognitoModeTest,
|
| + DefaultObsoletePolicyAndIncognitoEnabled) {
|
| + SetPolicies(true, IncognitoModeAvailabilityPrefs::ENABLED);
|
| + VerifyValues(true, IncognitoModeAvailabilityPrefs::ENABLED);
|
| +}
|
| +
|
| +TEST_F(ConfigurationPolicyPrefStoreIncognitoModeTest,
|
| + DefaultObsoletePolicyAndIncognitoDisabled) {
|
| + SetPolicies(true, IncognitoModeAvailabilityPrefs::DISABLED);
|
| + VerifyValues(true, IncognitoModeAvailabilityPrefs::DISABLED);
|
| +}
|
| +
|
| +TEST_F(ConfigurationPolicyPrefStoreIncognitoModeTest,
|
| + DefaultObsoletePolicyAndIncognitoForced) {
|
| + SetPolicies(true, IncognitoModeAvailabilityPrefs::FORCED);
|
| + VerifyValues(true, IncognitoModeAvailabilityPrefs::FORCED);
|
| +}
|
| +
|
| +// Checks that if the obsolete IncognitoEnabled policy is set to false,
|
| +// IncognitoModeAvailability is overridden to DISABLED only in case it's
|
| +// originally set to ENABLED.
|
| +TEST_F(ConfigurationPolicyPrefStoreIncognitoModeTest,
|
| + ObsoletePolicyDisablesIncognitoEnabledChangesToDisabled) {
|
| + // kIncognitoEnabled == false overrides kIncognitoModeAvailability.
|
| + SetPolicies(false, IncognitoModeAvailabilityPrefs::ENABLED);
|
| + VerifyValues(false, IncognitoModeAvailabilityPrefs::DISABLED);
|
| +}
|
| +
|
| +// DISABLED? - hence, no change is expected.
|
| +TEST_F(ConfigurationPolicyPrefStoreIncognitoModeTest,
|
| + ObsoletePolicyDisablesIncognitoNoChangeWhenDisabled) {
|
| + SetPolicies(false, IncognitoModeAvailabilityPrefs::DISABLED);
|
| + VerifyValues(false, IncognitoModeAvailabilityPrefs::DISABLED);
|
| +}
|
| +
|
| +// FORCED? - ignore the obsolete policy.
|
| +TEST_F(ConfigurationPolicyPrefStoreIncognitoModeTest,
|
| + ObsoletePolicyDisablesIncognitoNoChangeWhenForced) {
|
| + SetPolicies(false, IncognitoModeAvailabilityPrefs::FORCED);
|
| + VerifyValues(false, IncognitoModeAvailabilityPrefs::FORCED);
|
| +}
|
| +
|
| // Test cases for the Sync policy setting.
|
| class ConfigurationPolicyPrefStoreSyncTest
|
| : public ConfigurationPolicyPrefStoreTestBase<testing::Test> {
|
|
|