| Index: third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp b/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
|
| index 69d39367b10596a01751bfedd3e6b000f2bd6276..72f67ef274c711e31280bbce05005f957065ddee 100644
|
| --- a/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
|
| @@ -503,4 +503,32 @@ TEST_F(ModuleTreeLinkerTest, FetchDependencyTree) {
|
| ModuleInstantiationState::kInstantiated);
|
| }
|
|
|
| +TEST_F(ModuleTreeLinkerTest, FetchDependencyOfCyclicGraph) {
|
| + ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create();
|
| +
|
| + KURL url(kParsedURLString, "http://example.com/a.js");
|
| + ModuleScriptFetchRequest module_request(
|
| + url, String(), kParserInserted, WebURLRequest::kFetchCredentialsModeOmit);
|
| + TestModuleTreeClient* client = new TestModuleTreeClient;
|
| + registry->Fetch(
|
| + module_request,
|
| + AncestorList{KURL(kParsedURLString, "http://example.com/a.js")},
|
| + ModuleGraphLevel::kDependentModuleFetch, GetModulator(), client);
|
| +
|
| + EXPECT_FALSE(client->WasNotifyFinished())
|
| + << "ModuleTreeLinker should always finish asynchronously.";
|
| + EXPECT_FALSE(client->GetModuleScript());
|
| +
|
| + GetModulator()->ResolveSingleModuleScriptFetch(
|
| + url, {"./a.js"}, ModuleInstantiationState::kUninstantiated);
|
| +
|
| + auto ancestor_list = GetModulator()->GetAncestorListForTreeFetch(url);
|
| + EXPECT_EQ(0u, ancestor_list.size());
|
| +
|
| + EXPECT_TRUE(client->WasNotifyFinished());
|
| + ASSERT_TRUE(client->GetModuleScript());
|
| + EXPECT_EQ(client->GetModuleScript()->InstantiationState(),
|
| + ModuleInstantiationState::kInstantiated);
|
| +}
|
| +
|
| } // namespace blink
|
|
|