| 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 "base/memory/scoped_ptr.h" |
| 5 #include "base/prefs/pref_value_map.h" | 6 #include "base/prefs/pref_value_map.h" |
| 6 #include "chrome/browser/extensions/external_policy_loader.h" | 7 #include "chrome/browser/extensions/external_policy_loader.h" |
| 7 #include "chrome/browser/policy/configuration_policy_handler.h" | 8 #include "chrome/browser/policy/configuration_policy_handler.h" |
| 8 #include "chrome/browser/policy/policy_error_map.h" | 9 #include "chrome/browser/policy/policy_error_map.h" |
| 9 #include "chrome/browser/policy/policy_map.h" | 10 #include "chrome/browser/policy/policy_map.h" |
| 10 #include "chrome/common/pref_names.h" | 11 #include "chrome/common/pref_names.h" |
| 11 #include "policy/policy_constants.h" | 12 #include "policy/policy_constants.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 14 |
| 14 namespace policy { | 15 namespace policy { |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 StringToIntEnumListPolicyHandler::MappingEntry kTestTypeMap[] = { | 19 StringToIntEnumListPolicyHandler::MappingEntry kTestTypeMap[] = { |
| 19 { "one", 1 }, | 20 { "one", 1 }, |
| 20 { "two", 2 }, | 21 { "two", 2 }, |
| 21 }; | 22 }; |
| 22 | 23 |
| 24 const char kTestPref[] = "unit_test.test_pref"; |
| 25 |
| 23 } // namespace | 26 } // namespace |
| 24 | 27 |
| 25 TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) { | 28 TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) { |
| 26 base::ListValue list; | 29 base::ListValue list; |
| 27 PolicyMap policy_map; | 30 PolicyMap policy_map; |
| 28 PolicyErrorMap errors; | 31 PolicyErrorMap errors; |
| 29 StringToIntEnumListPolicyHandler handler( | 32 StringToIntEnumListPolicyHandler handler( |
| 30 key::kExtensionAllowedTypes, prefs::kExtensionAllowedTypes, | 33 key::kExtensionAllowedTypes, prefs::kExtensionAllowedTypes, |
| 31 kTestTypeMap, kTestTypeMap + arraysize(kTestTypeMap)); | 34 kTestTypeMap, kTestTypeMap + arraysize(kTestTypeMap)); |
| 32 | 35 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 EXPECT_TRUE(base::Value::Equals(&expected, value)); | 87 EXPECT_TRUE(base::Value::Equals(&expected, value)); |
| 85 | 88 |
| 86 list.AppendString("invalid"); | 89 list.AppendString("invalid"); |
| 87 policy_map.Set(key::kExtensionAllowedTypes, POLICY_LEVEL_MANDATORY, | 90 policy_map.Set(key::kExtensionAllowedTypes, POLICY_LEVEL_MANDATORY, |
| 88 POLICY_SCOPE_USER, list.DeepCopy()); | 91 POLICY_SCOPE_USER, list.DeepCopy()); |
| 89 handler.ApplyPolicySettings(policy_map, &prefs); | 92 handler.ApplyPolicySettings(policy_map, &prefs); |
| 90 EXPECT_TRUE(prefs.GetValue(prefs::kExtensionAllowedTypes, &value)); | 93 EXPECT_TRUE(prefs.GetValue(prefs::kExtensionAllowedTypes, &value)); |
| 91 EXPECT_TRUE(base::Value::Equals(&expected, value)); | 94 EXPECT_TRUE(base::Value::Equals(&expected, value)); |
| 92 } | 95 } |
| 93 | 96 |
| 97 TEST(IntRangePolicyHandler, CheckPolicySettingsClamp) { |
| 98 PolicyMap policy_map; |
| 99 PolicyErrorMap errors; |
| 100 |
| 101 // This tests needs to modify an int policy. The exact policy used and its |
| 102 // semantics outside the test are irrelevant. |
| 103 IntRangePolicyHandler handler(key::kDiskCacheSize, kTestPref, 0, 10, true); |
| 104 |
| 105 // Check that values lying in the accepted range are not rejected. |
| 106 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 107 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 108 errors.Clear(); |
| 109 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 110 EXPECT_TRUE(errors.empty()); |
| 111 |
| 112 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 113 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 114 errors.Clear(); |
| 115 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 116 EXPECT_TRUE(errors.empty()); |
| 117 |
| 118 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 119 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 120 errors.Clear(); |
| 121 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 122 EXPECT_TRUE(errors.empty()); |
| 123 |
| 124 // Check that values lying outside the accepted range are not rejected |
| 125 // (because clamping is enabled) but do yield a warning message. |
| 126 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 127 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5)); |
| 128 errors.Clear(); |
| 129 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 130 EXPECT_FALSE(errors.empty()); |
| 131 |
| 132 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 133 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15)); |
| 134 errors.Clear(); |
| 135 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 136 EXPECT_FALSE(errors.empty()); |
| 137 |
| 138 // Check that an entirely invalid value is rejected and yields an error |
| 139 // message. |
| 140 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 141 POLICY_SCOPE_USER, base::Value::CreateStringValue("invalid")); |
| 142 errors.Clear(); |
| 143 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 144 EXPECT_FALSE(errors.empty()); |
| 145 } |
| 146 |
| 147 TEST(IntRangePolicyHandler, CheckPolicySettingsDontClamp) { |
| 148 PolicyMap policy_map; |
| 149 PolicyErrorMap errors; |
| 150 |
| 151 // This tests needs to modify an int policy. The exact policy used and its |
| 152 // semantics outside the test are irrelevant. |
| 153 IntRangePolicyHandler handler(key::kDiskCacheSize, kTestPref, 0, 10, false); |
| 154 |
| 155 // Check that values lying in the accepted range are not rejected. |
| 156 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 157 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 158 errors.Clear(); |
| 159 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 160 EXPECT_TRUE(errors.empty()); |
| 161 |
| 162 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 163 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 164 errors.Clear(); |
| 165 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 166 EXPECT_TRUE(errors.empty()); |
| 167 |
| 168 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 169 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 170 errors.Clear(); |
| 171 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 172 EXPECT_TRUE(errors.empty()); |
| 173 |
| 174 // Check that values lying outside the accepted range are rejected and yield |
| 175 // an error message. |
| 176 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 177 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5)); |
| 178 errors.Clear(); |
| 179 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 180 EXPECT_FALSE(errors.empty()); |
| 181 |
| 182 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 183 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15)); |
| 184 errors.Clear(); |
| 185 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 186 EXPECT_FALSE(errors.empty()); |
| 187 |
| 188 // Check that an entirely invalid value is rejected and yields an error |
| 189 // message. |
| 190 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 191 POLICY_SCOPE_USER, base::Value::CreateStringValue("invalid")); |
| 192 errors.Clear(); |
| 193 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 194 EXPECT_FALSE(errors.empty()); |
| 195 } |
| 196 |
| 197 TEST(IntRangePolicyHandler, ApplyPolicySettingsClamp) { |
| 198 PolicyMap policy_map; |
| 199 PrefValueMap prefs; |
| 200 scoped_ptr<base::Value> expected; |
| 201 const base::Value* value; |
| 202 |
| 203 // This tests needs to modify an int policy. The exact policy used and its |
| 204 // semantics outside the test are irrelevant. |
| 205 IntRangePolicyHandler handler(key::kDiskCacheSize, kTestPref, 0, 10, true); |
| 206 |
| 207 // Check that values lying in the accepted range are written to the pref. |
| 208 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 209 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 210 prefs.Clear(); |
| 211 handler.ApplyPolicySettings(policy_map, &prefs); |
| 212 expected.reset(base::Value::CreateIntegerValue(0)); |
| 213 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 214 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 215 |
| 216 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 217 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 218 prefs.Clear(); |
| 219 handler.ApplyPolicySettings(policy_map, &prefs); |
| 220 expected.reset(base::Value::CreateIntegerValue(5)); |
| 221 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 222 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 223 |
| 224 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 225 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 226 prefs.Clear(); |
| 227 handler.ApplyPolicySettings(policy_map, &prefs); |
| 228 expected.reset(base::Value::CreateIntegerValue(10)); |
| 229 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 230 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 231 |
| 232 // Check that values lying outside the accepted range are clamped and written |
| 233 // to the pref. |
| 234 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 235 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5)); |
| 236 prefs.Clear(); |
| 237 handler.ApplyPolicySettings(policy_map, &prefs); |
| 238 expected.reset(base::Value::CreateIntegerValue(0)); |
| 239 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 240 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 241 |
| 242 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 243 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15)); |
| 244 prefs.Clear(); |
| 245 handler.ApplyPolicySettings(policy_map, &prefs); |
| 246 expected.reset(base::Value::CreateIntegerValue(10)); |
| 247 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 248 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 249 } |
| 250 |
| 251 TEST(IntRangePolicyHandler, ApplyPolicySettingsDontClamp) { |
| 252 PolicyMap policy_map; |
| 253 PrefValueMap prefs; |
| 254 scoped_ptr<base::Value> expected; |
| 255 const base::Value* value; |
| 256 |
| 257 // This tests needs to modify an int policy. The exact policy used and its |
| 258 // semantics outside the test are irrelevant. |
| 259 IntRangePolicyHandler handler(key::kDiskCacheSize, kTestPref, 0, 10, true); |
| 260 |
| 261 // Check that values lying in the accepted range are written to the pref. |
| 262 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 263 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 264 prefs.Clear(); |
| 265 handler.ApplyPolicySettings(policy_map, &prefs); |
| 266 expected.reset(base::Value::CreateIntegerValue(0)); |
| 267 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 268 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 269 |
| 270 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 271 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 272 prefs.Clear(); |
| 273 handler.ApplyPolicySettings(policy_map, &prefs); |
| 274 expected.reset(base::Value::CreateIntegerValue(5)); |
| 275 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 276 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 277 |
| 278 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 279 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 280 prefs.Clear(); |
| 281 handler.ApplyPolicySettings(policy_map, &prefs); |
| 282 expected.reset(base::Value::CreateIntegerValue(10)); |
| 283 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 284 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 285 } |
| 286 |
| 287 TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsClamp) { |
| 288 PolicyMap policy_map; |
| 289 PolicyErrorMap errors; |
| 290 |
| 291 // This tests needs to modify an int policy. The exact policy used and its |
| 292 // semantics outside the test are irrelevant. |
| 293 IntPercentageToDoublePolicyHandler handler( |
| 294 key::kDiskCacheSize, kTestPref, 0, 10, true); |
| 295 |
| 296 // Check that values lying in the accepted range are not rejected. |
| 297 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 298 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 299 errors.Clear(); |
| 300 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 301 EXPECT_TRUE(errors.empty()); |
| 302 |
| 303 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 304 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 305 errors.Clear(); |
| 306 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 307 EXPECT_TRUE(errors.empty()); |
| 308 |
| 309 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 310 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 311 errors.Clear(); |
| 312 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 313 EXPECT_TRUE(errors.empty()); |
| 314 |
| 315 // Check that values lying outside the accepted range are not rejected |
| 316 // (because clamping is enabled) but do yield a warning message. |
| 317 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 318 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5)); |
| 319 errors.Clear(); |
| 320 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 321 EXPECT_FALSE(errors.empty()); |
| 322 |
| 323 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 324 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15)); |
| 325 errors.Clear(); |
| 326 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 327 EXPECT_FALSE(errors.empty()); |
| 328 |
| 329 // Check that an entirely invalid value is rejected and yields an error |
| 330 // message. |
| 331 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 332 POLICY_SCOPE_USER, base::Value::CreateStringValue("invalid")); |
| 333 errors.Clear(); |
| 334 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 335 EXPECT_FALSE(errors.empty()); |
| 336 } |
| 337 |
| 338 TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsDontClamp) { |
| 339 PolicyMap policy_map; |
| 340 PolicyErrorMap errors; |
| 341 |
| 342 // This tests needs to modify an int policy. The exact policy used and its |
| 343 // semantics outside the test are irrelevant. |
| 344 IntPercentageToDoublePolicyHandler handler( |
| 345 key::kDiskCacheSize, kTestPref, 0, 10, false); |
| 346 |
| 347 // Check that values lying in the accepted range are not rejected. |
| 348 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 349 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 350 errors.Clear(); |
| 351 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 352 EXPECT_TRUE(errors.empty()); |
| 353 |
| 354 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 355 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 356 errors.Clear(); |
| 357 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 358 EXPECT_TRUE(errors.empty()); |
| 359 |
| 360 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 361 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 362 errors.Clear(); |
| 363 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 364 EXPECT_TRUE(errors.empty()); |
| 365 |
| 366 // Check that values lying outside the accepted range are rejected and yield |
| 367 // an error message. |
| 368 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 369 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5)); |
| 370 errors.Clear(); |
| 371 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 372 EXPECT_FALSE(errors.empty()); |
| 373 |
| 374 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 375 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15)); |
| 376 errors.Clear(); |
| 377 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 378 EXPECT_FALSE(errors.empty()); |
| 379 |
| 380 // Check that an entirely invalid value is rejected and yields an error |
| 381 // message. |
| 382 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 383 POLICY_SCOPE_USER, base::Value::CreateStringValue("invalid")); |
| 384 errors.Clear(); |
| 385 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 386 EXPECT_FALSE(errors.empty()); |
| 387 } |
| 388 |
| 389 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsClamp) { |
| 390 PolicyMap policy_map; |
| 391 PrefValueMap prefs; |
| 392 scoped_ptr<base::Value> expected; |
| 393 const base::Value* value; |
| 394 |
| 395 // This tests needs to modify an int policy. The exact policy used and its |
| 396 // semantics outside the test are irrelevant. |
| 397 IntPercentageToDoublePolicyHandler handler( |
| 398 key::kDiskCacheSize, kTestPref, 0, 10, true); |
| 399 |
| 400 // Check that values lying in the accepted range are written to the pref. |
| 401 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 402 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 403 prefs.Clear(); |
| 404 handler.ApplyPolicySettings(policy_map, &prefs); |
| 405 expected.reset(base::Value::CreateDoubleValue(0.0)); |
| 406 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 407 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 408 |
| 409 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 410 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 411 prefs.Clear(); |
| 412 handler.ApplyPolicySettings(policy_map, &prefs); |
| 413 expected.reset(base::Value::CreateDoubleValue(0.05)); |
| 414 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 415 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 416 |
| 417 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 418 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 419 prefs.Clear(); |
| 420 handler.ApplyPolicySettings(policy_map, &prefs); |
| 421 expected.reset(base::Value::CreateDoubleValue(0.1)); |
| 422 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 423 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 424 |
| 425 // Check that values lying outside the accepted range are clamped and written |
| 426 // to the pref. |
| 427 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 428 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5)); |
| 429 prefs.Clear(); |
| 430 handler.ApplyPolicySettings(policy_map, &prefs); |
| 431 expected.reset(base::Value::CreateDoubleValue(0.0)); |
| 432 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 433 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 434 |
| 435 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 436 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15)); |
| 437 prefs.Clear(); |
| 438 handler.ApplyPolicySettings(policy_map, &prefs); |
| 439 expected.reset(base::Value::CreateDoubleValue(0.1)); |
| 440 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 441 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 442 } |
| 443 |
| 444 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsDontClamp) { |
| 445 PolicyMap policy_map; |
| 446 PrefValueMap prefs; |
| 447 scoped_ptr<base::Value> expected; |
| 448 const base::Value* value; |
| 449 |
| 450 // This tests needs to modify an int policy. The exact policy used and its |
| 451 // semantics outside the test are irrelevant. |
| 452 IntPercentageToDoublePolicyHandler handler( |
| 453 key::kDiskCacheSize, kTestPref, 0, 10, true); |
| 454 |
| 455 // Check that values lying in the accepted range are written to the pref. |
| 456 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 457 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0)); |
| 458 prefs.Clear(); |
| 459 handler.ApplyPolicySettings(policy_map, &prefs); |
| 460 expected.reset(base::Value::CreateDoubleValue(0.0)); |
| 461 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 462 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 463 |
| 464 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 465 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5)); |
| 466 prefs.Clear(); |
| 467 handler.ApplyPolicySettings(policy_map, &prefs); |
| 468 expected.reset(base::Value::CreateDoubleValue(0.05)); |
| 469 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 470 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 471 |
| 472 policy_map.Set(key::kDiskCacheSize, POLICY_LEVEL_MANDATORY, |
| 473 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10)); |
| 474 prefs.Clear(); |
| 475 handler.ApplyPolicySettings(policy_map, &prefs); |
| 476 expected.reset(base::Value::CreateDoubleValue(0.1)); |
| 477 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 478 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
| 479 } |
| 480 |
| 94 TEST(ExtensionListPolicyHandlerTest, CheckPolicySettings) { | 481 TEST(ExtensionListPolicyHandlerTest, CheckPolicySettings) { |
| 95 base::ListValue list; | 482 base::ListValue list; |
| 96 PolicyMap policy_map; | 483 PolicyMap policy_map; |
| 97 PolicyErrorMap errors; | 484 PolicyErrorMap errors; |
| 98 ExtensionListPolicyHandler handler(key::kExtensionInstallBlacklist, | 485 ExtensionListPolicyHandler handler(key::kExtensionInstallBlacklist, |
| 99 prefs::kExtensionInstallDenyList, | 486 prefs::kExtensionInstallDenyList, |
| 100 true); | 487 true); |
| 101 | 488 |
| 102 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, | 489 policy_map.Set(key::kExtensionInstallBlacklist, POLICY_LEVEL_MANDATORY, |
| 103 POLICY_SCOPE_USER, list.DeepCopy()); | 490 POLICY_SCOPE_USER, list.DeepCopy()); |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 ASSERT_TRUE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); | 733 ASSERT_TRUE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); |
| 347 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_SESSION_ONLY).Equals(val)); | 734 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_SESSION_ONLY).Equals(val)); |
| 348 | 735 |
| 349 policy_map.Clear(); | 736 policy_map.Clear(); |
| 350 prefs.Clear(); | 737 prefs.Clear(); |
| 351 handler.ApplyPolicySettings(policy_map, &prefs); | 738 handler.ApplyPolicySettings(policy_map, &prefs); |
| 352 EXPECT_FALSE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); | 739 EXPECT_FALSE(prefs.GetValue(prefs::kManagedDefaultCookiesSetting, &val)); |
| 353 } | 740 } |
| 354 | 741 |
| 355 } // namespace policy | 742 } // namespace policy |
| OLD | NEW |