| 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(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 140 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>( | 140 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>( |
| 141 ProxyPolicyHandler::PROXY_SERVER_MODE), | 141 ProxyPolicyHandler::PROXY_SERVER_MODE), |
| 142 nullptr); | 142 nullptr); |
| 143 UpdateProviderPolicy(policy); | 143 UpdateProviderPolicy(policy); |
| 144 VerifyProxyPrefs( | 144 VerifyProxyPrefs( |
| 145 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); | 145 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); |
| 146 } | 146 } |
| 147 | 147 |
| 148 TEST_F(ProxyPolicyHandlerTest, NoProxyModeName) { | 148 TEST_F(ProxyPolicyHandlerTest, NoProxyModeName) { |
| 149 PolicyMap policy; | 149 PolicyMap policy; |
| 150 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 150 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 151 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 151 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 152 ProxyPrefs::kDirectProxyModeName), | 152 ProxyPrefs::kDirectProxyModeName), |
| 153 nullptr); | 153 nullptr); |
| 154 UpdateProviderPolicy(policy); | 154 UpdateProviderPolicy(policy); |
| 155 VerifyProxyPrefs( | 155 VerifyProxyPrefs( |
| 156 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); | 156 std::string(), std::string(), std::string(), ProxyPrefs::MODE_DIRECT); |
| 157 } | 157 } |
| 158 | 158 |
| 159 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyServerMode) { | 159 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyServerMode) { |
| 160 PolicyMap policy; | 160 PolicyMap policy; |
| 161 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 161 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 162 POLICY_SOURCE_CLOUD, | 162 POLICY_SOURCE_CLOUD, |
| 163 base::MakeUnique<base::FundamentalValue>( | 163 base::MakeUnique<base::Value>( |
| 164 ProxyPolicyHandler::PROXY_AUTO_DETECT_PROXY_SERVER_MODE), | 164 ProxyPolicyHandler::PROXY_AUTO_DETECT_PROXY_SERVER_MODE), |
| 165 nullptr); | 165 nullptr); |
| 166 UpdateProviderPolicy(policy); | 166 UpdateProviderPolicy(policy); |
| 167 VerifyProxyPrefs(std::string(), | 167 VerifyProxyPrefs(std::string(), |
| 168 std::string(), | 168 std::string(), |
| 169 std::string(), | 169 std::string(), |
| 170 ProxyPrefs::MODE_AUTO_DETECT); | 170 ProxyPrefs::MODE_AUTO_DETECT); |
| 171 } | 171 } |
| 172 | 172 |
| 173 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyModeName) { | 173 TEST_F(ProxyPolicyHandlerTest, AutoDetectProxyModeName) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 VerifyProxyPrefs(std::string(), | 231 VerifyProxyPrefs(std::string(), |
| 232 "http://short.org/proxy.pac", | 232 "http://short.org/proxy.pac", |
| 233 std::string(), | 233 std::string(), |
| 234 ProxyPrefs::MODE_PAC_SCRIPT); | 234 ProxyPrefs::MODE_PAC_SCRIPT); |
| 235 } | 235 } |
| 236 | 236 |
| 237 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyServerMode) { | 237 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyServerMode) { |
| 238 PolicyMap policy; | 238 PolicyMap policy; |
| 239 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 239 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 240 POLICY_SOURCE_CLOUD, | 240 POLICY_SOURCE_CLOUD, |
| 241 base::MakeUnique<base::FundamentalValue>( | 241 base::MakeUnique<base::Value>( |
| 242 ProxyPolicyHandler::PROXY_USE_SYSTEM_PROXY_SERVER_MODE), | 242 ProxyPolicyHandler::PROXY_USE_SYSTEM_PROXY_SERVER_MODE), |
| 243 nullptr); | 243 nullptr); |
| 244 UpdateProviderPolicy(policy); | 244 UpdateProviderPolicy(policy); |
| 245 VerifyProxyPrefs( | 245 VerifyProxyPrefs( |
| 246 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); | 246 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); |
| 247 } | 247 } |
| 248 | 248 |
| 249 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyMode) { | 249 TEST_F(ProxyPolicyHandlerTest, UseSystemProxyMode) { |
| 250 PolicyMap policy; | 250 PolicyMap policy; |
| 251 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 251 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 252 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 252 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 253 ProxyPrefs::kSystemProxyModeName), | 253 ProxyPrefs::kSystemProxyModeName), |
| 254 nullptr); | 254 nullptr); |
| 255 UpdateProviderPolicy(policy); | 255 UpdateProviderPolicy(policy); |
| 256 VerifyProxyPrefs( | 256 VerifyProxyPrefs( |
| 257 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); | 257 std::string(), std::string(), std::string(), ProxyPrefs::MODE_SYSTEM); |
| 258 } | 258 } |
| 259 | 259 |
| 260 TEST_F(ProxyPolicyHandlerTest, | 260 TEST_F(ProxyPolicyHandlerTest, |
| 261 ProxyModeOverridesProxyServerMode) { | 261 ProxyModeOverridesProxyServerMode) { |
| 262 PolicyMap policy; | 262 PolicyMap policy; |
| 263 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 263 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 264 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>( | 264 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>( |
| 265 ProxyPolicyHandler::PROXY_SERVER_MODE), | 265 ProxyPolicyHandler::PROXY_SERVER_MODE), |
| 266 nullptr); | 266 nullptr); |
| 267 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 267 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 268 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 268 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 269 ProxyPrefs::kAutoDetectProxyModeName), | 269 ProxyPrefs::kAutoDetectProxyModeName), |
| 270 nullptr); | 270 nullptr); |
| 271 UpdateProviderPolicy(policy); | 271 UpdateProviderPolicy(policy); |
| 272 VerifyProxyPrefs(std::string(), | 272 VerifyProxyPrefs(std::string(), |
| 273 std::string(), | 273 std::string(), |
| 274 std::string(), | 274 std::string(), |
| 275 ProxyPrefs::MODE_AUTO_DETECT); | 275 ProxyPrefs::MODE_AUTO_DETECT); |
| 276 } | 276 } |
| 277 | 277 |
| 278 TEST_F(ProxyPolicyHandlerTest, ProxyInvalid) { | 278 TEST_F(ProxyPolicyHandlerTest, ProxyInvalid) { |
| 279 // No mode expects all three parameters being set. | 279 // No mode expects all three parameters being set. |
| 280 PolicyMap policy; | 280 PolicyMap policy; |
| 281 policy.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 281 policy.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 282 POLICY_SOURCE_CLOUD, | 282 POLICY_SOURCE_CLOUD, |
| 283 base::MakeUnique<base::StringValue>("http://short.org/proxy.pac"), | 283 base::MakeUnique<base::StringValue>("http://short.org/proxy.pac"), |
| 284 nullptr); | 284 nullptr); |
| 285 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 285 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 286 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( | 286 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( |
| 287 "http://chromium.org/override"), | 287 "http://chromium.org/override"), |
| 288 nullptr); | 288 nullptr); |
| 289 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 289 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 290 POLICY_SOURCE_CLOUD, | 290 POLICY_SOURCE_CLOUD, |
| 291 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 291 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
| 292 for (int i = 0; i < ProxyPolicyHandler::MODE_COUNT; ++i) { | 292 for (int i = 0; i < ProxyPolicyHandler::MODE_COUNT; ++i) { |
| 293 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 293 policy.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 294 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(i), | 294 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(i), |
| 295 nullptr); | 295 nullptr); |
| 296 UpdateProviderPolicy(policy); | 296 UpdateProviderPolicy(policy); |
| 297 const base::Value* value = nullptr; | 297 const base::Value* value = nullptr; |
| 298 EXPECT_FALSE(store_->GetValue(proxy_config::prefs::kProxy, &value)); | 298 EXPECT_FALSE(store_->GetValue(proxy_config::prefs::kProxy, &value)); |
| 299 } | 299 } |
| 300 } | 300 } |
| 301 | 301 |
| 302 } // namespace policy | 302 } // namespace policy |
| OLD | NEW |