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/chromeos/policy/configuration_policy_handler_chromeos.h
" | 5 #include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h
" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/prefs/pref_value_map.h" | 10 #include "base/prefs/pref_value_map.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/browser/ui/ash/chrome_launcher_prefs.h" | 12 #include "chrome/browser/ui/ash/chrome_launcher_prefs.h" |
13 #include "chrome/common/pref_names.h" | 13 #include "chrome/common/pref_names.h" |
14 #include "components/policy/core/browser/policy_error_map.h" | 14 #include "components/policy/core/browser/policy_error_map.h" |
15 #include "components/policy/core/common/external_data_fetcher.h" | 15 #include "components/policy/core/common/external_data_fetcher.h" |
16 #include "components/policy/core/common/policy_map.h" | 16 #include "components/policy/core/common/policy_map.h" |
17 #include "components/policy/core/common/policy_types.h" | |
18 #include "components/policy/core/common/schema.h" | 17 #include "components/policy/core/common/schema.h" |
19 #include "policy/policy_constants.h" | 18 #include "policy/policy_constants.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
21 | 20 |
22 namespace policy { | 21 namespace policy { |
23 | 22 |
24 namespace { | 23 namespace { |
25 | 24 |
26 // Test cases for the screen magnifier type policy setting. | 25 // Test cases for the screen magnifier type policy setting. |
27 class ScreenMagnifierPolicyHandlerTest : public testing::Test { | 26 class ScreenMagnifierPolicyHandlerTest : public testing::Test { |
(...skipping 27 matching lines...) Expand all Loading... |
55 handler_.ApplyPolicySettings(policy_, &prefs_); | 54 handler_.ApplyPolicySettings(policy_, &prefs_); |
56 EXPECT_FALSE( | 55 EXPECT_FALSE( |
57 prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, NULL)); | 56 prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, NULL)); |
58 EXPECT_FALSE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, NULL)); | 57 EXPECT_FALSE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, NULL)); |
59 } | 58 } |
60 | 59 |
61 TEST_F(ScreenMagnifierPolicyHandlerTest, Disabled) { | 60 TEST_F(ScreenMagnifierPolicyHandlerTest, Disabled) { |
62 policy_.Set(key::kScreenMagnifierType, | 61 policy_.Set(key::kScreenMagnifierType, |
63 POLICY_LEVEL_MANDATORY, | 62 POLICY_LEVEL_MANDATORY, |
64 POLICY_SCOPE_USER, | 63 POLICY_SCOPE_USER, |
65 POLICY_SOURCE_CLOUD, | |
66 new base::FundamentalValue(0), | 64 new base::FundamentalValue(0), |
67 NULL); | 65 NULL); |
68 handler_.ApplyPolicySettings(policy_, &prefs_); | 66 handler_.ApplyPolicySettings(policy_, &prefs_); |
69 | 67 |
70 const base::Value* enabled = NULL; | 68 const base::Value* enabled = NULL; |
71 EXPECT_TRUE( | 69 EXPECT_TRUE( |
72 prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, &enabled)); | 70 prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, &enabled)); |
73 ASSERT_TRUE(enabled); | 71 ASSERT_TRUE(enabled); |
74 EXPECT_TRUE(base::FundamentalValue(false).Equals(enabled)); | 72 EXPECT_TRUE(base::FundamentalValue(false).Equals(enabled)); |
75 | 73 |
76 const base::Value* type = NULL; | 74 const base::Value* type = NULL; |
77 EXPECT_TRUE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, &type)); | 75 EXPECT_TRUE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, &type)); |
78 ASSERT_TRUE(type); | 76 ASSERT_TRUE(type); |
79 EXPECT_TRUE(base::FundamentalValue(0).Equals(type)); | 77 EXPECT_TRUE(base::FundamentalValue(0).Equals(type)); |
80 } | 78 } |
81 | 79 |
82 TEST_F(ScreenMagnifierPolicyHandlerTest, Enabled) { | 80 TEST_F(ScreenMagnifierPolicyHandlerTest, Enabled) { |
83 policy_.Set(key::kScreenMagnifierType, | 81 policy_.Set(key::kScreenMagnifierType, |
84 POLICY_LEVEL_MANDATORY, | 82 POLICY_LEVEL_MANDATORY, |
85 POLICY_SCOPE_USER, | 83 POLICY_SCOPE_USER, |
86 POLICY_SOURCE_CLOUD, | |
87 new base::FundamentalValue(1), | 84 new base::FundamentalValue(1), |
88 NULL); | 85 NULL); |
89 handler_.ApplyPolicySettings(policy_, &prefs_); | 86 handler_.ApplyPolicySettings(policy_, &prefs_); |
90 | 87 |
91 const base::Value* enabled = NULL; | 88 const base::Value* enabled = NULL; |
92 EXPECT_TRUE( | 89 EXPECT_TRUE( |
93 prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, &enabled)); | 90 prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, &enabled)); |
94 ASSERT_TRUE(enabled); | 91 ASSERT_TRUE(enabled); |
95 EXPECT_TRUE(base::FundamentalValue(true).Equals(enabled)); | 92 EXPECT_TRUE(base::FundamentalValue(true).Equals(enabled)); |
96 | 93 |
97 const base::Value* type = NULL; | 94 const base::Value* type = NULL; |
98 EXPECT_TRUE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, &type)); | 95 EXPECT_TRUE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, &type)); |
99 ASSERT_TRUE(type); | 96 ASSERT_TRUE(type); |
100 EXPECT_TRUE(base::FundamentalValue(1).Equals(type)); | 97 EXPECT_TRUE(base::FundamentalValue(1).Equals(type)); |
101 } | 98 } |
102 | 99 |
103 TEST(ExternalDataPolicyHandlerTest, Empty) { | 100 TEST(ExternalDataPolicyHandlerTest, Empty) { |
104 PolicyErrorMap errors; | 101 PolicyErrorMap errors; |
105 EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 102 EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
106 .CheckPolicySettings(PolicyMap(), &errors)); | 103 .CheckPolicySettings(PolicyMap(), &errors)); |
107 EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); | 104 EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); |
108 } | 105 } |
109 | 106 |
110 TEST(ExternalDataPolicyHandlerTest, WrongType) { | 107 TEST(ExternalDataPolicyHandlerTest, WrongType) { |
111 PolicyMap policy_map; | 108 PolicyMap policy_map; |
112 policy_map.Set(key::kUserAvatarImage, | 109 policy_map.Set(key::kUserAvatarImage, |
113 POLICY_LEVEL_MANDATORY, | 110 POLICY_LEVEL_MANDATORY, |
114 POLICY_SCOPE_USER, | 111 POLICY_SCOPE_USER, |
115 POLICY_SOURCE_CLOUD, | |
116 new base::FundamentalValue(false), | 112 new base::FundamentalValue(false), |
117 NULL); | 113 NULL); |
118 PolicyErrorMap errors; | 114 PolicyErrorMap errors; |
119 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 115 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
120 .CheckPolicySettings(policy_map, &errors)); | 116 .CheckPolicySettings(policy_map, &errors)); |
121 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); | 117 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); |
122 } | 118 } |
123 | 119 |
124 TEST(ExternalDataPolicyHandlerTest, MissingURL) { | 120 TEST(ExternalDataPolicyHandlerTest, MissingURL) { |
125 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 121 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
126 dict->SetString("hash", "1234567890123456789012345678901234567890"); | 122 dict->SetString("hash", "1234567890123456789012345678901234567890"); |
127 PolicyMap policy_map; | 123 PolicyMap policy_map; |
128 policy_map.Set(key::kUserAvatarImage, | 124 policy_map.Set(key::kUserAvatarImage, |
129 POLICY_LEVEL_MANDATORY, | 125 POLICY_LEVEL_MANDATORY, |
130 POLICY_SCOPE_USER, | 126 POLICY_SCOPE_USER, |
131 POLICY_SOURCE_CLOUD, | |
132 dict.release(), | 127 dict.release(), |
133 NULL); | 128 NULL); |
134 PolicyErrorMap errors; | 129 PolicyErrorMap errors; |
135 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 130 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
136 .CheckPolicySettings(policy_map, &errors)); | 131 .CheckPolicySettings(policy_map, &errors)); |
137 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); | 132 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); |
138 } | 133 } |
139 | 134 |
140 TEST(ExternalDataPolicyHandlerTest, InvalidURL) { | 135 TEST(ExternalDataPolicyHandlerTest, InvalidURL) { |
141 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 136 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
142 dict->SetString("url", "http://"); | 137 dict->SetString("url", "http://"); |
143 dict->SetString("hash", "1234567890123456789012345678901234567890"); | 138 dict->SetString("hash", "1234567890123456789012345678901234567890"); |
144 PolicyMap policy_map; | 139 PolicyMap policy_map; |
145 policy_map.Set(key::kUserAvatarImage, | 140 policy_map.Set(key::kUserAvatarImage, |
146 POLICY_LEVEL_MANDATORY, | 141 POLICY_LEVEL_MANDATORY, |
147 POLICY_SCOPE_USER, | 142 POLICY_SCOPE_USER, |
148 POLICY_SOURCE_CLOUD, | |
149 dict.release(), | 143 dict.release(), |
150 NULL); | 144 NULL); |
151 PolicyErrorMap errors; | 145 PolicyErrorMap errors; |
152 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 146 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
153 .CheckPolicySettings(policy_map, &errors)); | 147 .CheckPolicySettings(policy_map, &errors)); |
154 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); | 148 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); |
155 } | 149 } |
156 | 150 |
157 TEST(ExternalDataPolicyHandlerTest, MissingHash) { | 151 TEST(ExternalDataPolicyHandlerTest, MissingHash) { |
158 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 152 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
159 dict->SetString("url", "http://localhost/"); | 153 dict->SetString("url", "http://localhost/"); |
160 PolicyMap policy_map; | 154 PolicyMap policy_map; |
161 policy_map.Set(key::kUserAvatarImage, | 155 policy_map.Set(key::kUserAvatarImage, |
162 POLICY_LEVEL_MANDATORY, | 156 POLICY_LEVEL_MANDATORY, |
163 POLICY_SCOPE_USER, | 157 POLICY_SCOPE_USER, |
164 POLICY_SOURCE_CLOUD, | |
165 dict.release(), | 158 dict.release(), |
166 NULL); | 159 NULL); |
167 PolicyErrorMap errors; | 160 PolicyErrorMap errors; |
168 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 161 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
169 .CheckPolicySettings(policy_map, &errors)); | 162 .CheckPolicySettings(policy_map, &errors)); |
170 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); | 163 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); |
171 } | 164 } |
172 | 165 |
173 TEST(ExternalDataPolicyHandlerTest, InvalidHash) { | 166 TEST(ExternalDataPolicyHandlerTest, InvalidHash) { |
174 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 167 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
175 dict->SetString("url", "http://localhost/"); | 168 dict->SetString("url", "http://localhost/"); |
176 dict->SetString("hash", "1234"); | 169 dict->SetString("hash", "1234"); |
177 PolicyMap policy_map; | 170 PolicyMap policy_map; |
178 policy_map.Set(key::kUserAvatarImage, | 171 policy_map.Set(key::kUserAvatarImage, |
179 POLICY_LEVEL_MANDATORY, | 172 POLICY_LEVEL_MANDATORY, |
180 POLICY_SCOPE_USER, | 173 POLICY_SCOPE_USER, |
181 POLICY_SOURCE_CLOUD, | |
182 dict.release(), | 174 dict.release(), |
183 NULL); | 175 NULL); |
184 PolicyErrorMap errors; | 176 PolicyErrorMap errors; |
185 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 177 EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
186 .CheckPolicySettings(policy_map, &errors)); | 178 .CheckPolicySettings(policy_map, &errors)); |
187 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); | 179 EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); |
188 } | 180 } |
189 | 181 |
190 TEST(ExternalDataPolicyHandlerTest, Valid) { | 182 TEST(ExternalDataPolicyHandlerTest, Valid) { |
191 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 183 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
192 dict->SetString("url", "http://localhost/"); | 184 dict->SetString("url", "http://localhost/"); |
193 dict->SetString( | 185 dict->SetString( |
194 "hash", | 186 "hash", |
195 "1234567890123456789012345678901234567890123456789012345678901234"); | 187 "1234567890123456789012345678901234567890123456789012345678901234"); |
196 PolicyMap policy_map; | 188 PolicyMap policy_map; |
197 policy_map.Set(key::kUserAvatarImage, | 189 policy_map.Set(key::kUserAvatarImage, |
198 POLICY_LEVEL_MANDATORY, | 190 POLICY_LEVEL_MANDATORY, |
199 POLICY_SCOPE_USER, | 191 POLICY_SCOPE_USER, |
200 POLICY_SOURCE_CLOUD, | |
201 dict.release(), | 192 dict.release(), |
202 NULL); | 193 NULL); |
203 PolicyErrorMap errors; | 194 PolicyErrorMap errors; |
204 EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) | 195 EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) |
205 .CheckPolicySettings(policy_map, &errors)); | 196 .CheckPolicySettings(policy_map, &errors)); |
206 EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); | 197 EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); |
207 } | 198 } |
208 | 199 |
209 const char kLoginScreenPowerManagementPolicy[] = | 200 const char kLoginScreenPowerManagementPolicy[] = |
210 "{" | 201 "{" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 " \"SSID\": \"ssid\"," | 242 " \"SSID\": \"ssid\"," |
252 " \"Passphrase\": \"pass\"," | 243 " \"Passphrase\": \"pass\"," |
253 " }" | 244 " }" |
254 " }]" | 245 " }]" |
255 "}"); | 246 "}"); |
256 | 247 |
257 PolicyMap policy_map; | 248 PolicyMap policy_map; |
258 policy_map.Set(key::kOpenNetworkConfiguration, | 249 policy_map.Set(key::kOpenNetworkConfiguration, |
259 POLICY_LEVEL_MANDATORY, | 250 POLICY_LEVEL_MANDATORY, |
260 POLICY_SCOPE_USER, | 251 POLICY_SCOPE_USER, |
261 POLICY_SOURCE_CLOUD, | |
262 new base::StringValue(kTestONC), | 252 new base::StringValue(kTestONC), |
263 NULL); | 253 NULL); |
264 scoped_ptr<NetworkConfigurationPolicyHandler> handler( | 254 scoped_ptr<NetworkConfigurationPolicyHandler> handler( |
265 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); | 255 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); |
266 PolicyErrorMap errors; | 256 PolicyErrorMap errors; |
267 EXPECT_TRUE(handler->CheckPolicySettings(policy_map, &errors)); | 257 EXPECT_TRUE(handler->CheckPolicySettings(policy_map, &errors)); |
268 EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); | 258 EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
269 } | 259 } |
270 | 260 |
271 TEST(NetworkConfigurationPolicyHandlerTest, WrongType) { | 261 TEST(NetworkConfigurationPolicyHandlerTest, WrongType) { |
272 PolicyMap policy_map; | 262 PolicyMap policy_map; |
273 policy_map.Set(key::kOpenNetworkConfiguration, | 263 policy_map.Set(key::kOpenNetworkConfiguration, |
274 POLICY_LEVEL_MANDATORY, | 264 POLICY_LEVEL_MANDATORY, |
275 POLICY_SCOPE_USER, | 265 POLICY_SCOPE_USER, |
276 POLICY_SOURCE_CLOUD, | |
277 new base::FundamentalValue(false), | 266 new base::FundamentalValue(false), |
278 NULL); | 267 NULL); |
279 scoped_ptr<NetworkConfigurationPolicyHandler> handler( | 268 scoped_ptr<NetworkConfigurationPolicyHandler> handler( |
280 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); | 269 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); |
281 PolicyErrorMap errors; | 270 PolicyErrorMap errors; |
282 EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); | 271 EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); |
283 EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); | 272 EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
284 } | 273 } |
285 | 274 |
286 TEST(NetworkConfigurationPolicyHandlerTest, JSONParseError) { | 275 TEST(NetworkConfigurationPolicyHandlerTest, JSONParseError) { |
287 const std::string kTestONC("I'm not proper JSON!"); | 276 const std::string kTestONC("I'm not proper JSON!"); |
288 PolicyMap policy_map; | 277 PolicyMap policy_map; |
289 policy_map.Set(key::kOpenNetworkConfiguration, | 278 policy_map.Set(key::kOpenNetworkConfiguration, |
290 POLICY_LEVEL_MANDATORY, | 279 POLICY_LEVEL_MANDATORY, |
291 POLICY_SCOPE_USER, | 280 POLICY_SCOPE_USER, |
292 POLICY_SOURCE_CLOUD, | |
293 new base::StringValue(kTestONC), | 281 new base::StringValue(kTestONC), |
294 NULL); | 282 NULL); |
295 scoped_ptr<NetworkConfigurationPolicyHandler> handler( | 283 scoped_ptr<NetworkConfigurationPolicyHandler> handler( |
296 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); | 284 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); |
297 PolicyErrorMap errors; | 285 PolicyErrorMap errors; |
298 EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); | 286 EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); |
299 EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); | 287 EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
300 } | 288 } |
301 | 289 |
302 TEST(NetworkConfigurationPolicyHandlerTest, Sanitization) { | 290 TEST(NetworkConfigurationPolicyHandlerTest, Sanitization) { |
303 const std::string kTestONC( | 291 const std::string kTestONC( |
304 "{" | 292 "{" |
305 " \"NetworkConfigurations\": [{" | 293 " \"NetworkConfigurations\": [{" |
306 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," | 294 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," |
307 " \"Type\": \"WiFi\"," | 295 " \"Type\": \"WiFi\"," |
308 " \"Name\": \"some name\"," | 296 " \"Name\": \"some name\"," |
309 " \"WiFi\": {" | 297 " \"WiFi\": {" |
310 " \"Security\": \"WEP-PSK\"," | 298 " \"Security\": \"WEP-PSK\"," |
311 " \"SSID\": \"ssid\"," | 299 " \"SSID\": \"ssid\"," |
312 " \"Passphrase\": \"pass\"," | 300 " \"Passphrase\": \"pass\"," |
313 " }" | 301 " }" |
314 " }]" | 302 " }]" |
315 "}"); | 303 "}"); |
316 | 304 |
317 PolicyMap policy_map; | 305 PolicyMap policy_map; |
318 policy_map.Set(key::kOpenNetworkConfiguration, | 306 policy_map.Set(key::kOpenNetworkConfiguration, |
319 POLICY_LEVEL_MANDATORY, | 307 POLICY_LEVEL_MANDATORY, |
320 POLICY_SCOPE_USER, | 308 POLICY_SCOPE_USER, |
321 POLICY_SOURCE_CLOUD, | |
322 new base::StringValue(kTestONC), | 309 new base::StringValue(kTestONC), |
323 NULL); | 310 NULL); |
324 scoped_ptr<NetworkConfigurationPolicyHandler> handler( | 311 scoped_ptr<NetworkConfigurationPolicyHandler> handler( |
325 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); | 312 NetworkConfigurationPolicyHandler::CreateForUserPolicy()); |
326 PolicyErrorMap errors; | 313 PolicyErrorMap errors; |
327 handler->PrepareForDisplaying(&policy_map); | 314 handler->PrepareForDisplaying(&policy_map); |
328 const base::Value* sanitized = | 315 const base::Value* sanitized = |
329 policy_map.GetValue(key::kOpenNetworkConfiguration); | 316 policy_map.GetValue(key::kOpenNetworkConfiguration); |
330 ASSERT_TRUE(sanitized); | 317 ASSERT_TRUE(sanitized); |
331 std::string sanitized_onc; | 318 std::string sanitized_onc; |
332 EXPECT_TRUE(sanitized->GetAsString(&sanitized_onc)); | 319 EXPECT_TRUE(sanitized->GetAsString(&sanitized_onc)); |
333 EXPECT_FALSE(sanitized_onc.empty()); | 320 EXPECT_FALSE(sanitized_onc.empty()); |
334 EXPECT_EQ(std::string::npos, sanitized_onc.find("pass")); | 321 EXPECT_EQ(std::string::npos, sanitized_onc.find("pass")); |
335 } | 322 } |
336 | 323 |
337 TEST(PinnedLauncherAppsPolicyHandler, PrefTranslation) { | 324 TEST(PinnedLauncherAppsPolicyHandler, PrefTranslation) { |
338 base::ListValue list; | 325 base::ListValue list; |
339 PolicyMap policy_map; | 326 PolicyMap policy_map; |
340 PrefValueMap prefs; | 327 PrefValueMap prefs; |
341 base::ListValue expected_pinned_apps; | 328 base::ListValue expected_pinned_apps; |
342 base::Value* value = NULL; | 329 base::Value* value = NULL; |
343 PinnedLauncherAppsPolicyHandler handler; | 330 PinnedLauncherAppsPolicyHandler handler; |
344 | 331 |
345 policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, | 332 policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, |
346 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, list.DeepCopy(), | 333 POLICY_SCOPE_USER, list.DeepCopy(), NULL); |
347 nullptr); | |
348 handler.ApplyPolicySettings(policy_map, &prefs); | 334 handler.ApplyPolicySettings(policy_map, &prefs); |
349 EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); | 335 EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); |
350 EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); | 336 EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); |
351 | 337 |
352 base::StringValue entry1("abcdefghijklmnopabcdefghijklmnop"); | 338 base::StringValue entry1("abcdefghijklmnopabcdefghijklmnop"); |
353 base::DictionaryValue* entry1_dict = new base::DictionaryValue(); | 339 base::DictionaryValue* entry1_dict = new base::DictionaryValue(); |
354 entry1_dict->Set(ash::kPinnedAppsPrefAppIDPath, entry1.DeepCopy()); | 340 entry1_dict->Set(ash::kPinnedAppsPrefAppIDPath, entry1.DeepCopy()); |
355 expected_pinned_apps.Append(entry1_dict); | 341 expected_pinned_apps.Append(entry1_dict); |
356 list.Append(entry1.DeepCopy()); | 342 list.Append(entry1.DeepCopy()); |
357 policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, | 343 policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, |
358 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, list.DeepCopy(), | 344 POLICY_SCOPE_USER, list.DeepCopy(), NULL); |
359 nullptr); | |
360 prefs.Clear(); | 345 prefs.Clear(); |
361 handler.ApplyPolicySettings(policy_map, &prefs); | 346 handler.ApplyPolicySettings(policy_map, &prefs); |
362 EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); | 347 EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); |
363 EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); | 348 EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); |
364 } | 349 } |
365 | 350 |
366 TEST_F(LoginScreenPowerManagementPolicyHandlerTest, Empty) { | 351 TEST_F(LoginScreenPowerManagementPolicyHandlerTest, Empty) { |
367 PolicyMap policy_map; | 352 PolicyMap policy_map; |
368 LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); | 353 LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); |
369 PolicyErrorMap errors; | 354 PolicyErrorMap errors; |
370 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 355 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
371 EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); | 356 EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); |
372 } | 357 } |
373 | 358 |
374 TEST_F(LoginScreenPowerManagementPolicyHandlerTest, ValidPolicy) { | 359 TEST_F(LoginScreenPowerManagementPolicyHandlerTest, ValidPolicy) { |
375 PolicyMap policy_map; | 360 PolicyMap policy_map; |
376 policy_map.Set( | 361 policy_map.Set( |
377 key::kDeviceLoginScreenPowerManagement, POLICY_LEVEL_MANDATORY, | 362 key::kDeviceLoginScreenPowerManagement, POLICY_LEVEL_MANDATORY, |
378 POLICY_SCOPE_USER, | 363 POLICY_SCOPE_USER, |
379 POLICY_SOURCE_CLOUD, | |
380 base::JSONReader::Read(kLoginScreenPowerManagementPolicy).release(), | 364 base::JSONReader::Read(kLoginScreenPowerManagementPolicy).release(), |
381 NULL); | 365 NULL); |
382 LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); | 366 LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); |
383 PolicyErrorMap errors; | 367 PolicyErrorMap errors; |
384 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 368 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
385 EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); | 369 EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); |
386 } | 370 } |
387 | 371 |
388 TEST_F(LoginScreenPowerManagementPolicyHandlerTest, WrongType) { | 372 TEST_F(LoginScreenPowerManagementPolicyHandlerTest, WrongType) { |
389 PolicyMap policy_map; | 373 PolicyMap policy_map; |
390 policy_map.Set(key::kDeviceLoginScreenPowerManagement, | 374 policy_map.Set(key::kDeviceLoginScreenPowerManagement, |
391 POLICY_LEVEL_MANDATORY, | 375 POLICY_LEVEL_MANDATORY, |
392 POLICY_SCOPE_USER, | 376 POLICY_SCOPE_USER, |
393 POLICY_SOURCE_CLOUD, | |
394 new base::FundamentalValue(false), | 377 new base::FundamentalValue(false), |
395 NULL); | 378 NULL); |
396 LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); | 379 LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); |
397 PolicyErrorMap errors; | 380 PolicyErrorMap errors; |
398 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); | 381 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
399 EXPECT_FALSE( | 382 EXPECT_FALSE( |
400 errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); | 383 errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); |
401 } | 384 } |
402 | 385 |
403 } // namespace policy | 386 } // namespace policy |
OLD | NEW |