<!DOCTYPE html>
<html>
<head>
    <title>W3C WebSocket API - Close WebSocket - Code is 1000</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 WebSocket - Connection should be opened");
        var testClose = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed");

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

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

        wsocket.addEventListener('close', testClose.step_func(function (evt) {
            assert_true(isOpenCalled, "WebSocket connection should be opened");
            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>
