tor-browser

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

bufferedAmount-getting.html (2069B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title>WebSockets: bufferedAmount after send()ing</title>
      4 <script src=/resources/testharness.js></script>
      5 <script src=/resources/testharnessreport.js></script>
      6 <script src=../../../constants.sub.js></script>
      7 <meta name="variant" content="?default">
      8 <meta name="variant" content="?wss">
      9 <meta name="variant" content="?wpt_flags=h2">
     10 <div id=log></div>
     11 <script>
     12 async_test(function(t){
     13  // bufferedAmount should increase sync in the send() method and decrease between
     14  // events in the event loop (so never while script is running).
     15  var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo');
     16  ws.onopen = t.step_func(function(e) {
     17    ws.send('x');
     18    assert_equals(ws.bufferedAmount, 1, 'bufferedAmount after sent "x"');
     19    ws.send('\u00E5');
     20    assert_equals(ws.bufferedAmount, 1+2, 'bufferedAmount after sent "x", "\u00E5"');
     21    ws.send('\u5336');
     22    assert_equals(ws.bufferedAmount, 1+2+3, 'bufferedAmount after sent "x", "\u00E5", "\u5336"');
     23    ws.send('\uD801\uDC7E');
     24    assert_equals(ws.bufferedAmount, 1+2+3+4, 'bufferedAmount after sent "x", "\u00E5", "\u5336", "\uD801\uDC7E"');
     25  })
     26  var i = 0;
     27  ws.onmessage = t.step_func(function(e) {
     28    i++;
     29    switch(i) {
     30      case 1:
     31        assert_equals(e.data, 'x');
     32        assert_true(ws.bufferedAmount < 2+3+4 + 1, 'bufferedAmount after received "x"');
     33        break;
     34      case 2:
     35        assert_equals(e.data, '\u00E5');
     36        assert_true(ws.bufferedAmount < 3+4 + 1, 'bufferedAmount after received "x", "\u00E5"');
     37        break;
     38      case 3:
     39        assert_equals(e.data, '\u5336');
     40        assert_true(ws.bufferedAmount < 4 + 1, 'bufferedAmount after received "x", "\u00E5", "\u5336"');
     41        break;
     42      case 4:
     43        assert_equals(e.data, '\uD801\uDC7E');
     44        assert_equals(ws.bufferedAmount, 0, 'bufferedAmount after received "x", "\u00E5", "\u5336", "\uD801\uDC7E"');
     45        t.done();
     46        break;
     47      default:
     48        assert_unreached(i);
     49    }
     50  })
     51  ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()});
     52 });
     53 </script>