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 |