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