| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "bindings/core/v8/ScriptModule.h" | 5 #include "bindings/core/v8/ScriptModule.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/V8BindingForTesting.h" | 7 #include "bindings/core/v8/V8BindingForTesting.h" |
| 8 #include "bindings/core/v8/V8PerContextData.h" | 8 #include "bindings/core/v8/V8PerContextData.h" |
| 9 #include "core/dom/ScriptModuleResolver.h" | 9 #include "core/dom/ScriptModuleResolver.h" |
| 10 #include "core/testing/DummyModulator.h" | 10 #include "core/testing/DummyModulator.h" |
| 11 #include "testing/gmock/include/gmock/gmock-matchers.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "v8/include/v8.h" | 13 #include "v8/include/v8.h" |
| 13 | 14 |
| 14 namespace blink { | 15 namespace blink { |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 class TestScriptModuleResolver final : public ScriptModuleResolver { | 19 class TestScriptModuleResolver final : public ScriptModuleResolver { |
| 19 public: | 20 public: |
| 20 TestScriptModuleResolver() {} | 21 TestScriptModuleResolver() {} |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 ASSERT_FALSE(module.isNull()); | 79 ASSERT_FALSE(module.isNull()); |
| 79 } | 80 } |
| 80 | 81 |
| 81 TEST(ScriptModuleTest, compileFail) { | 82 TEST(ScriptModuleTest, compileFail) { |
| 82 V8TestingScope scope; | 83 V8TestingScope scope; |
| 83 ScriptModule module = | 84 ScriptModule module = |
| 84 ScriptModule::compile(scope.isolate(), "123 = 456", "foo.js"); | 85 ScriptModule::compile(scope.isolate(), "123 = 456", "foo.js"); |
| 85 ASSERT_TRUE(module.isNull()); | 86 ASSERT_TRUE(module.isNull()); |
| 86 } | 87 } |
| 87 | 88 |
| 89 TEST(ScriptModuleTest, moduleRequests) { |
| 90 V8TestingScope scope; |
| 91 ScriptModule module = ScriptModule::compile( |
| 92 scope.isolate(), "import 'a'; import 'b'; export const c = 'c';", |
| 93 "foo.js"); |
| 94 ASSERT_FALSE(module.isNull()); |
| 95 |
| 96 auto requests = module.moduleRequests(scope.getScriptState()); |
| 97 EXPECT_THAT(requests, ::testing::ContainerEq<Vector<String>>({"a", "b"})); |
| 98 } |
| 99 |
| 88 TEST(ScriptModuleTest, instantiateNoDeps) { | 100 TEST(ScriptModuleTest, instantiateNoDeps) { |
| 89 V8TestingScope scope; | 101 V8TestingScope scope; |
| 90 | 102 |
| 91 auto modulator = new ScriptModuleTestModulator(); | 103 auto modulator = new ScriptModuleTestModulator(); |
| 92 auto resolver = modulator->testScriptModuleResolver(); | 104 auto resolver = modulator->testScriptModuleResolver(); |
| 93 | 105 |
| 94 auto contextData = V8PerContextData::from(scope.context()); | 106 auto contextData = V8PerContextData::from(scope.context()); |
| 95 contextData->setModulator(modulator); | 107 contextData->setModulator(modulator); |
| 96 | 108 |
| 97 ScriptModule module = | 109 ScriptModule module = |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 ASSERT_TRUE(exception.isEmpty()); | 141 ASSERT_TRUE(exception.isEmpty()); |
| 130 | 142 |
| 131 ASSERT_EQ(2u, resolver->resolveCount()); | 143 ASSERT_EQ(2u, resolver->resolveCount()); |
| 132 EXPECT_EQ("a", resolver->specifiers()[0]); | 144 EXPECT_EQ("a", resolver->specifiers()[0]); |
| 133 EXPECT_EQ("b", resolver->specifiers()[1]); | 145 EXPECT_EQ("b", resolver->specifiers()[1]); |
| 134 } | 146 } |
| 135 | 147 |
| 136 } // namespace | 148 } // namespace |
| 137 | 149 |
| 138 } // namespace blink | 150 } // namespace blink |
| OLD | NEW |