From 1e6c6ddd7fd88b4401b949b70cfa200bfa5d4fe2 Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Wed, 1 Apr 2020 13:19:45 +0000 Subject: [PATCH] Bug 1621581 [wpt PR 22185] - Add WPTs for parse error handling in SharedWorkers, a=testonly Automatic update from web-platform-tests Add WPTs for parse error handling in SharedWorkers Follows https://github.com/whatwg/html/pull/5347. -- wpt-commits: bd6c94ee488cb2c968221a547604fb6c4807a2ca wpt-pr: 22185 UltraBlame original commit: 4dc14a36b48c3c255bb709ac57eed5a85f3bb67b --- .../shared-worker-parse-error-failure.html | 523 ++++++++++++++++++ .../shared-worker-parse-error-failure.html | 275 +++++++++ .../workers/support/check-error-arguments.js | 29 + 3 files changed, 827 insertions(+) create mode 100644 testing/web-platform/tests/workers/modules/shared-worker-parse-error-failure.html create mode 100644 testing/web-platform/tests/workers/shared-worker-parse-error-failure.html create mode 100644 testing/web-platform/tests/workers/support/check-error-arguments.js diff --git a/testing/web-platform/tests/workers/modules/shared-worker-parse-error-failure.html b/testing/web-platform/tests/workers/modules/shared-worker-parse-error-failure.html new file mode 100644 index 0000000000000..7b239908cb8fc --- /dev/null +++ b/testing/web-platform/tests/workers/modules/shared-worker-parse-error-failure.html @@ -0,0 +1,523 @@ +< +! +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 +> diff --git a/testing/web-platform/tests/workers/shared-worker-parse-error-failure.html b/testing/web-platform/tests/workers/shared-worker-parse-error-failure.html new file mode 100644 index 0000000000000..eea6dad5246b1 --- /dev/null +++ b/testing/web-platform/tests/workers/shared-worker-parse-error-failure.html @@ -0,0 +1,275 @@ +< +! +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 +> diff --git a/testing/web-platform/tests/workers/support/check-error-arguments.js b/testing/web-platform/tests/workers/support/check-error-arguments.js new file mode 100644 index 0000000000000..9d036e00c056a --- /dev/null +++ b/testing/web-platform/tests/workers/support/check-error-arguments.js @@ -0,0 +1,29 @@ +window +. +checkErrorArguments += +args += +> +{ +assert_equals +( +args +. +length +1 +) +; +assert_equals +( +args +[ +0 +] +. +constructor +Event +) +; +} +;