| Index: components/policy/core/browser/configuration_policy_handler_unittest.cc
|
| diff --git a/components/policy/core/browser/configuration_policy_handler_unittest.cc b/components/policy/core/browser/configuration_policy_handler_unittest.cc
|
| index 4947dbf9eeac05fb75a97bedb12341ad713c0d42..6145ae9afb39d0eb5ddfd4627ab18c555588fa03 100644
|
| --- a/components/policy/core/browser/configuration_policy_handler_unittest.cc
|
| +++ b/components/policy/core/browser/configuration_policy_handler_unittest.cc
|
| @@ -25,13 +25,12 @@ StringToIntEnumListPolicyHandler::MappingEntry kTestTypeMap[] = {
|
| const char kTestPolicy[] = "unit_test.test_policy";
|
| const char kTestPref[] = "unit_test.test_pref";
|
|
|
| -class SimpleSchemaValidatingPolicyHandler
|
| - : public SchemaValidatingPolicyHandler {
|
| +class TestSchemaValidatingPolicyHandler : public SchemaValidatingPolicyHandler {
|
| public:
|
| - SimpleSchemaValidatingPolicyHandler(const Schema& schema,
|
| - SchemaOnErrorStrategy strategy)
|
| + TestSchemaValidatingPolicyHandler(const Schema& schema,
|
| + SchemaOnErrorStrategy strategy)
|
| : SchemaValidatingPolicyHandler("PolicyForTesting", schema, strategy) {}
|
| - virtual ~SimpleSchemaValidatingPolicyHandler() {}
|
| + virtual ~TestSchemaValidatingPolicyHandler() {}
|
|
|
| virtual void ApplyPolicySettings(const policy::PolicyMap&,
|
| PrefValueMap*) OVERRIDE {
|
| @@ -543,7 +542,7 @@ TEST(SchemaValidatingPolicyHandlerTest, CheckAndGetValue) {
|
| policy_map.LoadFrom(
|
| policy_map_dict, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER);
|
|
|
| - SimpleSchemaValidatingPolicyHandler handler(schema, SCHEMA_ALLOW_INVALID);
|
| + TestSchemaValidatingPolicyHandler handler(schema, SCHEMA_ALLOW_INVALID);
|
| scoped_ptr<base::Value> output_value;
|
| ASSERT_TRUE(handler.CheckAndGetValueForTest(policy_map, &output_value));
|
| ASSERT_TRUE(output_value);
|
| @@ -558,4 +557,140 @@ TEST(SchemaValidatingPolicyHandlerTest, CheckAndGetValue) {
|
| EXPECT_FALSE(dict->HasKey("Colors"));
|
| }
|
|
|
| +TEST(SimpleSchemaValidatingPolicyHandlerTest, CheckAndGetValue) {
|
| + const char policy_name[] = "PolicyForTesting";
|
| + static const char kSchemaJson[] =
|
| + "{"
|
| + " \"type\": \"object\","
|
| + " \"properties\": {"
|
| + " \"PolicyForTesting\": {"
|
| + " \"type\": \"object\","
|
| + " \"properties\": {"
|
| + " \"OneToThree\": {"
|
| + " \"type\": \"integer\","
|
| + " \"minimum\": 1,"
|
| + " \"maximum\": 3"
|
| + " },"
|
| + " \"Colors\": {"
|
| + " \"type\": \"string\","
|
| + " \"enum\": [ \"Red\", \"Green\", \"Blue\" ]"
|
| + " }"
|
| + " }"
|
| + " }"
|
| + " }"
|
| + "}";
|
| + std::string error;
|
| + Schema schema = Schema::Parse(kSchemaJson, &error);
|
| + ASSERT_TRUE(schema.valid()) << error;
|
| +
|
| + static const char kPolicyMapJson[] =
|
| + "{"
|
| + " \"PolicyForTesting\": {"
|
| + " \"OneToThree\": 2,"
|
| + " \"Colors\": \"Green\""
|
| + " }"
|
| + "}";
|
| + scoped_ptr<base::Value> policy_map_value(base::JSONReader::ReadAndReturnError(
|
| + kPolicyMapJson, base::JSON_PARSE_RFC, NULL, &error));
|
| + ASSERT_TRUE(policy_map_value) << error;
|
| +
|
| + const base::DictionaryValue* policy_map_dict = NULL;
|
| + ASSERT_TRUE(policy_map_value->GetAsDictionary(&policy_map_dict));
|
| +
|
| + PolicyMap policy_map_recommended;
|
| + policy_map_recommended.LoadFrom(
|
| + policy_map_dict, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER);
|
| +
|
| + PolicyMap policy_map_mandatory;
|
| + policy_map_mandatory.LoadFrom(
|
| + policy_map_dict, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER);
|
| +
|
| + SimpleSchemaValidatingPolicyHandler handler_all(
|
| + policy_name,
|
| + kTestPref,
|
| + schema,
|
| + SCHEMA_STRICT,
|
| + SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED,
|
| + SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED);
|
| +
|
| + SimpleSchemaValidatingPolicyHandler handler_recommended(
|
| + policy_name,
|
| + kTestPref,
|
| + schema,
|
| + SCHEMA_STRICT,
|
| + SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED,
|
| + SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED);
|
| +
|
| + SimpleSchemaValidatingPolicyHandler handler_mandatory(
|
| + policy_name,
|
| + kTestPref,
|
| + schema,
|
| + SCHEMA_STRICT,
|
| + SimpleSchemaValidatingPolicyHandler::RECOMMENDED_PROHIBITED,
|
| + SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED);
|
| +
|
| + SimpleSchemaValidatingPolicyHandler handler_none(
|
| + policy_name,
|
| + kTestPref,
|
| + schema,
|
| + SCHEMA_STRICT,
|
| + SimpleSchemaValidatingPolicyHandler::RECOMMENDED_PROHIBITED,
|
| + SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED);
|
| +
|
| + const base::Value* value_expected_in_pref;
|
| + policy_map_dict->Get(policy_name, &value_expected_in_pref);
|
| +
|
| + PolicyErrorMap errors;
|
| + PrefValueMap prefs;
|
| + base::Value* value_set_in_pref;
|
| +
|
| + EXPECT_TRUE(handler_all.CheckPolicySettings(policy_map_mandatory, &errors));
|
| + EXPECT_TRUE(errors.empty());
|
| + prefs.Clear();
|
| + handler_all.ApplyPolicySettings(policy_map_mandatory, &prefs);
|
| + EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref));
|
| + EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref));
|
| +
|
| + EXPECT_FALSE(
|
| + handler_recommended.CheckPolicySettings(policy_map_mandatory, &errors));
|
| + EXPECT_FALSE(errors.empty());
|
| + errors.Clear();
|
| +
|
| + EXPECT_TRUE(
|
| + handler_mandatory.CheckPolicySettings(policy_map_mandatory, &errors));
|
| + EXPECT_TRUE(errors.empty());
|
| + prefs.Clear();
|
| + handler_mandatory.ApplyPolicySettings(policy_map_mandatory, &prefs);
|
| + EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref));
|
| + EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref));
|
| +
|
| + EXPECT_FALSE(handler_none.CheckPolicySettings(policy_map_mandatory, &errors));
|
| + EXPECT_FALSE(errors.empty());
|
| + errors.Clear();
|
| +
|
| + EXPECT_TRUE(handler_all.CheckPolicySettings(policy_map_recommended, &errors));
|
| + EXPECT_TRUE(errors.empty());
|
| + prefs.Clear();
|
| + handler_all.ApplyPolicySettings(policy_map_mandatory, &prefs);
|
| + EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref));
|
| + EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref));
|
| +
|
| + EXPECT_FALSE(
|
| + handler_mandatory.CheckPolicySettings(policy_map_recommended, &errors));
|
| + EXPECT_FALSE(errors.empty());
|
| + errors.Clear();
|
| +
|
| + EXPECT_TRUE(
|
| + handler_recommended.CheckPolicySettings(policy_map_recommended, &errors));
|
| + EXPECT_TRUE(errors.empty());
|
| + prefs.Clear();
|
| + handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs);
|
| + EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref));
|
| + EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref));
|
| +
|
| + EXPECT_FALSE(
|
| + handler_none.CheckPolicySettings(policy_map_recommended, &errors));
|
| + EXPECT_FALSE(errors.empty());
|
| +}
|
| +
|
| } // namespace policy
|
|
|