summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/imports.html
blob: ca6900744dcf3a07d98ddaa17b4173fd4bed5fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<html>
<head>
    <title>html-script-module-imports</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
</head>
<body>
    <h1>html-script-module-imports</h1>

    <script type="module">

        import { A } from "./imports-a.js";

        test(function () {
            assert_equals(A.from, "imports-a.js", "Unexpected A");
        }, "Import a simple module");

    </script>
    <script type="module">

        import { B as B_RENAMED } from "./imports-b.js";

        test(function () {
            assert_equals(B_RENAMED.from, "imports-b.js", "Unexpected B_RENAMED");

            try
            {
                B;
                assert_unreached("Unexpectedly defined B");
            }
            catch (ex)
            {}
        }, "Import a simple module, renamed");

    </script>
    <script type="module">

        import { INC_A } from "./imports-inc-a.js";
        import { INC_B } from "./imports-inc-b.js";
        import { INC_AB_A, INC_AB_B } from "./imports-inc-ab.js";

        test(function () {
            assert_equals(INC_A.from, "imports-a.js", "Unexpected INC_A");
            assert_equals(INC_B.from, "imports-b.js", "Unexpected INC_A");
            assert_equals(INC_AB_A.from, "imports-a.js", "Unexpected INC_A");
            assert_equals(INC_AB_B.from, "imports-b.js", "Unexpected INC_A");
            assert_equals(INC_A, INC_AB_A, "INC_A and INC_AB_A should be the same");
            assert_equals(INC_B, INC_AB_B, "INC_B and INC_AB_B should be the same");
        }, "Import the same module multiple times");

    </script>

    <script>
        var test_importSelf = async_test("Import a module that validly imports itself");
    </script>
    <script type="module" src="imports-self.js"></script>

    <script>
        var test_importCycle = async_test("Import a module with a valid cyclical module dependency");
    </script>
    <script type="module" src="imports-cycle.js"></script>
</body>
</html>