| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/policy/configuration_policy_handler.h" | 5 #include "chrome/browser/policy/configuration_policy_handler.h" |
| 6 #include "chrome/browser/policy/policy_error_map.h" | 6 #include "chrome/browser/policy/policy_error_map.h" |
| 7 #include "chrome/browser/policy/policy_map.h" | 7 #include "chrome/browser/policy/policy_map.h" |
| 8 #include "chrome/browser/prefs/pref_value_map.h" | 8 #include "chrome/browser/prefs/pref_value_map.h" |
| 9 #include "chrome/common/pref_names.h" | 9 #include "chrome/common/pref_names.h" |
| 10 #include "policy/policy_constants.h" | 10 #include "policy/policy_constants.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 namespace policy { | 13 namespace policy { |
| 14 | 14 |
| 15 TEST(ExtensionListPolicyHandlerTest, CheckPolicySettings) { | 15 TEST(ExtensionListPolicyHandlerTest, CheckPolicySettings) { |
| 16 base::ListValue list; | 16 base::ListValue list; |
| 17 PolicyMap policy_map; | 17 PolicyMap policy_map; |
| 18 PolicyErrorMap errors; | 18 PolicyErrorMap errors; |
| 19 ExtensionListPolicyHandler handler(key::kExtensionInstallBlacklist, | 19 ExtensionListPolicyHandler handler(key::kExtensionInstallBlacklist, |
| 20 prefs::kExtensionInstallDenyList, | 20 prefs::kExtensionInstallDenyList, |
| 21 true); | 21 true); |
| 22 | 22 |
| 23 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, | 23 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, |
| 24 POLICY_SCOPE_USER, list.DeepCopy()); | 24 POLICY_SCOPE_USER, list.DeepCopy()); |
| 25 errors.Clear(); |
| 25 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 26 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 26 EXPECT_TRUE(errors.empty()); | 27 EXPECT_TRUE(errors.empty()); |
| 27 | 28 |
| 28 list.Append(Value::CreateStringValue("abcdefghijklmnopabcdefghijklmnop")); | 29 list.Append(Value::CreateStringValue("abcdefghijklmnopabcdefghijklmnop")); |
| 29 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, | 30 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, |
| 30 POLICY_SCOPE_USER, list.DeepCopy()); | 31 POLICY_SCOPE_USER, list.DeepCopy()); |
| 32 errors.Clear(); |
| 31 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 33 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 32 EXPECT_TRUE(errors.empty()); | 34 EXPECT_TRUE(errors.empty()); |
| 33 | 35 |
| 34 list.Append(Value::CreateStringValue("*")); | 36 list.Append(Value::CreateStringValue("*")); |
| 35 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, | 37 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, |
| 36 POLICY_SCOPE_USER, list.DeepCopy()); | 38 POLICY_SCOPE_USER, list.DeepCopy()); |
| 39 errors.Clear(); |
| 37 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 40 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 38 EXPECT_TRUE(errors.empty()); | 41 EXPECT_TRUE(errors.empty()); |
| 39 | 42 |
| 40 list.Append(Value::CreateStringValue("invalid")); | 43 list.Append(Value::CreateStringValue("invalid")); |
| 41 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, | 44 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, |
| 42 POLICY_SCOPE_USER, list.DeepCopy()); | 45 POLICY_SCOPE_USER, list.DeepCopy()); |
| 46 errors.Clear(); |
| 43 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); | 47 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 44 EXPECT_FALSE(errors.empty()); | 48 EXPECT_FALSE(errors.empty()); |
| 45 EXPECT_FALSE(errors.GetErrors(key::kExtensionInstallBlacklist).empty()); | 49 EXPECT_FALSE(errors.GetErrors(key::kExtensionInstallBlacklist).empty()); |
| 46 } | 50 } |
| 47 | 51 |
| 48 TEST(ExtensionListPolicyHandlerTest, ApplyPolicySettings) { | 52 TEST(ExtensionListPolicyHandlerTest, ApplyPolicySettings) { |
| 49 base::ListValue list; | 53 base::ListValue list; |
| 50 PolicyMap policy_map; | 54 PolicyMap policy_map; |
| 51 PrefValueMap prefs; | 55 PrefValueMap prefs; |
| 52 base::Value* value = NULL; | 56 base::Value* value = NULL; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 65 TEST(ExtensionURLPatternListPolicyHandlerTest, CheckPolicySettings) { | 69 TEST(ExtensionURLPatternListPolicyHandlerTest, CheckPolicySettings) { |
| 66 base::ListValue list; | 70 base::ListValue list; |
| 67 PolicyMap policy_map; | 71 PolicyMap policy_map; |
| 68 PolicyErrorMap errors; | 72 PolicyErrorMap errors; |
| 69 ExtensionURLPatternListPolicyHandler handler( | 73 ExtensionURLPatternListPolicyHandler handler( |
| 70 key::kExtensionInstallSources, | 74 key::kExtensionInstallSources, |
| 71 prefs::kExtensionAllowedInstallSites); | 75 prefs::kExtensionAllowedInstallSites); |
| 72 | 76 |
| 73 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, | 77 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, |
| 74 POLICY_SCOPE_USER, list.DeepCopy()); | 78 POLICY_SCOPE_USER, list.DeepCopy()); |
| 79 errors.Clear(); |
| 75 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 80 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 76 EXPECT_TRUE(errors.empty()); | 81 EXPECT_TRUE(errors.empty()); |
| 77 | 82 |
| 78 list.Append(Value::CreateStringValue("http://*.google.com/*")); | 83 list.Append(Value::CreateStringValue("http://*.google.com/*")); |
| 79 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, | 84 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, |
| 80 POLICY_SCOPE_USER, list.DeepCopy()); | 85 POLICY_SCOPE_USER, list.DeepCopy()); |
| 86 errors.Clear(); |
| 81 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 87 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 82 EXPECT_TRUE(errors.empty()); | 88 EXPECT_TRUE(errors.empty()); |
| 83 | 89 |
| 84 list.Append(Value::CreateStringValue("<all_urls>")); | 90 list.Append(Value::CreateStringValue("<all_urls>")); |
| 85 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, | 91 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, |
| 86 POLICY_SCOPE_USER, list.DeepCopy()); | 92 POLICY_SCOPE_USER, list.DeepCopy()); |
| 93 errors.Clear(); |
| 87 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 94 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 88 EXPECT_TRUE(errors.empty()); | 95 EXPECT_TRUE(errors.empty()); |
| 89 | 96 |
| 90 list.Append(Value::CreateStringValue("invalid")); | 97 list.Append(Value::CreateStringValue("invalid")); |
| 91 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, | 98 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, |
| 92 POLICY_SCOPE_USER, list.DeepCopy()); | 99 POLICY_SCOPE_USER, list.DeepCopy()); |
| 100 errors.Clear(); |
| 93 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); | 101 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 94 EXPECT_FALSE(errors.empty()); | 102 EXPECT_FALSE(errors.empty()); |
| 95 EXPECT_FALSE(errors.GetErrors(key::kExtensionInstallSources).empty()); | 103 EXPECT_FALSE(errors.GetErrors(key::kExtensionInstallSources).empty()); |
| 96 | 104 |
| 97 // URLPattern syntax has a different way to express 'all urls'. Though '*' | 105 // URLPattern syntax has a different way to express 'all urls'. Though '*' |
| 98 // would be compatible today, it would be brittle, so we disallow. | 106 // would be compatible today, it would be brittle, so we disallow. |
| 99 list.Append(Value::CreateStringValue("*")); | 107 list.Append(Value::CreateStringValue("*")); |
| 100 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, | 108 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, |
| 101 POLICY_SCOPE_USER, list.DeepCopy()); | 109 POLICY_SCOPE_USER, list.DeepCopy()); |
| 110 errors.Clear(); |
| 102 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); | 111 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 103 EXPECT_FALSE(errors.empty()); | 112 EXPECT_FALSE(errors.empty()); |
| 104 EXPECT_FALSE(errors.GetErrors(key::kExtensionInstallSources).empty()); | 113 EXPECT_FALSE(errors.GetErrors(key::kExtensionInstallSources).empty()); |
| 105 } | 114 } |
| 106 | 115 |
| 107 TEST(ExtensionURLPatternListPolicyHandlerTest, ApplyPolicySettings) { | 116 TEST(ExtensionURLPatternListPolicyHandlerTest, ApplyPolicySettings) { |
| 108 base::ListValue list; | 117 base::ListValue list; |
| 109 PolicyMap policy_map; | 118 PolicyMap policy_map; |
| 110 PrefValueMap prefs; | 119 PrefValueMap prefs; |
| 111 base::Value* value = NULL; | 120 base::Value* value = NULL; |
| 112 ExtensionURLPatternListPolicyHandler handler( | 121 ExtensionURLPatternListPolicyHandler handler( |
| 113 key::kExtensionInstallSources, | 122 key::kExtensionInstallSources, |
| 114 prefs::kExtensionAllowedInstallSites); | 123 prefs::kExtensionAllowedInstallSites); |
| 115 | 124 |
| 116 list.Append(Value::CreateStringValue("https://corp.monkey.net/*")); | 125 list.Append(Value::CreateStringValue("https://corp.monkey.net/*")); |
| 117 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, | 126 policy_map.Set(key::kExtensionInstallSources, POLICY_LEVEL_MANDATORY, |
| 118 POLICY_SCOPE_USER, list.DeepCopy()); | 127 POLICY_SCOPE_USER, list.DeepCopy()); |
| 119 handler.ApplyPolicySettings(policy_map, &prefs); | 128 handler.ApplyPolicySettings(policy_map, &prefs); |
| 120 EXPECT_TRUE(prefs.GetValue(prefs::kExtensionAllowedInstallSites, &value)); | 129 ASSERT_TRUE(prefs.GetValue(prefs::kExtensionAllowedInstallSites, &value)); |
| 121 EXPECT_TRUE(base::Value::Equals(&list, value)); | 130 EXPECT_TRUE(base::Value::Equals(&list, value)); |
| 122 } | 131 } |
| 123 | 132 |
| 133 TEST(ClearSiteDataOnExitPolicyHandlerTest, CheckPolicySettings) { |
| 134 ClearSiteDataOnExitPolicyHandler handler; |
| 135 PolicyMap policy_map; |
| 136 PolicyErrorMap errors; |
| 137 |
| 138 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 139 EXPECT_TRUE(errors.empty()); |
| 140 |
| 141 policy_map.Set(key::kClearSiteDataOnExit, POLICY_LEVEL_MANDATORY, |
| 142 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
| 143 errors.Clear(); |
| 144 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 145 EXPECT_TRUE(errors.empty()); |
| 146 |
| 147 policy_map.Set(key::kDefaultCookiesSetting, POLICY_LEVEL_MANDATORY, |
| 148 POLICY_SCOPE_USER, |
| 149 base::Value::CreateIntegerValue(CONTENT_SETTING_ALLOW)); |
| 150 errors.Clear(); |
| 151 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 152 EXPECT_FALSE(errors.empty()); |
| 153 EXPECT_FALSE(errors.GetErrors(key::kDefaultCookiesSetting).empty()); |
| 154 } |
| 155 |
| 156 TEST(ClearSiteDataOnExitPolicyHandlerTest, ApplyPolicySettings) { |
| 157 ClearSiteDataOnExitPolicyHandler handler; |
| 158 PolicyMap policy_map; |
| 159 PrefValueMap prefs; |
| 160 const base::Value* val = NULL; |
| 161 |
| 162 handler.ApplyPolicySettings(policy_map, &prefs); |
| 163 EXPECT_FALSE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); |
| 164 |
| 165 policy_map.Set(key::kClearSiteDataOnExit, POLICY_LEVEL_MANDATORY, |
| 166 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
| 167 prefs.Clear(); |
| 168 handler.ApplyPolicySettings(policy_map, &prefs); |
| 169 ASSERT_TRUE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); |
| 170 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_SESSION_ONLY).Equals(val)); |
| 171 |
| 172 policy_map.Set(key::kDefaultCookiesSetting, POLICY_LEVEL_MANDATORY, |
| 173 POLICY_SCOPE_USER, |
| 174 base::Value::CreateIntegerValue(CONTENT_SETTING_ALLOW)); |
| 175 prefs.Clear(); |
| 176 handler.ApplyPolicySettings(policy_map, &prefs); |
| 177 ASSERT_TRUE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); |
| 178 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_SESSION_ONLY).Equals(val)); |
| 179 |
| 180 policy_map.Clear(); |
| 181 prefs.Clear(); |
| 182 handler.ApplyPolicySettings(policy_map, &prefs); |
| 183 EXPECT_FALSE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); |
| 184 } |
| 185 |
| 124 } // namespace policy | 186 } // namespace policy |
| OLD | NEW |