chromium/third_party/blink/web_tests/http/tests/websocket/client-close.html

<!DOCTYPE HTML>
<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("WebSocket: Test client-initiated close. After WebSocket.close() any message from server must be discarded by WebSocket stack according to the new WebSocket API. See http://webkit.org/b/85934.");

window.jsTestIsAsync = true;

var ws = new WebSocket("ws://127.0.0.1:8880/client-close");
var closeEvent;
var receivedMessage;

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

ws.onmessage = function(messageEvent)
{
    debug("Message should have been ignored: " + messageEvent.data);
    receivedMessage = messageEvent.data;
};

ws.onclose = function(event)
{
    debug("Closed");
    closeEvent = event;
    shouldBeUndefined("receivedMessage");
    shouldBeEqualToString("closeEvent.reason", "close_frame[:2]='88 80'");
    shouldBeTrue("closeEvent.wasClean");
    finishJSTest();
};

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