| 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 |