| Index: third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..26eefed6a67858e4e5322a5b2f3403828d76b909
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html
|
| @@ -0,0 +1,66 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<title>External classic scripts with nomodule content attribute must not run</title>
|
| +<link rel="author" title="Yusuke Suzuki" href="mailto:utatane.tea@gmail.com">
|
| +<link rel="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<!-- Load this script synchronously to ensure test cases below can load it in 200ms -->
|
| +<script src="resources/set-script-executed.js"></script>
|
| +</head>
|
| +<body>
|
| +<script>
|
| +
|
| +waitForLoadEvent = new Promise((resolve) => {
|
| + window.onload = resolve;
|
| +});
|
| +
|
| +waitForAsyncScript = () => {
|
| + return new Promise((resolve) => {
|
| + waitForLoadEvent.then(() => setTimeout(resolve, 200));
|
| + });
|
| +}
|
| +
|
| +let readyForSecondTest;
|
| +promise_test(() => {
|
| + window.executed = false;
|
| + let loaded = false;
|
| + let errored = false;
|
| +
|
| + let script = document.createElement('script');
|
| + script.src = './resources/set-script-executed.js';
|
| + script.onload = () => loaded = true;
|
| + script.onerror = () => errored = true;
|
| + script.noModule = false;
|
| + document.body.appendChild(script);
|
| +
|
| + return waitForAsyncScript().then(() => {
|
| + assert_true(executed);
|
| + assert_true(loaded);
|
| + assert_false(errored);
|
| + });
|
| +}, 'An asynchronously loaded classic script with noModule set to false must run');
|
| +
|
| +promise_test(() => {
|
| + window.executed = false;
|
| + let loaded = false;
|
| + let errored = false;
|
| +
|
| + let script = document.createElement('script');
|
| + script.src = './resources/set-script-executed.js';
|
| + script.onload = () => loaded = true;
|
| + script.onerror = () => errored = true;
|
| + script.noModule = true;
|
| + document.body.appendChild(script);
|
| +
|
| + return waitForAsyncScript().then(() => {
|
| + assert_false(executed);
|
| + assert_false(loaded);
|
| + assert_false(errored);
|
| + });
|
| +}, 'An asynchronously loaded classic script with noModule set to true must not run');
|
| +
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|