1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "extensions/renderer/module_system_test.h"
60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "extensions/renderer/v8_schema_registry.h"
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "grit/extensions_renderer_resources.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class JsonSchemaTest : public ModuleSystemTest {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  virtual void SetUp() OVERRIDE {
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    ModuleSystemTest::SetUp();
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    env()->RegisterModule("json_schema", IDR_JSON_SCHEMA_JS);
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    env()->RegisterModule("utils", IDR_UTILS_JS);
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    env()->module_system()->RegisterNativeHandler(
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        "schema_registry", schema_registry_.AsNativeHandler());
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    env()->RegisterTestFile("json_schema_test", "json_schema_test.js");
23868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  }
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) protected:
26868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  void TestFunction(const std::string& test_name) {
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    env()->module_system()->CallModuleMethod("json_schema_test", test_name);
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) private:
31868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  V8SchemaRegistry schema_registry_;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestFormatError) {
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testFormatError");
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestComplex) {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testComplex");
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestEnum) {
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testEnum");
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestExtends) {
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testExtends");
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestObject) {
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testObject");
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestArrayTuple) {
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testArrayTuple");
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestArrayNonTuple) {
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testArrayNonTuple");
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestString) {
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testString");
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestNumber) {
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testNumber");
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestIntegerBounds) {
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testIntegerBounds");
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestType) {
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testType");
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestTypeReference) {
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testTypeReference");
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestGetAllTypesForSchema) {
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testGetAllTypesForSchema");
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestIsValidSchemaType) {
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testIsValidSchemaType");
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(JsonSchemaTest, TestCheckSchemaOverlap) {
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestFunction("testCheckSchemaOverlap");
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
94a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)TEST_F(JsonSchemaTest, TestInstanceOf) {
95a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  TestFunction("testInstanceOf");
96a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
97a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace extensions
99