blob: a478a64e009f62d8b7b031c94d19b884341e557b [file] [log] [blame]
// META: global=window,worker
"use strict";
async function assert_request(t, input, init) {
assert_throws(new TypeError(), () => new Request(input, init), "new Request()");
await promise_rejects(t, new TypeError(), fetch(input, init));
}
promise_test(async (t) => {
const stream = new ReadableStream();
stream.getReader();
await assert_request(t, "...", { method:"POST", body: stream });
}, "Constructing a Request with a stream on which getReader() is called");
promise_test(async (t) => {
const stream = new ReadableStream();
stream.getReader().read();
await assert_request(t, "...", { method:"POST", body: stream });
}, "Constructing a Request with a stream on which read() is called");
promise_test(async (t) => {
const stream = new ReadableStream({ pull: c => c.enqueue(new Uint8Array()) }),
reader = stream.getReader();
await reader.read();
reader.releaseLock();
await assert_request(t, "...", { method:"POST", body: stream });
}, "Constructing a Request with a stream on which read() and releaseLock() are called");
promise_test(async (t) => {
const request = new Request("...", { method: "POST", body: "..." });
request.body.getReader();
await assert_request(t, request);
assert_class_string(new Request(request, { body: "..." }), "Request");
}, "Constructing a Request with a Request on which body.getReader() is called");
promise_test(async (t) => {
const request = new Request("...", { method: "POST", body: "..." });
request.body.getReader().read();
await assert_request(t, request);
assert_class_string(new Request(request, { body: "..." }), "Request");
}, "Constructing a Request with a Request on which body.getReader().read() is called");
promise_test(async (t) => {
const request = new Request("...", { method: "POST", body: "..." }),
reader = request.body.getReader();
await reader.read();
reader.releaseLock();
await assert_request(t, request);
assert_class_string(new Request(request, { body: "..." }), "Request");
}, "Constructing a Request with a Request on which read() and releaseLock() are called");