summaryrefslogtreecommitdiffstats
path: root/components/json_schema/json_schema_validator_unittest_base.h
diff options
context:
space:
mode:
authorjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-13 22:55:07 +0000
committerjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-13 22:55:07 +0000
commitfb1397cef99cab7b52130905de9006d52b28d0e6 (patch)
tree36787176f93388470ed6b8593b56915c3105e5d1 /components/json_schema/json_schema_validator_unittest_base.h
parent475a87a928354bd896d4149f69de2c01185f6187 (diff)
downloadchromium_src-fb1397cef99cab7b52130905de9006d52b28d0e6.zip
chromium_src-fb1397cef99cab7b52130905de9006d52b28d0e6.tar.gz
chromium_src-fb1397cef99cab7b52130905de9006d52b28d0e6.tar.bz2
Moved chrome/common/json_schema to components/json_schema.
BUG=271392 Review URL: https://chromiumcodereview.appspot.com/22807004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217364 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/json_schema/json_schema_validator_unittest_base.h')
-rw-r--r--components/json_schema/json_schema_validator_unittest_base.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/components/json_schema/json_schema_validator_unittest_base.h b/components/json_schema/json_schema_validator_unittest_base.h
new file mode 100644
index 0000000..7b4854e
--- /dev/null
+++ b/components/json_schema/json_schema_validator_unittest_base.h
@@ -0,0 +1,63 @@
+// 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.
+
+#ifndef COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_
+#define COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+class DictionaryValue;
+class ListValue;
+class Value;
+}
+
+// Base class for unit tests for JSONSchemaValidator. There is currently only
+// one implementation, JSONSchemaValidatorCPPTest.
+//
+// TODO(aa): Refactor chrome/test/data/json_schema_test.js into
+// JSONSchemaValidatorJSTest that inherits from this.
+class JSONSchemaValidatorTestBase : public testing::Test {
+ public:
+ enum ValidatorType {
+ CPP = 1,
+ JS = 2
+ };
+
+ explicit JSONSchemaValidatorTestBase(ValidatorType type);
+
+ void RunTests();
+
+ protected:
+ virtual void ExpectValid(const std::string& test_source,
+ base::Value* instance,
+ base::DictionaryValue* schema,
+ base::ListValue* types) = 0;
+
+ virtual void ExpectNotValid(const std::string& test_source,
+ base::Value* instance,
+ base::DictionaryValue* schema,
+ base::ListValue* types,
+ const std::string& expected_error_path,
+ const std::string& expected_error_message) = 0;
+
+ private:
+ void TestComplex();
+ void TestStringPattern();
+ void TestEnum();
+ void TestChoices();
+ void TestExtends();
+ void TestObject();
+ void TestTypeReference();
+ void TestArrayTuple();
+ void TestArrayNonTuple();
+ void TestString();
+ void TestNumber();
+ void TestTypeClassifier();
+ void TestTypes();
+
+ ValidatorType type_;
+};
+
+#endif // COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_