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 |