tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

response-error-from-stream.any.js (3093B)


      1 // META: global=window,worker
      2 // META: title=Response Receives Propagated Error from ReadableStream
      3 
      4 function newStreamWithStartError() {
      5  var err = new Error("Start error");
      6  return [new ReadableStream({
      7            start(controller) {
      8                controller.error(err);
      9            }
     10          }),
     11          err]
     12 }
     13 
     14 function newStreamWithPullError() {
     15  var err = new Error("Pull error");
     16  return [new ReadableStream({
     17            pull(controller) {
     18                controller.error(err);
     19            }
     20          }),
     21          err]
     22 }
     23 
     24 function runRequestPromiseTest([stream, err], responseReaderMethod, testDescription) {
     25  promise_test(test => {
     26    return promise_rejects_exactly(
     27      test,
     28      err,
     29      new Response(stream)[responseReaderMethod](),
     30      'CustomTestError should propagate'
     31    )
     32  }, testDescription)
     33 }
     34 
     35 
     36 promise_test(test => {
     37  var [stream, err] = newStreamWithStartError();
     38  return promise_rejects_exactly(test, err, stream.getReader().read(), 'CustomTestError should propagate')
     39 }, "ReadableStreamDefaultReader Promise receives ReadableStream start() Error")
     40 
     41 promise_test(test => {
     42  var [stream, err] = newStreamWithPullError();
     43  return promise_rejects_exactly(test, err, stream.getReader().read(), 'CustomTestError should propagate')
     44 }, "ReadableStreamDefaultReader Promise receives ReadableStream pull() Error")
     45 
     46 
     47 // test start() errors for all Body reader methods
     48 runRequestPromiseTest(newStreamWithStartError(), 'arrayBuffer', 'ReadableStream start() Error propagates to Response.arrayBuffer() Promise');
     49 runRequestPromiseTest(newStreamWithStartError(), 'blob',        'ReadableStream start() Error propagates to Response.blob() Promise');
     50 runRequestPromiseTest(newStreamWithStartError(), 'bytes',       'ReadableStream start() Error propagates to Response.bytes() Promise');
     51 runRequestPromiseTest(newStreamWithStartError(), 'formData',    'ReadableStream start() Error propagates to Response.formData() Promise');
     52 runRequestPromiseTest(newStreamWithStartError(), 'json',        'ReadableStream start() Error propagates to Response.json() Promise');
     53 runRequestPromiseTest(newStreamWithStartError(), 'text',        'ReadableStream start() Error propagates to Response.text() Promise');
     54 
     55 // test pull() errors for all Body reader methods
     56 runRequestPromiseTest(newStreamWithPullError(), 'arrayBuffer', 'ReadableStream pull() Error propagates to Response.arrayBuffer() Promise');
     57 runRequestPromiseTest(newStreamWithPullError(), 'blob',        'ReadableStream pull() Error propagates to Response.blob() Promise');
     58 runRequestPromiseTest(newStreamWithPullError(), 'bytes',       'ReadableStream pull() Error propagates to Response.bytes() Promise');
     59 runRequestPromiseTest(newStreamWithPullError(), 'formData',    'ReadableStream pull() Error propagates to Response.formData() Promise');
     60 runRequestPromiseTest(newStreamWithPullError(), 'json',        'ReadableStream pull() Error propagates to Response.json() Promise');
     61 runRequestPromiseTest(newStreamWithPullError(), 'text',        'ReadableStream pull() Error propagates to Response.text() Promise');