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 |