<!DOCTYPE html>
<html>
<head>
    <title>W3C WebSocket API - Create Secure WebSocket - binaryType is set to something other than blob/arraybuffer</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 - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be opened");
        var testClose = async_test("W3C WebSocket API - Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be closed");

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

        wsocket.addEventListener('open', testOpen.step_func(function (evt) {
            assert_equals(wsocket.binaryType, "blob");
            wsocket.binaryType = "notBlobOrArrayBuffer";
            assert_equals(wsocket.binaryType, "blob");
            wsocket.close();
            testOpen.done();
        }), true);

        wsocket.addEventListener('close', testClose.step_func(function (evt) {
            assert_true(evt.wasClean, "wasClean should be true");
            testClose.done();
        }), true);

    </script>

</body>
</html>
