From b17e96bd7db543b70285c5e481b25fc9cfcb2c13 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Tue, 2 Feb 2021 09:19:55 +0000 Subject: [PATCH] Bug 1689979 [wpt PR 27421] - HTTP/1 status code tests, a=testonly Automatic update from web-platform-tests HTTP/1 status code tests For https://github.com/whatwg/fetch/issues/1142 and https://github.com/whatwg/fetch/pull/1159. -- wpt-commits: a0ff0251fc21d0acd2e2443a033b390f44399b43 wpt-pr: 27421 --- .../fetch/h1-parsing/resources/status-code.py | 6 ++ .../fetch/h1-parsing/status-code.window.js | 98 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 testing/web-platform/tests/fetch/h1-parsing/resources/status-code.py create mode 100644 testing/web-platform/tests/fetch/h1-parsing/status-code.window.js diff --git a/testing/web-platform/tests/fetch/h1-parsing/resources/status-code.py b/testing/web-platform/tests/fetch/h1-parsing/resources/status-code.py new file mode 100644 index 0000000000000..d368718f62f8a --- /dev/null +++ b/testing/web-platform/tests/fetch/h1-parsing/resources/status-code.py @@ -0,0 +1,6 @@ +def main(request, response): + output = "HTTP/1.1 " + output += request.GET.first("input") + output += "\n" + "header-parsing: is sad" + "\n" + response.writer.write(output) + response.close_connection = True diff --git a/testing/web-platform/tests/fetch/h1-parsing/status-code.window.js b/testing/web-platform/tests/fetch/h1-parsing/status-code.window.js new file mode 100644 index 0000000000000..5776cf4050f01 --- /dev/null +++ b/testing/web-platform/tests/fetch/h1-parsing/status-code.window.js @@ -0,0 +1,98 @@ +[ + { + input: "", + expected: null + }, + { + input: "BLAH", + expected: null + }, + { + input: "0 OK", + expected: { + status: 0, + statusText: "OK" + } + }, + { + input: "1 OK", + expected: { + status: 1, + statusText: "OK" + } + }, + { + input: "99 NOT OK", + expected: { + status: 99, + statusText: "NOT OK" + } + }, + { + input: "077 77", + expected: { + status: 77, + statusText: "77" + } + }, + { + input: "099 HELLO", + expected: { + status: 99, + statusText: "HELLO" + } + }, + { + input: "200", + expected: { + status: 200, + statusText: "" + } + }, + { + input: "999 DOES IT MATTER", + expected: { + status: 999, + statusText: "DOES IT MATTER" + } + }, + { + input: "1000 BOO", + expected: null + }, + { + input: "0200 BOO", + expected: null + }, + { + input: "65736 NOT 200 OR SOME SUCH", + expected: null + }, + { + input: "131072 HI", + expected: null + }, + { + input: "-200 TEST", + expected: null + }, + { + input: "0xA", + expected: null + }, + { + input: "C8", + expected: null + } +].forEach(({ description, input, expected }) => { + promise_test(async t => { + if (expected !== null) { + const response = await fetch("resources/status-code.py?input=" + input); + assert_equals(response.status, expected.status); + assert_equals(response.statusText, expected.statusText); + assert_equals(response.headers.get("header-parsing"), "is sad"); + } else { + await promise_rejects_js(t, TypeError, fetch("resources/status-code.py?input=" + input)); + } + }, `HTTP/1.1 ${input} ${expected === null ? "(network error)" : ""}`); +});