aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-05-22 10:24:35 +0000
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-05-22 14:00:10 +0000
commit5e5eccabf885cfc749a3bcb8a757be52ca0663f6 (patch)
treee4702492619d2a77086c5329a4108a5f9ed7e836 /tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module
parent415b26e4f11b25b317a37c406c1d6f1fc3709561 (diff)
downloadservo-5e5eccabf885cfc749a3bcb8a757be52ca0663f6.tar.gz
servo-5e5eccabf885cfc749a3bcb8a757be52ca0663f6.zip
Update web-platform-tests to revision e426a6933a05bf144eba06a1d4c47ba876a4e2d1
Diffstat (limited to 'tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module')
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/array.json1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/false.json1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.html26
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.html18
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.json3
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.js14
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/null.json1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.html21
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.json1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/string.json1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/true.json1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.html36
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.json3
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html36
14 files changed, 163 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/array.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/array.json
new file mode 100644
index 00000000000..e77e32d3382
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/array.json
@@ -0,0 +1 @@
+["en", "try"]
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/false.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/false.json
new file mode 100644
index 00000000000..c508d5366f7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/false.json
@@ -0,0 +1 @@
+false
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.html
new file mode 100644
index 00000000000..e6da2db7ebc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>JSON modules: invalid Content-Type</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+const content_types = [
+ "application/json+protobuf",
+ "application/json+blah",
+ "text/x-json",
+ "text/json+blah",
+ "application/blahjson",
+ "image/json",
+];
+for (const content_type of content_types) {
+ async_test(t => {
+ const script = document.createElement("script");
+ script.onerror = t.step_func_done();
+ script.onload = t.unreached_func("Should not load");
+ script.type = "module";
+ script.src = `module.json?pipe=header(Content-Type,${content_type})`;
+ document.body.appendChild(script);
+ }, content_type);
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.html
new file mode 100644
index 00000000000..93243853226
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>JSON modules</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+const t = async_test();
+</script>
+<script type="module" onerror="t.step(() => assert_unreached(event))">
+import v from "./module.json";
+t.step(() => {
+ assert_equals(typeof v, "object");
+ assert_array_equals(Object.keys(v), ["test"]);
+ assert_equals(v.test, true);
+ t.done();
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.json
new file mode 100644
index 00000000000..f834b2a4e8f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.json
@@ -0,0 +1,3 @@
+{
+ "test": true
+}
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.js
new file mode 100644
index 00000000000..398da56595f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.js
@@ -0,0 +1,14 @@
+// META: global=window,worker
+
+for (const value of [null, true, false, "string"]) {
+ promise_test(async t => {
+ const result = await import(`./${value}.json`);
+ assert_equals(result, value);
+ }, `Non-object: ${value}`);
+}
+
+promise_test(async t => {
+ const result = await import("./array.json");
+ assert_array_equals(result, ["en", "try"]);
+}, "Non-object: array");
+
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/null.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/null.json
new file mode 100644
index 00000000000..19765bd501b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/null.json
@@ -0,0 +1 @@
+null
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.html
new file mode 100644
index 00000000000..68d3ef0a9ad
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>JSON modules: parse error</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+setup({
+ allow_uncaught_exception: true,
+});
+async_test(t => {
+ window.addEventListener("error", t.step_func_done(e => {
+ assert_true(e instanceof ErrorEvent, "ErrorEvent");
+ assert_equals(e.filename, new URL("parse-error.json", location).href);
+ assert_true(e.error instanceof SyntaxError, "SyntaxError");
+ }));
+});
+</script>
+<script type="module">
+import v from "./parse-error.json";
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.json
new file mode 100644
index 00000000000..98232c64fce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.json
@@ -0,0 +1 @@
+{
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/string.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/string.json
new file mode 100644
index 00000000000..ace2d72d9d3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/string.json
@@ -0,0 +1 @@
+"string"
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/true.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/true.json
new file mode 100644
index 00000000000..27ba77ddaf6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/true.json
@@ -0,0 +1 @@
+true
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.html
new file mode 100644
index 00000000000..1c0360b17e3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>JSON modules: UTF-8 decoding</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+function check(t, v) {
+ t.step(() => {
+ assert_equals(typeof v, "object");
+ assert_array_equals(Object.keys(v), ["test"]);
+ assert_equals(v.test, "\u2026");
+ t.done();
+ });
+}
+const t1 = async_test("utf-8");
+const t2 = async_test("shift-jis");
+const t3 = async_test("windows-1252");
+const t4 = async_test("utf-7");
+</script>
+<script type="module" onerror="t1.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/utf8.json&ct=text/json%3Bcharset=utf-8";
+check(t1, v);
+</script>
+<script type="module" onerror="t2.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/utf8.json&ct=text/json%3Bcharset=shift-jis";
+check(t2, v);
+</script>
+<script type="module" onerror="t3.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/utf8.json&ct=text/json%3Bcharset=windows-1252";
+check(t3, v);
+</script>
+<script type="module" onerror="t4.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/utf8.json&ct=text/json%3Bcharset=utf-7";
+check(t4, v);
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.json
new file mode 100644
index 00000000000..7bb9edd2f79
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.json
@@ -0,0 +1,3 @@
+{
+ "test": "…"
+}
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html
new file mode 100644
index 00000000000..78e8b1d23fe
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>JSON modules: Content-Type</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+function check(t, v) {
+ t.step(() => {
+ assert_equals(typeof v, "object");
+ assert_array_equals(Object.keys(v), ["test"]);
+ assert_equals(v.test, true);
+ t.done();
+ });
+}
+const t1 = async_test("text/json");
+const t2 = async_test("application/json");
+const t3 = async_test("text/html+json");
+const t4 = async_test("image/svg+json");
+</script>
+<script type="module" onerror="t1.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/module.json&ct=text/json";
+check(t1, v);
+</script>
+<script type="module" onerror="t2.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/module.json&ct=application/json";
+check(t2, v);
+</script>
+<script type="module" onerror="t3.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/module.json&ct=text/html+json";
+check(t3, v);
+</script>
+<script type="module" onerror="t4.step(() => assert_unreached(event))">
+import v from "../serve-with-content-type.py?fn=json-module/module.json&ct=image/svg+json";
+check(t4, v);
+</script>