-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1621581 [wpt PR 22185] - Add WPTs for parse error handling in Sha…
…redWorkers, a=testonly Automatic update from web-platform-tests Add WPTs for parse error handling in SharedWorkers Follows whatwg/html#5347. -- wpt-commits: bd6c94ee488cb2c968221a547604fb6c4807a2ca wpt-pr: 22185 UltraBlame original commit: 4dc14a36b48c3c255bb709ac57eed5a85f3bb67b
- Loading branch information
Showing
3 changed files
with
79 additions
and
0 deletions.
There are no files selected for viewing
49 changes: 49 additions & 0 deletions
49
testing/web-platform/tests/workers/modules/shared-worker-parse-error-failure.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<!DOCTYPE html> | ||
<title>SharedWorker: parse error failure</title> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="../support/check-error-arguments.js"></script> | ||
<script> | ||
|
||
// Check if module shared worker is supported. | ||
// In this test scope, we only use simple non-nested static import as a feature | ||
// of module shared worker, so we only check if static import is supported. | ||
// | ||
// This check is necessary to appropriately test parse error handling because | ||
// we need to distingusih the parse error invoked by unsupported "import" in | ||
// the top-level script from the parse error invoked by the statically imported | ||
// script which is the one we want to check in this test. | ||
promise_setup(async () => { | ||
const scriptURL = 'resources/static-import-worker.js'; | ||
const worker = new SharedWorker(scriptURL, { type: 'module' }); | ||
const supportsModuleWorkers = await new Promise((resolve, reject) => { | ||
worker.port.onmessage = e => { | ||
resolve(e.data.length == 1 && e.data[0] == 'export-on-load-script.js'); | ||
}; | ||
worker.onerror = () => resolve(false); | ||
}); | ||
assert_precondition( | ||
supportsModuleWorkers, | ||
"Static import must be supported on module shared worker to run this test." | ||
); | ||
}); | ||
|
||
promise_test(async () => { | ||
const scriptURL = 'resources/syntax-error.js'; | ||
const worker = new SharedWorker(scriptURL, { type: 'module' }); | ||
const args = await new Promise(resolve => | ||
worker.onerror = (...args) => resolve(args)); | ||
window.checkErrorArguments(args); | ||
}, 'Module shared worker construction for script with syntax error should ' + | ||
'dispatch an event named error.'); | ||
|
||
promise_test(async () => { | ||
const scriptURL = 'resources/static-import-syntax-error.js'; | ||
const worker = new SharedWorker(scriptURL, { type: 'module' }); | ||
const args = await new Promise(resolve => | ||
worker.onerror = (...args) => resolve(args)); | ||
window.checkErrorArguments(args); | ||
}, 'Static import on module shared worker for script with syntax error ' + | ||
'should dispatch an event named error.'); | ||
|
||
</script> |
26 changes: 26 additions & 0 deletions
26
testing/web-platform/tests/workers/shared-worker-parse-error-failure.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<!DOCTYPE html> | ||
<title>SharedWorker: parse error failure</title> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="./support/check-error-arguments.js"></script> | ||
<script> | ||
|
||
promise_test(async () => { | ||
const scriptURL = 'modules/resources/syntax-error.js'; | ||
const worker = new SharedWorker(scriptURL, { type: 'classic' }); | ||
const args = await new Promise(resolve => | ||
worker.onerror = (...args) => resolve(args)); | ||
window.checkErrorArguments(args); | ||
}, 'Classic shared worker construction for script with syntax error should ' + | ||
'dispatch an event named error.'); | ||
|
||
promise_test(async () => { | ||
const scriptURL = 'modules/resources/static-import-worker.js'; | ||
const worker = new SharedWorker(scriptURL, { type: 'classic' }); | ||
const args = await new Promise(resolve => | ||
worker.onerror = (...args) => resolve(args)); | ||
window.checkErrorArguments(args); | ||
}, 'Static import on classic shared worker should dispatch an event named ' + | ||
'error.'); | ||
|
||
</script> |
4 changes: 4 additions & 0 deletions
4
testing/web-platform/tests/workers/support/check-error-arguments.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
window.checkErrorArguments = args => { | ||
assert_equals(args.length, 1); | ||
assert_equals(args[0].constructor, Event); | ||
}; |