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 17namespace mojo { 18namespace js { 19namespace { 20 21class 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 33void 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? 47TEST(JSTest, core) { 48 RunTest("core_unittests.js", true); 49} 50 51TEST(JSTest, codec) { 52 RunTest("codec_unittests.js", true); 53} 54 55TEST(JSTest, struct) { 56 RunTest("struct_unittests.js", true); 57} 58 59TEST(JSTest, validation) { 60 RunTest("validation_unittests.js", true); 61} 62 63} // namespace 64} // namespace js 65} // namespace mojo 66