// META: script=websocket.sub.js
// META: global=window,dedicatedworker,sharedworker

async_test(t => {
  const url = 'wss://' + __SERVER__NAME + ':' + __SECURE__PORT + '/echo';
  const ws = new WebSocket(url);
  ws.onopen = t.step_func(() => {
    ws.onclose = ws.onerror = null;
    assert_equals(ws.bufferedAmount, 0);
    ws.send('hello');
    assert_equals(ws.bufferedAmount, 5);
    // Stop execution for 1s with a sync XHR.
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/common/blank.html?pipe=trickle(d1)', false);
    xhr.send();
    assert_equals(ws.bufferedAmount, 5);
    ws.close();
    t.done();
  });
  ws.onerror = ws.onclose = t.unreached_func('open should succeed');
}, 'bufferedAmount should not be updated during a sync XHR');

done();
