| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "base/strings/stringprintf.h" |
| #include "extensions/grit/extensions_renderer_resources.h" |
| #include "extensions/renderer/module_system_test.h" |
| |
| namespace extensions { |
| namespace { |
| |
| class UtilsUnittest : public ModuleSystemTest { |
| public: |
| void SetUp() override { |
| ModuleSystemTest::SetUp(); |
| |
| env()->RegisterModule("utils", IDR_UTILS_JS); |
| env()->RegisterTestFile("utils_unittest", "utils_unittest.js"); |
| env()->OverrideNativeHandler("schema_registry", |
| "exports.$set('GetSchema', function() {});"); |
| env()->OverrideNativeHandler("logging", |
| "exports.$set('CHECK', function() {});\n" |
| "exports.$set('DCHECK', function() {});\n" |
| "exports.$set('WARNING', function() {});"); |
| env()->OverrideNativeHandler("v8_context", ""); |
| } |
| |
| void RunTest(const std::string& test_name) { RunTestImpl(test_name, false); } |
| |
| void RunTestWithPromises(const std::string& test_name) { |
| RunTestImpl(test_name, true); |
| } |
| |
| private: |
| void RunTestImpl(const std::string& test_name, bool run_promises) { |
| ModuleSystem::NativesEnabledScope natives_enabled_scope( |
| env()->module_system()); |
| ASSERT_FALSE(env() |
| ->module_system() |
| ->Require("utils_unittest") |
| .ToLocalChecked() |
| .IsEmpty()); |
| env()->module_system()->CallModuleMethodSafe("utils_unittest", test_name); |
| if (run_promises) |
| RunResolvedPromises(); |
| } |
| }; |
| |
| TEST_F(UtilsUnittest, TestNothing) { |
| ExpectNoAssertionsMade(); |
| } |
| |
| TEST_F(UtilsUnittest, SuperClass) { |
| RunTest("testSuperClass"); |
| } |
| |
| } // namespace |
| } // namespace extensions |