<!doctype html>
<title>WebSockets: origin</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+'/origin');
  ws.onmessage = t.step_func(function(e) {
    assert_equals(e.data, location.protocol+'//'+location.host);
    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();
  })
  ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()});
});
</script>
