<!doctype html>
<title>WebSockets: navigating top-level browsing context with closed websocket</title>
<script src=../constants.js?pipe=sub></script>
<script>
var controller = opener || parent;
var t = controller.t;
var assert_equals = controller.asset_equals;
var assert_unreached = controller.assert_unreached ;
var uuid = controller.token;
t.add_cleanup(function() {delete sessionStorage[uuid];});
t.step(function() {
  // this test can fail if the document is unloaded on navigation e.g. due to OOM
  if (sessionStorage[uuid]) {
    assert_unreached('document was discarded');
  } else {
    sessionStorage[uuid] = 'true';
    var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo');
    ws.onopen = t.step_func(function(e) {

      setTimeout(t.step_func(function() {
        assert_equals(ws.readyState, ws.CLOSED, 'ws.readyState');
        t.done();
      }), 4000);
      ws.close();
      ws.onclose = t.step_func(function() {
        controller.navigate();
      });
    })
    ws.onerror = ws.onmessage = ws.onclose = t.step_func(function(e) {assert_unreached("Got unexpected event " + e.type)});
  }
});
</script>
