tor-browser

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

sendorder.https.any.js (2189B)


      1 // META: global=window,worker
      2 // META: script=/common/get-host-info.sub.js
      3 // META: script=resources/webtransport-test-helpers.sub.js
      4 // META: script=/common/utils.js
      5 
      6 
      7 promise_test(async t => {
      8  // Establish a WebTransport session.
      9  const wt = new WebTransport(webtransport_url('echo.py'));
     10  await wt.ready;
     11 
     12  // Create a bidirectional stream with sendorder
     13  const {readable, writable} = await wt.createBidirectionalStream({sendOrder: 3});
     14  assert_equals(writable.sendOrder, 3);
     15 
     16  // Write a message to the writable end, and close it.
     17  const writer = writable.getWriter();
     18  const encoder = new TextEncoder();
     19  writer.write(encoder.encode('Hello World')).catch(() => {});
     20  await writer.close();
     21 
     22  // Read the data on the readable end.
     23  const reply = await read_stream_as_string(readable);
     24 
     25  // Check that the message from the readable end matches the writable end.
     26  assert_equals(reply, 'Hello World');
     27 }, 'WebTransport client should be able to create and handle a bidirectional stream with sendOrder');
     28 
     29 promise_test(async t => {
     30  // Establish a WebTransport session.
     31  const wt = new WebTransport(webtransport_url('echo.py'));
     32  await wt.ready;
     33 
     34  // Create a bidirectional stream with sendorder
     35  const {readable, writable} = await wt.createBidirectionalStream();
     36  assert_equals(writable.sendOrder, null);
     37  // modify it
     38  writable.sendOrder = 4;
     39  assert_equals(writable.sendOrder, 4);
     40 }, 'WebTransport client should be able to modify unset sendOrder after stream creation');
     41 
     42 promise_test(async t => {
     43  // Establish a WebTransport session.
     44  const wt = new WebTransport(webtransport_url('echo.py'));
     45  await wt.ready;
     46 
     47    // Create a bidirectional stream without sendorder
     48  const {readable, writable} = await wt.createBidirectionalStream({sendOrder: 3});
     49  assert_equals(writable.sendOrder, 3);
     50  // modify it
     51  writable.sendOrder = 5;
     52  assert_equals(writable.sendOrder, 5);
     53  writable.sendOrder = null;
     54  assert_equals(writable.sendOrder, null);
     55  // Note: this doesn't verify the underlying stack actually changes priority, just the API
     56  // for controlling sendOrder
     57 }, 'WebTransport client should be able to modify existing sendOrder after stream creation');