OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 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/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback.h" | 6 #include "base/callback.h" |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/prefs/pref_value_map.h" | 9 #include "base/prefs/pref_value_map.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 // This tests needs to modify an int policy. The exact policy used and its | 423 // This tests needs to modify an int policy. The exact policy used and its |
424 // semantics outside the test are irrelevant. | 424 // semantics outside the test are irrelevant. |
425 IntPercentageToDoublePolicyHandler handler( | 425 IntPercentageToDoublePolicyHandler handler( |
426 kTestPolicy, kTestPref, 0, 10, true); | 426 kTestPolicy, kTestPref, 0, 10, true); |
427 | 427 |
428 // Check that values lying in the accepted range are written to the pref. | 428 // Check that values lying in the accepted range are written to the pref. |
429 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 429 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
430 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0), NULL); | 430 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0), NULL); |
431 prefs.Clear(); | 431 prefs.Clear(); |
432 handler.ApplyPolicySettings(policy_map, &prefs); | 432 handler.ApplyPolicySettings(policy_map, &prefs); |
433 expected.reset(base::Value::CreateDoubleValue(0.0)); | 433 expected.reset(new base::FundamentalValue(0.0)); |
434 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 434 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
435 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 435 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
436 | 436 |
437 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 437 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
438 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5), NULL); | 438 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5), NULL); |
439 prefs.Clear(); | 439 prefs.Clear(); |
440 handler.ApplyPolicySettings(policy_map, &prefs); | 440 handler.ApplyPolicySettings(policy_map, &prefs); |
441 expected.reset(base::Value::CreateDoubleValue(0.05)); | 441 expected.reset(new base::FundamentalValue(0.05)); |
442 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 442 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
443 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 443 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
444 | 444 |
445 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 445 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
446 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10), NULL); | 446 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10), NULL); |
447 prefs.Clear(); | 447 prefs.Clear(); |
448 handler.ApplyPolicySettings(policy_map, &prefs); | 448 handler.ApplyPolicySettings(policy_map, &prefs); |
449 expected.reset(base::Value::CreateDoubleValue(0.1)); | 449 expected.reset(new base::FundamentalValue(0.1)); |
450 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 450 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
451 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 451 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
452 | 452 |
453 // Check that values lying outside the accepted range are clamped and written | 453 // Check that values lying outside the accepted range are clamped and written |
454 // to the pref. | 454 // to the pref. |
455 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 455 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
456 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5), NULL); | 456 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(-5), NULL); |
457 prefs.Clear(); | 457 prefs.Clear(); |
458 handler.ApplyPolicySettings(policy_map, &prefs); | 458 handler.ApplyPolicySettings(policy_map, &prefs); |
459 expected.reset(base::Value::CreateDoubleValue(0.0)); | 459 expected.reset(new base::FundamentalValue(0.0)); |
460 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 460 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
461 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 461 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
462 | 462 |
463 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 463 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
464 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15), NULL); | 464 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(15), NULL); |
465 prefs.Clear(); | 465 prefs.Clear(); |
466 handler.ApplyPolicySettings(policy_map, &prefs); | 466 handler.ApplyPolicySettings(policy_map, &prefs); |
467 expected.reset(base::Value::CreateDoubleValue(0.1)); | 467 expected.reset(new base::FundamentalValue(0.1)); |
468 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 468 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
469 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 469 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
470 } | 470 } |
471 | 471 |
472 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsDontClamp) { | 472 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsDontClamp) { |
473 PolicyMap policy_map; | 473 PolicyMap policy_map; |
474 PrefValueMap prefs; | 474 PrefValueMap prefs; |
475 scoped_ptr<base::Value> expected; | 475 scoped_ptr<base::Value> expected; |
476 const base::Value* value; | 476 const base::Value* value; |
477 | 477 |
478 // This tests needs to modify an int policy. The exact policy used and its | 478 // This tests needs to modify an int policy. The exact policy used and its |
479 // semantics outside the test are irrelevant. | 479 // semantics outside the test are irrelevant. |
480 IntPercentageToDoublePolicyHandler handler( | 480 IntPercentageToDoublePolicyHandler handler( |
481 kTestPolicy, kTestPref, 0, 10, true); | 481 kTestPolicy, kTestPref, 0, 10, true); |
482 | 482 |
483 // Check that values lying in the accepted range are written to the pref. | 483 // Check that values lying in the accepted range are written to the pref. |
484 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 484 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
485 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0), NULL); | 485 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(0), NULL); |
486 prefs.Clear(); | 486 prefs.Clear(); |
487 handler.ApplyPolicySettings(policy_map, &prefs); | 487 handler.ApplyPolicySettings(policy_map, &prefs); |
488 expected.reset(base::Value::CreateDoubleValue(0.0)); | 488 expected.reset(new base::FundamentalValue(0.0)); |
489 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 489 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
490 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 490 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
491 | 491 |
492 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 492 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
493 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5), NULL); | 493 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(5), NULL); |
494 prefs.Clear(); | 494 prefs.Clear(); |
495 handler.ApplyPolicySettings(policy_map, &prefs); | 495 handler.ApplyPolicySettings(policy_map, &prefs); |
496 expected.reset(base::Value::CreateDoubleValue(0.05)); | 496 expected.reset(new base::FundamentalValue(0.05)); |
497 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 497 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
498 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 498 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
499 | 499 |
500 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, | 500 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, |
501 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10), NULL); | 501 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(10), NULL); |
502 prefs.Clear(); | 502 prefs.Clear(); |
503 handler.ApplyPolicySettings(policy_map, &prefs); | 503 handler.ApplyPolicySettings(policy_map, &prefs); |
504 expected.reset(base::Value::CreateDoubleValue(0.1)); | 504 expected.reset(new base::FundamentalValue(0.1)); |
505 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 505 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
506 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); | 506 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); |
507 } | 507 } |
508 | 508 |
509 TEST(SchemaValidatingPolicyHandlerTest, CheckAndGetValue) { | 509 TEST(SchemaValidatingPolicyHandlerTest, CheckAndGetValue) { |
510 std::string error; | 510 std::string error; |
511 static const char kSchemaJson[] = | 511 static const char kSchemaJson[] = |
512 "{" | 512 "{" |
513 " \"type\": \"object\"," | 513 " \"type\": \"object\"," |
514 " \"properties\": {" | 514 " \"properties\": {" |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs); | 689 handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs); |
690 EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref)); | 690 EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref)); |
691 EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref)); | 691 EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref)); |
692 | 692 |
693 EXPECT_FALSE( | 693 EXPECT_FALSE( |
694 handler_none.CheckPolicySettings(policy_map_recommended, &errors)); | 694 handler_none.CheckPolicySettings(policy_map_recommended, &errors)); |
695 EXPECT_FALSE(errors.empty()); | 695 EXPECT_FALSE(errors.empty()); |
696 } | 696 } |
697 | 697 |
698 } // namespace policy | 698 } // namespace policy |
OLD | NEW |