<!DOCTYPE html>
<html>
<head>
    <title>W3C WebSocket API - Close Secure WebSocket - Reason with unpaired surrogates</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(reason with unpaired surrogates) - connection should get opened");
        var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed");

        var wsocket = CreateWebSocket(true, false, false);
        var isOpenCalled = false;
        var replacementChar = "\uFFFD";
        var reason = "\uD807";

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

        wsocket.addEventListener('close', testClose.step_func(function (evt) {
            assert_true(isOpenCalled, "WebSocket connection should be opened");
            assert_equals(evt.reason, replacementChar, "reason replaced with replacement character");
            testClose.done();
        }), true);

    </script>

</body>
</html>

