<!doctype html>
<title>WebSockets: close() followed by send()</title>

<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../../../constants.js?pipe=sub></script>
<meta name="variant" content="">
<meta name="variant" content="?wss">
<div id=log></div>
<script>

async_test(function(t) {
  var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo');
  ws.onopen = t.step_func(function(e) {
    // test that nothing strange happens if we send something after close()
    ws.close();
    var sent = ws.send('test');
    assert_equals(sent, undefined);
  });
  ws.onclose = t.step_func(function(e) {
    ws.onclose = t.unreached_func();
    t.step_timeout(() => t.done(), 50);
  });
  ws.onerror = ws.onmessage = t.unreached_func();
});
</script>
