| <!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> |