<!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>
<div id=log></div>
<script>
async_test(function(t) {
  var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/simple_handshake');
  ws.onmessage = t.step_func(function() {assert_unreached()});
  ws.onopen = t.step_func(function(e) {
    ws.onclose = t.step_func(function(e) {
      assert_equals(e.wasClean, true);
      ws.onclose = t.step_func(function() {assert_unreached()});
      setTimeout(t.step_func(function() {t.done();}), 50)
    })
    ws.close();
  })
});
</script>
