<!DOCTYPE html>
<html>
<head>
    <title>W3C WebSocket API - Close Secure WebSocket - Code is 1000 and reason</title>
    <script type="text/javascript" src="/resources/testharness.js"></script>
    <script type="text/javascript" src="/resources/testharnessreport.js"></script>
    <script type="text/javascript" src="websocket.js?pipe=sub"></script>
</head>
<body>
    <div id="log"></div>
    <script type="text/javascript">

        var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened");
        var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed");

        var wsocket = CreateWebSocket(true, false, false);
        var isOpenCalled = false;

        wsocket.addEventListener('open', testOpen.step_func(function (evt) {
            wsocket.close(1000, "Clean Close");
            isOpenCalled = true;
            testOpen.done();
        }), true);

        wsocket.addEventListener('close', testClose.step_func(function (evt) {
            assert_true(isOpenCalled, "WebSocket connection should be open");
            assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)");
            assert_equals(evt.wasClean, true, "wasClean should be TRUE");
            testClose.done();
        }), true);

    </script>

</body>
</html>
