<!doctype html>
<title>WebSockets: setting Secure cookie with document.cookie, checking ws request</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>
// This test doesn't work as originally intended, because an insecure page
// cannot set a secure cookie. See 006.https.html for a working version. This
// version is retained for historical purposes.
var cookie_id = ((new Date())-0) + '.' + Math.random();
async_test(function(t) {
  if (window.WebSocket) {
    document.cookie = 'ws_test_'+cookie_id+'=test; Path=/; Secure';
  }
  t.add_cleanup(function() {
    // remove cookie
    document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Secure; Expires=Sun, 06 Nov 1994 08:49:37 GMT';
  });
  var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie');
  ws.onmessage = t.step_func(function(e) {
    ws.close();
    assert_equals(e.data.indexOf('ws_test_'+cookie_id+'=test'), -1,
                  'cookie should not have been set');
    t.done();
  })
  ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)});
});
</script>
