| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/policy/core/browser/proxy_policy_handler.h" | 5 #include "components/policy/core/browser/proxy_policy_handler.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 79 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 80 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 80 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 81 "http://chromium.org/override"), | 81 "http://chromium.org/override"), |
| 82 nullptr); | 82 nullptr); |
| 83 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 83 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 84 POLICY_SOURCE_CLOUD, | 84 POLICY_SOURCE_CLOUD, |
| 85 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 85 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
| 86 policy.Set( | 86 policy.Set( |
| 87 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 87 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 88 POLICY_SOURCE_CLOUD, | 88 POLICY_SOURCE_CLOUD, |
| 89 base::MakeUnique<base::FundamentalValue>( | 89 base::MakeUnique<base::Value>( |
| 90 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE), | 90 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE), |
| 91 nullptr); | 91 nullptr); |
| 92 UpdateProviderPolicy(policy); | 92 UpdateProviderPolicy(policy); |
| 93 | 93 |
| 94 VerifyProxyPrefs("chromium.org", | 94 VerifyProxyPrefs("chromium.org", |
| 95 std::string(), | 95 std::string(), |
| 96 "http://chromium.org/override", | 96 "http://chromium.org/override", |
| 97 ProxyPrefs::MODE_FIXED_SERVERS); | 97 ProxyPrefs::MODE_FIXED_SERVERS); |
| 98 } | 98 } |
| 99 | 99 |
| 100 TEST_F(ProxyPolicyHandlerTest, ManualOptionsReversedApplyOrder) { | 100 TEST_F(ProxyPolicyHandlerTest, ManualOptionsReversedApplyOrder) { |
| 101 PolicyMap policy; | 101 PolicyMap policy; |
| 102 policy.Set( | 102 policy.Set( |
| 103 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 103 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 104 POLICY_SOURCE_CLOUD, | 104 POLICY_SOURCE_CLOUD, |
| 105 base::MakeUnique<base::FundamentalValue>( | 105 base::MakeUnique<base::Value>( |
| 106 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE), | 106 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE), |
| 107 nullptr); | 107 nullptr); |
| 108 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 108 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 109 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 109 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 110 "http://chromium.org/override"), | 110 "http://chromium.org/override"), |
| 111 nullptr); | 111 nullptr); |
| 112 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 112 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 113 POLICY_SOURCE_CLOUD, | 113 POLICY_SOURCE_CLOUD, |
| 114 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 114 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
| 115 UpdateProviderPolicy(policy); | 115 UpdateProviderPolicy(policy); |
| 116 | 116 |
| 117 VerifyProxyPrefs("chromium.org", | 117 VerifyProxyPrefs("chromium.org", |
| 118 std::string(), | 118 std::string(), |
| 119 "http://chromium.org/override", | 119 "http://chromium.org/override", |
| 120 ProxyPrefs::MODE_FIXED_SERVERS); | 120 ProxyPrefs::MODE_FIXED_SERVERS); |
| 121 } | 121 } |
| 122 | 122 |
| 123 TEST_F(ProxyPolicyHandlerTest, ManualOptionsInvalid) { | 123 TEST_F(ProxyPolicyHandlerTest, ManualOptionsInvalid) { |
| 124 PolicyMap policy; | 124 PolicyMap policy; |
| 125 policy.Set( | 125 policy.Set( |
| 126 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 126 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 127 POLICY_SOURCE_CLOUD, | 127 POLICY_SOURCE_CLOUD, |
| 128 base::MakeUnique<base::FundamentalValue>( | 128 base::MakeUnique<base::Value>( |
| 129 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE), | 129 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE), |
| 130 nullptr); | 130 nullptr); |
| 131 UpdateProviderPolicy(policy); | 131 UpdateProviderPolicy(policy); |
| 132 | 132 |
| 133 const base::Value* value = NULL; | 133 const base::Value* value = NULL; |
| 134 EXPECT_FALSE(store_->GetValue(proxy_config::prefs::kProxy, &value)); | 134 EXPECT_FALSE(store_->GetValue(proxy_config::prefs::kProxy, &value)); |
| 135 } | 135 } |
| 136 | 136 |
| 137 TEST_F(ProxyPolicyHandlerTest, NoProxyServerMode) { | 137 TEST_F(ProxyPolicyHandlerTest, NoProxyServerMode) { |
| 138 PolicyMap policy; | 138 PolicyMap policy; |
| 139 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 139 policy.Set( |
| 140 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>( | 140 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 141 ProxyPolicyHandler::PROXY_SERVER_MODE), | 141 POLICY_SOURCE_CLOUD, |
| 142 nullptr); | 142 base::MakeUnique<base::Value>(ProxyPolicyHandler::PROXY_SERVER_MODE), |
| 143 nullptr); |
| 143 UpdateProviderPolicy(policy); | 144 UpdateProviderPolicy(policy); |
| 144 VerifyProxyPrefs( | 145 VerifyProxyPrefs( |
| 145 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); | 146 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); |
| 146 } | 147 } |
| 147 | 148 |
| 148 TEST_F(ProxyPolicyHandlerTest, NoProxyModeName) { | 149 TEST_F(ProxyPolicyHandlerTest, NoProxyModeName) { |
| 149 PolicyMap policy; | 150 PolicyMap policy; |
| 150 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 151 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 151 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 152 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 152 ProxyPrefs::kDirectProxyModeName), | 153 ProxyPrefs::kDirectProxyModeName), |
| 153 nullptr); | 154 nullptr); |
| 154 UpdateProviderPolicy(policy); | 155 UpdateProviderPolicy(policy); |
| 155 VerifyProxyPrefs( | 156 VerifyProxyPrefs( |
| 156 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); | 157 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); |
| 157 } | 158 } |
| 158 | 159 |
| 159 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyServerMode) { | 160 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyServerMode) { |
| 160 PolicyMap policy; | 161 PolicyMap policy; |
| 161 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 162 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 162 POLICY_SOURCE_CLOUD, | 163 POLICY_SOURCE_CLOUD, |
| 163 base::MakeUnique<base::FundamentalValue>( | 164 base::MakeUnique<base::Value>( |
| 164 ProxyPolicyHandler::PROXY_AUTO_DETECT_PROXY_SERVER_MODE), | 165 ProxyPolicyHandler::PROXY_AUTO_DETECT_PROXY_SERVER_MODE), |
| 165 nullptr); | 166 nullptr); |
| 166 UpdateProviderPolicy(policy); | 167 UpdateProviderPolicy(policy); |
| 167 VerifyProxyPrefs(std::string(), | 168 VerifyProxyPrefs(std::string(), |
| 168 std::string(), | 169 std::string(), |
| 169 std::string(), | 170 std::string(), |
| 170 ProxyPrefs::MODE_AUTO_DETECT); | 171 ProxyPrefs::MODE_AUTO_DETECT); |
| 171 } | 172 } |
| 172 | 173 |
| 173 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyModeName) { | 174 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyModeName) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 VerifyProxyPrefs(std::string(), | 232 VerifyProxyPrefs(std::string(), |
| 232 "http://short.org/proxy.pac", | 233 "http://short.org/proxy.pac", |
| 233 std::string(), | 234 std::string(), |
| 234 ProxyPrefs::MODE_PAC_SCRIPT); | 235 ProxyPrefs::MODE_PAC_SCRIPT); |
| 235 } | 236 } |
| 236 | 237 |
| 237 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyServerMode) { | 238 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyServerMode) { |
| 238 PolicyMap policy; | 239 PolicyMap policy; |
| 239 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 240 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 240 POLICY_SOURCE_CLOUD, | 241 POLICY_SOURCE_CLOUD, |
| 241 base::MakeUnique<base::FundamentalValue>( | 242 base::MakeUnique<base::Value>( |
| 242 ProxyPolicyHandler::PROXY_USE_SYSTEM_PROXY_SERVER_MODE), | 243 ProxyPolicyHandler::PROXY_USE_SYSTEM_PROXY_SERVER_MODE), |
| 243 nullptr); | 244 nullptr); |
| 244 UpdateProviderPolicy(policy); | 245 UpdateProviderPolicy(policy); |
| 245 VerifyProxyPrefs( | 246 VerifyProxyPrefs( |
| 246 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); | 247 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); |
| 247 } | 248 } |
| 248 | 249 |
| 249 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyMode) { | 250 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyMode) { |
| 250 PolicyMap policy; | 251 PolicyMap policy; |
| 251 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 252 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 252 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 253 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 253 ProxyPrefs::kSystemProxyModeName), | 254 ProxyPrefs::kSystemProxyModeName), |
| 254 nullptr); | 255 nullptr); |
| 255 UpdateProviderPolicy(policy); | 256 UpdateProviderPolicy(policy); |
| 256 VerifyProxyPrefs( | 257 VerifyProxyPrefs( |
| 257 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); | 258 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); |
| 258 } | 259 } |
| 259 | 260 |
| 260 TEST_F(ProxyPolicyHandlerTest, | 261 TEST_F(ProxyPolicyHandlerTest, |
| 261 ProxyModeOverridesProxyServerMode) { | 262 ProxyModeOverridesProxyServerMode) { |
| 262 PolicyMap policy; | 263 PolicyMap policy; |
| 263 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 264 policy.Set( |
| 264 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>( | 265 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 265 ProxyPolicyHandler::PROXY_SERVER_MODE), | 266 POLICY_SOURCE_CLOUD, |
| 266 nullptr); | 267 base::MakeUnique<base::Value>(ProxyPolicyHandler::PROXY_SERVER_MODE), |
| 268 nullptr); |
| 267 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 269 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 268 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 270 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 269 ProxyPrefs::kAutoDetectProxyModeName), | 271 ProxyPrefs::kAutoDetectProxyModeName), |
| 270 nullptr); | 272 nullptr); |
| 271 UpdateProviderPolicy(policy); | 273 UpdateProviderPolicy(policy); |
| 272 VerifyProxyPrefs(std::string(), | 274 VerifyProxyPrefs(std::string(), |
| 273 std::string(), | 275 std::string(), |
| 274 std::string(), | 276 std::string(), |
| 275 ProxyPrefs::MODE_AUTO_DETECT); | 277 ProxyPrefs::MODE_AUTO_DETECT); |
| 276 } | 278 } |
| 277 | 279 |
| 278 TEST_F(ProxyPolicyHandlerTest, ProxyInvalid) { | 280 TEST_F(ProxyPolicyHandlerTest, ProxyInvalid) { |
| 279 // No mode expects all three parameters being set. | 281 // No mode expects all three parameters being set. |
| 280 PolicyMap policy; | 282 PolicyMap policy; |
| 281 policy.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 283 policy.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 282 POLICY_SOURCE_CLOUD, | 284 POLICY_SOURCE_CLOUD, |
| 283 base::MakeUnique<base::StringValue>("http://short.org/proxy.pac"), | 285 base::MakeUnique<base::StringValue>("http://short.org/proxy.pac"), |
| 284 nullptr); | 286 nullptr); |
| 285 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 287 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 286 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 288 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 287 "http://chromium.org/override"), | 289 "http://chromium.org/override"), |
| 288 nullptr); | 290 nullptr); |
| 289 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 291 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 290 POLICY_SOURCE_CLOUD, | 292 POLICY_SOURCE_CLOUD, |
| 291 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 293 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
| 292 for (int i = 0; i < ProxyPolicyHandler::MODE_COUNT; ++i) { | 294 for (int i = 0; i < ProxyPolicyHandler::MODE_COUNT; ++i) { |
| 293 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 295 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 294 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(i), | 296 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(i), nullptr); |
| 295 nullptr); | |
| 296 UpdateProviderPolicy(policy); | 297 UpdateProviderPolicy(policy); |
| 297 const base::Value* value = nullptr; | 298 const base::Value* value = nullptr; |
| 298 EXPECT_FALSE(store_->GetValue(proxy_config::prefs::kProxy, &value)); | 299 EXPECT_FALSE(store_->GetValue(proxy_config::prefs::kProxy, &value)); |
| 299 } | 300 } |
| 300 } | 301 } |
| 301 | 302 |
| 302 } // namespace policy | 303 } // namespace policy |
| OLD | NEW |