Index: chrome/common/policy/policy_schema_unittest.cc |
diff --git a/chrome/common/policy/policy_schema_unittest.cc b/chrome/common/policy/policy_schema_unittest.cc |
deleted file mode 100644 |
index 9f515a24351811a200976432f6fde0601143afd6..0000000000000000000000000000000000000000 |
--- a/chrome/common/policy/policy_schema_unittest.cc |
+++ /dev/null |
@@ -1,194 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/common/policy/policy_schema.h" |
- |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace policy { |
- |
-namespace { |
- |
-#define SCHEMA_VERSION "\"$schema\":\"http://json-schema.org/draft-03/schema#\"" |
-#define OBJECT_TYPE "\"type\":\"object\"" |
- |
-bool ParseFails(const std::string& content) { |
- std::string error; |
- scoped_ptr<PolicySchema> schema = PolicySchema::Parse(content, &error); |
- EXPECT_TRUE(schema || !error.empty()); |
- return !schema; |
-} |
- |
-} // namespace |
- |
-TEST(PolicySchemaTest, MinimalSchema) { |
- EXPECT_FALSE(ParseFails( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE |
- "}")); |
-} |
- |
-TEST(PolicySchemaTest, InvalidSchemas) { |
- EXPECT_TRUE(ParseFails("")); |
- EXPECT_TRUE(ParseFails("omg")); |
- EXPECT_TRUE(ParseFails("\"omg\"")); |
- EXPECT_TRUE(ParseFails("123")); |
- EXPECT_TRUE(ParseFails("[]")); |
- EXPECT_TRUE(ParseFails("null")); |
- EXPECT_TRUE(ParseFails("{}")); |
- EXPECT_TRUE(ParseFails("{" SCHEMA_VERSION "}")); |
- EXPECT_TRUE(ParseFails("{" OBJECT_TYPE "}")); |
- |
- EXPECT_TRUE(ParseFails( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE "," |
- "\"additionalProperties\": { \"type\":\"object\" }" |
- "}")); |
- |
- EXPECT_TRUE(ParseFails( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE "," |
- "\"patternProperties\": { \"a+b*\": { \"type\": \"object\" } }" |
- "}")); |
- |
- EXPECT_TRUE(ParseFails( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE "," |
- "\"properties\": { \"Policy\": { \"type\": \"bogus\" } }" |
- "}")); |
- |
- EXPECT_TRUE(ParseFails( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE "," |
- "\"properties\": { \"Policy\": { \"type\": [\"string\", \"number\"] } }" |
- "}")); |
- |
- EXPECT_TRUE(ParseFails( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE "," |
- "\"properties\": { \"Policy\": { \"type\": \"any\" } }" |
- "}")); |
-} |
- |
-TEST(PolicySchemaTest, ValidSchema) { |
- std::string error; |
- scoped_ptr<PolicySchema> schema = PolicySchema::Parse( |
- "{" |
- SCHEMA_VERSION "," |
- OBJECT_TYPE "," |
- "\"properties\": {" |
- " \"Boolean\": { \"type\": \"boolean\" }," |
- " \"Integer\": { \"type\": \"integer\" }," |
- " \"Null\": { \"type\": \"null\" }," |
- " \"Number\": { \"type\": \"number\" }," |
- " \"String\": { \"type\": \"string\" }," |
- " \"Array\": {" |
- " \"type\": \"array\"," |
- " \"items\": { \"type\": \"string\" }" |
- " }," |
- " \"ArrayOfObjects\": {" |
- " \"type\": \"array\"," |
- " \"items\": {" |
- " \"type\": \"object\"," |
- " \"properties\": {" |
- " \"one\": { \"type\": \"string\" }," |
- " \"two\": { \"type\": \"integer\" }" |
- " }" |
- " }" |
- " }," |
- " \"ArrayOfArray\": {" |
- " \"type\": \"array\"," |
- " \"items\": {" |
- " \"type\": \"array\"," |
- " \"items\": { \"type\": \"string\" }" |
- " }" |
- " }," |
- " \"Object\": {" |
- " \"type\": \"object\"," |
- " \"properties\": {" |
- " \"one\": { \"type\": \"boolean\" }," |
- " \"two\": { \"type\": \"integer\" }" |
- " }," |
- " \"additionalProperties\": { \"type\": \"string\" }" |
- " }" |
- "}" |
- "}", &error); |
- ASSERT_TRUE(schema) << error; |
- |
- ASSERT_EQ(base::Value::TYPE_DICTIONARY, schema->type()); |
- EXPECT_FALSE(schema->GetSchemaForProperty("invalid")); |
- |
- const PolicySchema* sub = schema->GetSchemaForProperty("Boolean"); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_BOOLEAN, sub->type()); |
- |
- sub = schema->GetSchemaForProperty("Integer"); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_INTEGER, sub->type()); |
- |
- sub = schema->GetSchemaForProperty("Null"); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_NULL, sub->type()); |
- |
- sub = schema->GetSchemaForProperty("Number"); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_DOUBLE, sub->type()); |
- sub = schema->GetSchemaForProperty("String"); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_STRING, sub->type()); |
- |
- sub = schema->GetSchemaForProperty("Array"); |
- ASSERT_TRUE(sub); |
- ASSERT_EQ(base::Value::TYPE_LIST, sub->type()); |
- sub = sub->GetSchemaForItems(); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_STRING, sub->type()); |
- |
- sub = schema->GetSchemaForProperty("ArrayOfObjects"); |
- ASSERT_TRUE(sub); |
- ASSERT_EQ(base::Value::TYPE_LIST, sub->type()); |
- sub = sub->GetSchemaForItems(); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_DICTIONARY, sub->type()); |
- const PolicySchema* subsub = sub->GetSchemaForProperty("one"); |
- ASSERT_TRUE(subsub); |
- EXPECT_EQ(base::Value::TYPE_STRING, subsub->type()); |
- subsub = sub->GetSchemaForProperty("two"); |
- ASSERT_TRUE(subsub); |
- EXPECT_EQ(base::Value::TYPE_INTEGER, subsub->type()); |
- subsub = sub->GetSchemaForProperty("invalid"); |
- EXPECT_FALSE(subsub); |
- |
- sub = schema->GetSchemaForProperty("ArrayOfArray"); |
- ASSERT_TRUE(sub); |
- ASSERT_EQ(base::Value::TYPE_LIST, sub->type()); |
- sub = sub->GetSchemaForItems(); |
- ASSERT_TRUE(sub); |
- ASSERT_EQ(base::Value::TYPE_LIST, sub->type()); |
- sub = sub->GetSchemaForItems(); |
- ASSERT_TRUE(sub); |
- EXPECT_EQ(base::Value::TYPE_STRING, sub->type()); |
- |
- sub = schema->GetSchemaForProperty("Object"); |
- ASSERT_TRUE(sub); |
- ASSERT_EQ(base::Value::TYPE_DICTIONARY, sub->type()); |
- subsub = sub->GetSchemaForProperty("one"); |
- ASSERT_TRUE(subsub); |
- EXPECT_EQ(base::Value::TYPE_BOOLEAN, subsub->type()); |
- subsub = sub->GetSchemaForProperty("two"); |
- ASSERT_TRUE(subsub); |
- EXPECT_EQ(base::Value::TYPE_INTEGER, subsub->type()); |
- subsub = sub->GetSchemaForProperty("undeclared"); |
- ASSERT_TRUE(subsub); |
- EXPECT_EQ(base::Value::TYPE_STRING, subsub->type()); |
-} |
- |
-} // namespace policy |
- |