<!DOCTYPE HTML>
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<script>
description("Test whether WebSocket aborts the connection when it receives an unexpected encoding length frame.");

window.jsTestIsAsync = true;

var closeEvent;
var payload_extended = ["126_125", "126_0", "127_65535", "127_0"];
var totalTestSize = 4;

function doTest(curTest)
{
    var url = "ws://127.0.0.1:8880/invalid-encode-length?case=" + payload_extended[curTest];
    var ws = new WebSocket(url);

    debug("Case " + payload_extended[curTest] + ": Test started.");

    ws.onopen = function()
    {
        debug("onopen() was called.");
    };

    ws.onmessage = function(event)
    {
        var message = event.data;
        testFailed("onmessage() was called. (message = \"" + message + "\")");
    };

    ws.onclose = function(event)
    {
        debug("onclose() was called.");
        closeEvent = event;
        shouldBeFalse("closeEvent.wasClean");
        if (curTest == totalTestSize - 1)
            finishJSTest();
        else
            doTest(curTest + 1);
    };

    ws.onerror = function(errorEvent)
    {
        testPassed("onerror() was called");
    };
}

doTest(0);

</script>
</body>
</html>
