Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 3 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /import-maps/static-integrity.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
let log = [];
</script>
<script type="importmap">
{
"imports": {
"./resources/log.js?pipe=sub&name=A": "./resources/log.js?pipe=sub&name=B",
"./resources/log.js?pipe=sub&name=C": "./resources/log.js?pipe=sub&name=D"
},
"integrity": {
"./resources/log.js?pipe=sub&name=B": "sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7",
"./resources/log.js?pipe=sub&name=D": "sha384-rxZqznFuOnvObm6JJKVmwzBXrsRG25IepqKDFHGhtitRu9YPjxPpRPMIu2hzvtxF",
"./resources/log.js?pipe=sub&name=X": "sha384-mCon9M46vUfNK2Wb3yjvBmpBw/3hwB+wMYS8IzDBng+7//R5Qao35E1azo4gFVzx",
"./resources/log.js?pipe=sub&name=Y": "sha384-u0yaFlBF39Au++qcn+MGL/Ml7UmuVfLymNJAz6Yyi4RqyUfWelcuAzVyE8Shs9xn",
"./resources/log.js?pipe=sub&name=Z": "sha384-u0yaFlBF39Au++qcn+MGL/Ml7UmuVfLymNJAz6Yyi4RqyUfWelcuAzVyE8Shs9xn"
}
}
</script>
<script type="module">
import './resources/log.js?pipe=sub&name=A';
</script>
<script type="module">
test(t => {
assert_array_equals(log, []);
}, 'Static script did not load as it failed its integrity check');
log = [];
</script>
<script type="module">
import './resources/log.js?pipe=sub&name=C';
</script>
<script type="module">
test(t => {
assert_array_equals(log, ["log:D"]);
}, 'Static script loaded as its integrity check passed');
log = [];
</script>
<script type="module">
import './resources/log.js?pipe=sub&name=X';
</script>
<script type="module">
test(t => {
assert_array_equals(log, []);
}, 'Static script did not load as it failed its integrity check, even' +
' without an import defined');
log = [];
</script>
<script type="module">
import './resources/log.js?pipe=sub&name=Y';
</script>
<script type="module">
test(t => {
assert_array_equals(log, ["log:Y"]);
}, 'Static script loaded as its integrity check passed without an import' +
' defined');
log = [];
</script>
<script type="module" src="./resources/log.js?pipe=sub&name=Z">;
</script>
<script type="module">
test(t => {
assert_array_equals(log, []);
}, 'HTML-based module script did not load as its integrity check failed.');
log = [];
</script>