// META: global=window,worker // META: title=Consuming Response body after getting a ReadableStream // META: script=./response-stream-disturbed-util.js async function createResponseWithCancelledReadableStream(bodySource, callback) { const response = await responseFromBodySource(bodySource); response.body.cancel(); return callback(response); } for (const bodySource of ["fetch", "stream", "string"]) { promise_test(function(test) { return createResponseWithCancelledReadableStream(bodySource, function(response) { return promise_rejects_js(test, TypeError, response.blob()); }); }, `Getting blob after cancelling the Response body (body source: ${bodySource})`); promise_test(function(test) { return createResponseWithCancelledReadableStream(bodySource, function(response) { return promise_rejects_js(test, TypeError, response.text()); }); }, `Getting text after cancelling the Response body (body source: ${bodySource})`); promise_test(function(test) { return createResponseWithCancelledReadableStream(bodySource, function(response) { return promise_rejects_js(test, TypeError, response.json()); }); }, `Getting json after cancelling the Response body (body source: ${bodySource})`); promise_test(function(test) { return createResponseWithCancelledReadableStream(bodySource, function(response) { return promise_rejects_js(test, TypeError, response.arrayBuffer()); }); }, `Getting arrayBuffer after cancelling the Response body (body source: ${bodySource})`); }