summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/web-bundle/subresource-loading/invalid-json.https.tentative.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/web-bundle/subresource-loading/invalid-json.https.tentative.html')
-rw-r--r--testing/web-platform/tests/web-bundle/subresource-loading/invalid-json.https.tentative.html47
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/web-bundle/subresource-loading/invalid-json.https.tentative.html b/testing/web-platform/tests/web-bundle/subresource-loading/invalid-json.https.tentative.html
new file mode 100644
index 0000000000..f4f9405e2d
--- /dev/null
+++ b/testing/web-platform/tests/web-bundle/subresource-loading/invalid-json.https.tentative.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>WebBundle subresource loading with script API and invalid JSON</title>
+<link
+ rel="help"
+ href="https://github.com/WICG/webpackage/blob/main/explainers/subresource-loading.md"
+/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+ <script>
+ setup(
+ () => {
+ assert_true(HTMLScriptElement.supports("webbundle"));
+ },
+ { allow_uncaught_exception: true }
+ );
+ promise_test((t) => {
+ const script = document.createElement("script");
+ script.type = "webbundle";
+ script.textContent = "invalid json";
+ return new Promise((resolve, reject) => {
+ script.onload = () => reject(script);
+ script.onerror = () => reject(script);
+ window.onerror = function (message, url, line, col, error) {
+ assert_equals(error.name, "SyntaxError");
+ resolve(script);
+ };
+ document.body.appendChild(script);
+ });
+ }, "Invalid JSON rule should throw a SyntaxError on the window.");
+ promise_test((t) => {
+ const script = document.createElement("script");
+ script.type = "webbundle";
+ const json_rule = { resources: [] };
+ script.textContent = JSON.stringify(json_rule);
+ return new Promise((resolve, reject) => {
+ script.onload = () => reject(script);
+ script.onerror = () => reject(script);
+ window.onerror = function (message, url, line, col, error) {
+ assert_equals(error.name, "TypeError");
+ resolve(script);
+ };
+ document.body.appendChild(script);
+ });
+ }, "JSON rule with a type error should throw a TypeError on the window.");
+ </script>
+</body>