| [ |
| { |
| 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)" : ""}`); |
| }); |