<!DOCTYPE html>
<html>
<head>
    <title>W3C WebSocket API - Create Secure WebSocket and verify if protocol is set correctly after connection</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 - Pass a valid URL and protocol string - protocol should be set correctly - Connection should be opened");
            var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed");

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

            wsocket.addEventListener('open', testOpen.step_func(function (evt) {
                assert_equals(wsocket.protocol, __PROTOCOL, "protocol should be set to echo");
                wsocket.close();
                isOpenCalled = true;
                testOpen.done();
            }), true);

            wsocket.addEventListener('close', testClose.step_func(function (evt) {
                assert_true(isOpenCalled, "WebSocket connection should be open");
                assert_equals(evt.wasClean, true, "wasClean should be true");
                    testClose.done();
            }), true);
    </script>
</body>
</html>
