JS Test Harness: Remove more link tags
[WebKit-https.git] / LayoutTests / http / tests / websocket / tests / hybi / close-on-unload-and-force-gc.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../../../js-test-resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <div id="description"></div>
8 <div id="console"></div>
9 <script type="text/javascript">
10 description("Test if Web Socket is closed on unload and not crashed if garbage collected");
11
12 window.jsTestIsAsync = true;
13 if (window.layoutTestController)
14     layoutTestController.overridePreference("WebKitHixie76WebSocketProtocolEnabled", 0);
15
16 function gc()
17 {
18     if (window.GCController)
19         return GCController.collect();
20
21     for (var i = 0; i < 10000; i++) { // > force garbage collection (FF requires about 9K allocations before a collect)
22         var s = new String("abc");
23     }
24 };
25
26 var frameDiv;
27 var closedSocket;
28
29 var ws = new WebSocket("ws://127.0.0.1:8880/websocket/tests/hybi/close-on-unload");
30 ws.onopen = function()
31 {
32     debug("PASS ws on master document is ready.");
33     frameDiv = document.createElement("iframe");
34     frameDiv.src = "resources/close-on-unload-iframe.html";
35     document.body.appendChild(frameDiv);
36     debug("PASS insert a iframe, where open ws called 'socket1'");
37 };
38 ws.onmessage = function(evt)
39 {
40     closedSocket = evt.data;
41     ws.close();
42 };
43 ws.onclose = function()
44 {
45     shouldBe("closedSocket", '"socket1"');
46     finishJSTest();
47 };
48
49 document.iframeReady = function()
50 {
51     debug("PASS 'socket1' is sent to the server. unload the iframe and force garbage collection. expect receiving 'socket1' on ws and no crash...");
52     document.body.removeChild(frameDiv);
53     gc();
54 };
55
56 var successfullyParsed = true;
57 </script>
58 <script src="../../../../js-test-resources/js-test-post.js"></script>
59 </body>
60 </html>