// 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 extensions/test/data/json_schema_test.js into // JSONSchemaValidatorJSTest that inherits from this. class JSONSchemaValidatorTestBase : public testing::Test { public: JSONSchemaValidatorTestBase(); 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(); }; #endif // COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_