Use testRunner instead of layoutTestController in fast/doctypes, dom, dynamic, encodi...
[WebKit-https.git] / LayoutTests / fast / events / onload-after-document-close-with-subresource.html
1 <p>This test verifies that the load event doesn't fire until subresource content has loaded, even if you manually call document.close beforehand. See <a href="http://bugs.webkit.org/show_bug.cgi?id=13241">bug 13241</a>.</p>
2 <hr>
3 <pre id="console"></pre>
4
5 <iframe></iframe>
6
7 <script>
8 function log(s)
9 {
10     document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
11 }
12
13 function getDimensions()
14 {
15     var image = frames[0].document.images[0];
16     return "{ " + image.width + " x " + image.height + " }";
17 }
18
19 function beforeOnload()
20 {
21     log("dimensions before onload (should be { 0 x 0 }, otherwise the test will falsely pass): " + getDimensions());
22 }
23
24 function afterOnload()
25 {
26     log("dimensions during onload (should be { 215 x 174 }, otherwise onload fired too early): " + getDimensions());
27     if (window.testRunner)
28         testRunner.notifyDone();
29 }
30
31 function runTest()
32 {
33     if (window.testRunner) {
34         testRunner.dumpAsText();
35
36         // Quirkily, the FrameLoadDelegate API considers our <iframe> fully loaded 
37         // once it has loaded its initial empty document. So, if we want DumpRenderTree 
38         // to wait for the load event caused by our document.close() before dumping,
39         // we need to tell it so explicitly.
40         testRunner.waitUntilDone();
41     }
42
43     var doc = frames[0].document;
44     doc.open();
45     doc.write("<body onload=\"parent.afterOnload()\">");
46     // Append a random query string to force a non-cached load.
47     doc.write("<img src=\"resources/onload-image.png?" + Math.random() + "\">");
48     doc.write("<script\>parent.beforeOnload();</script\>");
49     doc.write("</body>");
50     doc.close();
51 }
52
53 runTest();
54 </script>