| <!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 if WebSocket opened in iframe, referred in parent document is, and try to send() returns false."); |
| |
| window.jsTestIsAsync = true; |
| |
| var frameDiv; |
| var closedSocket; |
| var closeCode; |
| document.childWebSocket = null; |
| |
| document.wsUrl = "ws://127.0.0.1:8880/close-on-unload?p=send-after-close-on-unload.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); |
| shouldBeUndefined("document.childWebSocket.send('send to closed socket')"); |
| }; |
| |
| </script> |
| </body> |
| </html> |