summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fetch/orb/resources
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/fetch/orb/resources')
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/data.json3
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/data_non_ascii.json1
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/empty.json1
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/font.ttfbin0 -> 2528 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/image.pngbin0 -> 1010 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/js-unlabeled-utf16-without-bom.jsonbin0 -> 70 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/js-unlabeled.js1
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.pngbin0 -> 1010 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png.headers1
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/png-unlabeled.pngbin0 -> 1010 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/script-asm-js-invalid.js4
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/script-asm-js-valid.js4
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/script-iso-8559-1.js4
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/script-utf16-bom.jsbin0 -> 92 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/script-utf16-without-bom.jsbin0 -> 90 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/script.js4
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/sound.mp3bin0 -> 539 bytes
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/text.txt1
-rw-r--r--testing/web-platform/tests/fetch/orb/resources/utils.js101
19 files changed, 125 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fetch/orb/resources/data.json b/testing/web-platform/tests/fetch/orb/resources/data.json
new file mode 100644
index 0000000000..f2a886f39d
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/data.json
@@ -0,0 +1,3 @@
+{
+ "hello": "world"
+}
diff --git a/testing/web-platform/tests/fetch/orb/resources/data_non_ascii.json b/testing/web-platform/tests/fetch/orb/resources/data_non_ascii.json
new file mode 100644
index 0000000000..64566c50c1
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/data_non_ascii.json
@@ -0,0 +1 @@
+["你好"]
diff --git a/testing/web-platform/tests/fetch/orb/resources/empty.json b/testing/web-platform/tests/fetch/orb/resources/empty.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/empty.json
@@ -0,0 +1 @@
+{}
diff --git a/testing/web-platform/tests/fetch/orb/resources/font.ttf b/testing/web-platform/tests/fetch/orb/resources/font.ttf
new file mode 100644
index 0000000000..9023592ef5
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/font.ttf
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/image.png b/testing/web-platform/tests/fetch/orb/resources/image.png
new file mode 100644
index 0000000000..820f8cace2
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/image.png
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/js-unlabeled-utf16-without-bom.json b/testing/web-platform/tests/fetch/orb/resources/js-unlabeled-utf16-without-bom.json
new file mode 100644
index 0000000000..157a8f5430
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/js-unlabeled-utf16-without-bom.json
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/js-unlabeled.js b/testing/web-platform/tests/fetch/orb/resources/js-unlabeled.js
new file mode 100644
index 0000000000..a880a5bc72
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/js-unlabeled.js
@@ -0,0 +1 @@
+window.has_executed_script = true;
diff --git a/testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png b/testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png
new file mode 100644
index 0000000000..820f8cace2
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png.headers b/testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png.headers
new file mode 100644
index 0000000000..156209f9c8
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/png-mislabeled-as-html.png.headers
@@ -0,0 +1 @@
+Content-Type: text/html
diff --git a/testing/web-platform/tests/fetch/orb/resources/png-unlabeled.png b/testing/web-platform/tests/fetch/orb/resources/png-unlabeled.png
new file mode 100644
index 0000000000..820f8cace2
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/png-unlabeled.png
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/script-asm-js-invalid.js b/testing/web-platform/tests/fetch/orb/resources/script-asm-js-invalid.js
new file mode 100644
index 0000000000..8d1bbd6abc
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/script-asm-js-invalid.js
@@ -0,0 +1,4 @@
+function f() {
+ "use asm";
+ return;
+}
diff --git a/testing/web-platform/tests/fetch/orb/resources/script-asm-js-valid.js b/testing/web-platform/tests/fetch/orb/resources/script-asm-js-valid.js
new file mode 100644
index 0000000000..79b375fe05
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/script-asm-js-valid.js
@@ -0,0 +1,4 @@
+function f() {
+ "use asm";
+ return {};
+}
diff --git a/testing/web-platform/tests/fetch/orb/resources/script-iso-8559-1.js b/testing/web-platform/tests/fetch/orb/resources/script-iso-8559-1.js
new file mode 100644
index 0000000000..3bccb6af93
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/script-iso-8559-1.js
@@ -0,0 +1,4 @@
+"use strict";
+function fn() {
+ return "§A¦n";
+}
diff --git a/testing/web-platform/tests/fetch/orb/resources/script-utf16-bom.js b/testing/web-platform/tests/fetch/orb/resources/script-utf16-bom.js
new file mode 100644
index 0000000000..16b76e9d5e
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/script-utf16-bom.js
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/script-utf16-without-bom.js b/testing/web-platform/tests/fetch/orb/resources/script-utf16-without-bom.js
new file mode 100644
index 0000000000..d983086b03
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/script-utf16-without-bom.js
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/script.js b/testing/web-platform/tests/fetch/orb/resources/script.js
new file mode 100644
index 0000000000..19675d25d8
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/script.js
@@ -0,0 +1,4 @@
+"use strict";
+function fn() {
+ return 42;
+}
diff --git a/testing/web-platform/tests/fetch/orb/resources/sound.mp3 b/testing/web-platform/tests/fetch/orb/resources/sound.mp3
new file mode 100644
index 0000000000..a15d1de328
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/sound.mp3
Binary files differ
diff --git a/testing/web-platform/tests/fetch/orb/resources/text.txt b/testing/web-platform/tests/fetch/orb/resources/text.txt
new file mode 100644
index 0000000000..270c611ee7
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/text.txt
@@ -0,0 +1 @@
+hello, world!
diff --git a/testing/web-platform/tests/fetch/orb/resources/utils.js b/testing/web-platform/tests/fetch/orb/resources/utils.js
new file mode 100644
index 0000000000..45fbc4cb38
--- /dev/null
+++ b/testing/web-platform/tests/fetch/orb/resources/utils.js
@@ -0,0 +1,101 @@
+function header(name, value) {
+ return `header(${name},${value})`;
+}
+
+function contentType(type) {
+ return header("Content-Type", type);
+}
+
+function contentTypeOptions(type) {
+ return header("X-Content-Type-Options", type);
+}
+
+function testFetchNoCors(_t, path, { headers }) {
+ return fetch(path, {
+ ...(headers ? { headers } : {}),
+ mode: "no-cors",
+ });
+}
+
+function testElementInitiator(t, path, name) {
+ let element = document.createElement(name);
+ element.src = path;
+ t.add_cleanup(() => element.remove());
+ return new Promise((resolve, reject) => {
+ element.onerror = e => reject(new TypeError());
+ element.onload = resolve;
+
+ document.body.appendChild(element);
+ });
+}
+
+function testImageInitiator(t, path) {
+ return testElementInitiator(t, path, "img");
+}
+
+function testAudioInitiator(t, path) {
+ return testElementInitiator(t, path, "audio");
+}
+
+function testVideoInitiator(t, path) {
+ return testElementInitiator(t, path, "video");
+}
+
+function testScriptInitiator(t, path) {
+ return testElementInitiator(t, path, "script");
+}
+
+function runTest(t, test, file, options, ...pipe) {
+ const path = `${file}${pipe.length ? `?pipe=${pipe.join("|")}` : ""}`;
+ return test(t, path, options)
+}
+
+function testRunAll(file, testCallback, adapter, options) {
+ let testcase = function (test, message, skip) {
+ return {test, message, skip};
+ };
+
+ const name = "...";
+ [ testcase(testFetchNoCors, `fetch(${name}, {mode: "no-cors"})`, false || options.skip.includes("fetch")),
+ testcase(testImageInitiator, `<img src=${name}>`, options.onlyFetch || options.skip.includes("image")),
+ testcase(testAudioInitiator, `<audio src=${name}>`, options.onlyFetch || options.skip.includes("audio")),
+ testcase(testVideoInitiator, `<video src=${name}>`, options.onlyFetch || options.skip.includes("video")),
+ testcase(testScriptInitiator, `<script src=${name}>`, options.onlyFetch || options.skip.includes("script")),
+ ].filter(({skip}) => !skip)
+ .forEach(({test, message}) => {
+ testCallback((t, ...args) => adapter(t, runTest(t, test, file, options, ...args), message), header => `${header}: ${message}`);
+ });
+}
+
+function expected_block(file, testCallback, options = {}) {
+ let defaultOptions = {
+ onlyFetch: !self.GLOBAL.isWindow(),
+ skip: []
+ };
+ testRunAll(file, testCallback, (t, promise, message) => promise_rejects_js(t, TypeError, promise, message), { ...defaultOptions, ...options });
+}
+
+function expected_allow(file, testCallback, options = {}) {
+ let defaultOptions = {
+ onlyFetch: !self.GLOBAL.isWindow(),
+ skip: [],
+ headers: null
+ };
+ testRunAll(file, testCallback, (_t, promise, _message) => promise, { ...defaultOptions, ...options });
+}
+
+function expected_allow_fetch(file, testCallback, options = {}) {
+ let defaultOptions = {
+ skip: [],
+ headers: null,
+ };
+ testRunAll(file, testCallback, (_t, promise, _message) => promise, { ...defaultOptions, ...options, onlyFetch: true });
+}
+
+function expected_block_fetch(file, testCallback, options = {}) {
+ let defaultOptions = {
+ skip: [],
+ headers: null,
+ };
+ testRunAll(file, testCallback, (t, promise, message) => promise_rejects_js(t, TypeError, promise, message), { ...defaultOptions, ...options, onlyFetch: true });
+}