<!doctype html>
<title>WebSockets: proper first line</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+'/simple_handshake');
  ws.onmessage = t.unreached_func();
  ws.onopen = t.step_func(function(e) {
    ws.onclose = t.step_func(function(e) {
      assert_equals(e.wasClean, true);
      ws.onclose = t.unreached_func();
      t.step_timeout(() => t.done(), 50);
    })
    ws.close();
  })
});
</script>
