1 // Copyright 2014 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. 4 5 #include "base/files/file_path.h" 6 #include "base/path_service.h" 7 #include "gin/modules/console.h" 8 #include "gin/modules/module_registry.h" 9 #include "gin/modules/timer.h" 10 #include "gin/test/file_runner.h" 11 #include "gin/test/gtest.h" 12 #include "mojo/bindings/js/core.h" 13 #include "mojo/bindings/js/support.h" 14 #include "mojo/public/cpp/environment/environment.h" 15 #include "testing/gtest/include/gtest/gtest.h" 16 17 namespace mojo { 18 namespace js { 19 namespace { 20 21 class TestRunnerDelegate : public gin::FileRunnerDelegate { 22 public: 23 TestRunnerDelegate() { 24 AddBuiltinModule(gin::Console::kModuleName, gin::Console::GetModule); 25 AddBuiltinModule(Core::kModuleName, Core::GetModule); 26 AddBuiltinModule(Support::kModuleName, Support::GetModule); 27 } 28 29 private: 30 DISALLOW_COPY_AND_ASSIGN(TestRunnerDelegate); 31 }; 32 33 void RunTest(std::string test, bool run_until_idle) { 34 Environment env; 35 base::FilePath path; 36 PathService::Get(base::DIR_SOURCE_ROOT, &path); 37 path = path.AppendASCII("mojo") 38 .AppendASCII("public") 39 .AppendASCII("js") 40 .AppendASCII("bindings") 41 .AppendASCII(test); 42 TestRunnerDelegate delegate; 43 gin::RunTestFromFile(path, &delegate, run_until_idle); 44 } 45 46 // TODO(abarth): Should we autogenerate these stubs from GYP? 47 TEST(JSTest, core) { 48 RunTest("core_unittests.js", true); 49 } 50 51 TEST(JSTest, codec) { 52 RunTest("codec_unittests.js", true); 53 } 54 55 TEST(JSTest, struct) { 56 RunTest("struct_unittests.js", true); 57 } 58 59 TEST(JSTest, validation) { 60 RunTest("validation_unittests.js", true); 61 } 62 63 } // namespace 64 } // namespace js 65 } // namespace mojo 66