summaryrefslogtreecommitdiffstats
path: root/test/wpt/tests/fetch/content-encoding
diff options
context:
space:
mode:
Diffstat (limited to 'test/wpt/tests/fetch/content-encoding')
-rw-r--r--test/wpt/tests/fetch/content-encoding/bad-gzip-body.any.js22
-rw-r--r--test/wpt/tests/fetch/content-encoding/gzip-body.any.js16
-rw-r--r--test/wpt/tests/fetch/content-encoding/resources/bad-gzip-body.py3
-rw-r--r--test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gzbin0 -> 64 bytes
-rw-r--r--test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz.headers2
-rw-r--r--test/wpt/tests/fetch/content-encoding/resources/foo.text.gzbin0 -> 57 bytes
-rw-r--r--test/wpt/tests/fetch/content-encoding/resources/foo.text.gz.headers2
7 files changed, 45 insertions, 0 deletions
diff --git a/test/wpt/tests/fetch/content-encoding/bad-gzip-body.any.js b/test/wpt/tests/fetch/content-encoding/bad-gzip-body.any.js
new file mode 100644
index 0000000..17bc126
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/bad-gzip-body.any.js
@@ -0,0 +1,22 @@
+// META: global=window,worker
+
+promise_test((test) => {
+ return fetch("resources/bad-gzip-body.py").then(res => {
+ assert_equals(res.status, 200);
+ });
+}, "Fetching a resource with bad gzip content should still resolve");
+
+[
+ "arrayBuffer",
+ "blob",
+ "formData",
+ "json",
+ "text"
+].forEach(method => {
+ promise_test(t => {
+ return fetch("resources/bad-gzip-body.py").then(res => {
+ assert_equals(res.status, 200);
+ return promise_rejects_js(t, TypeError, res[method]());
+ });
+ }, "Consuming the body of a resource with bad gzip content with " + method + "() should reject");
+});
diff --git a/test/wpt/tests/fetch/content-encoding/gzip-body.any.js b/test/wpt/tests/fetch/content-encoding/gzip-body.any.js
new file mode 100644
index 0000000..37758b7
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/gzip-body.any.js
@@ -0,0 +1,16 @@
+// META: global=window,worker
+
+const expectedDecompressedSize = 10500;
+[
+ "text",
+ "octetstream"
+].forEach(contentType => {
+ promise_test(async t => {
+ let response = await fetch(`resources/foo.${contentType}.gz`);
+ assert_true(response.ok);
+ let arrayBuffer = await response.arrayBuffer()
+ let u8 = new Uint8Array(arrayBuffer);
+ assert_equals(u8.length, expectedDecompressedSize);
+ }, `fetched gzip data with content type ${contentType} should be decompressed.`);
+});
+
diff --git a/test/wpt/tests/fetch/content-encoding/resources/bad-gzip-body.py b/test/wpt/tests/fetch/content-encoding/resources/bad-gzip-body.py
new file mode 100644
index 0000000..a79b94e
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/resources/bad-gzip-body.py
@@ -0,0 +1,3 @@
+def main(request, response):
+ headers = [(b"Content-Encoding", b"gzip")]
+ return headers, b"not actually gzip"
diff --git a/test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz b/test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz
new file mode 100644
index 0000000..f3df4cb
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz
Binary files differ
diff --git a/test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz.headers b/test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz.headers
new file mode 100644
index 0000000..27d4f40
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/resources/foo.octetstream.gz.headers
@@ -0,0 +1,2 @@
+Content-type: application/octet-stream
+Content-Encoding: gzip
diff --git a/test/wpt/tests/fetch/content-encoding/resources/foo.text.gz b/test/wpt/tests/fetch/content-encoding/resources/foo.text.gz
new file mode 100644
index 0000000..05a5cce
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/resources/foo.text.gz
Binary files differ
diff --git a/test/wpt/tests/fetch/content-encoding/resources/foo.text.gz.headers b/test/wpt/tests/fetch/content-encoding/resources/foo.text.gz.headers
new file mode 100644
index 0000000..7def3dd
--- /dev/null
+++ b/test/wpt/tests/fetch/content-encoding/resources/foo.text.gz.headers
@@ -0,0 +1,2 @@
+Content-type: text/plain
+Content-Encoding: gzip