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