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