blob: 13e0cd01f4d3601ebcd50430b371e6713dc7c919 [file] [log] [blame]
<!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 that WebSocket opened in iframe is closed when the iframe is unloaded even if the WebSocket is referred by the parent frame.");
window.jsTestIsAsync = true;
var frameDiv;
var closedSocket;
var closeCode;
document.childWebSocket = null;
document.wsUrl = "ws://127.0.0.1:8880/close-on-unload?p=close-on-unload-reference-in-parent.html";
var ws = new WebSocket(document.wsUrl);
ws.onopen = function()
{
debug("PASS ws on master document is ready.");
frameDiv = document.createElement("iframe");
frameDiv.src = "resources/close-on-unload-iframe-reference-in-parent.html";
document.body.appendChild(frameDiv);
debug("PASS insert a iframe, where open ws called 'socket1'");
};
ws.onmessage = function(evt)
{
var messageData = JSON.parse(evt.data);
closedSocket = messageData.message;
closeCode = messageData.closeCode;
ws.close();
};
ws.onclose = function()
{
shouldBe("closedSocket", '"socket1"');
shouldBe("closeCode", '"1001"');
shouldBe("document.childWebSocket.readyState", "3");
finishJSTest();
};
document.iframeReady = function()
{
shouldBeNonNull("document.childWebSocket");
debug("PASS 'socket1' is sent to the server. unload the iframe. expect receiving 'socket1' on ws...");
document.body.removeChild(frameDiv);
};
</script>
</body>
</html>