blob: 37b8009442b7bf6dee90e631f561d0d67144775f [file] [log] [blame]
<!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 handshake fails if the server sends mismatched Sec-WebSocket-Protocol header.");
window.jsTestIsAsync = true;
var url = "ws://localhost:8880/handshake-fail-by-mismatch-protocol-header";
var closeEvent;
var ws;
var protocolCase = ["", "MatchProtocol", ["MatchProtocol1", "MatchProtocol2"]];
function doTest(index)
{
if (protocolCase[index] === "")
ws = new WebSocket(url);
else
ws = new WebSocket(url, protocolCase[index]);
ws.onopen = function()
{
testFailed("Connection established.");
ws.close();
};
ws.onclose = function(event)
{
closeEvent = event;
shouldBeFalse("closeEvent.wasClean");
if (index === protocolCase.length - 1) {
finishJSTest();
return;
}
doTest(index + 1);
};
ws.onerror = function(errorEvent)
{
testPassed("onerror() was called");
};
}
doTest(0);
</script>
</body>
</html>