1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_
6 #define COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_
8 #include "testing/gtest/include/gtest/gtest.h"
11 class DictionaryValue
;
16 // Base class for unit tests for JSONSchemaValidator. There is currently only
17 // one implementation, JSONSchemaValidatorCPPTest.
19 // TODO(aa): Refactor chrome/test/data/json_schema_test.js into
20 // JSONSchemaValidatorJSTest that inherits from this.
21 class JSONSchemaValidatorTestBase
: public testing::Test
{
28 explicit JSONSchemaValidatorTestBase(ValidatorType type
);
33 virtual void ExpectValid(const std::string
& test_source
,
34 base::Value
* instance
,
35 base::DictionaryValue
* schema
,
36 base::ListValue
* types
) = 0;
38 virtual void ExpectNotValid(const std::string
& test_source
,
39 base::Value
* instance
,
40 base::DictionaryValue
* schema
,
41 base::ListValue
* types
,
42 const std::string
& expected_error_path
,
43 const std::string
& expected_error_message
) = 0;
47 void TestStringPattern();
52 void TestTypeReference();
53 void TestArrayTuple();
54 void TestArrayNonTuple();
57 void TestTypeClassifier();
63 #endif // COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_VALIDATOR_UNITTEST_BASE_H_