<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<script type="text/javascript">
description("Test WebSocket handshake success with sub protocol.");

window.jsTestIsAsync = true;

var protocol;

function endTest()
{
    shouldBe("protocol", '"sub-protocol"');
    finishJSTest();
}

var url = "ws://localhost:8880/protocol-test?protocol=sub-protocol";
var ws = new WebSocket(url, "sub-protocol");

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

ws.onmessage = function (messageEvent)
{
    protocol = messageEvent.data;
    ws.close();
};

ws.onclose = function()
{
    endTest();
};

function timeOutCallback()
{
    debug("Timed out in state: " + ws.readyState);
    endTest();
}

var timeoutID = setTimeout(timeOutCallback, 3000);

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