Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / dom / Window / property-access-on-cached-properties-after-frame-removed.html
blob8e515d77a16751e6288dcbd80ecf62c5901e077e
1 <html>
2 <head>
3 <script src="../../../resources/js-test.js"></script>
4 <script src="resources/window-property-collector.js"></script>
5 <script>
6 var childWindow;
7 var propertiesToVerify = [];
9 function insertExpectedResult(path, expected)
11 if (path.length < 2)
12 return;
13 var propertyDir = path.slice(0, -1).join('.');
14 var cachedPropertyDir = "cached_" + propertyDir.replace('.', '_');
15 window[cachedPropertyDir] = eval("childWindow." + propertyDir);
16 propertiesToVerify.push({
17 'property': ["window", cachedPropertyDir, path[path.length - 1]].join("."),
18 'expected': expected,
19 });
22 function runTest()
24 description("Tests access of cached DOMWindow properties after the associated frame is no longer in a web page. Test should not crash and properties should be set to sane defaults.");
25 var frame = document.getElementById("frame");
26 childWindow = frame.contentWindow;
27 // Have expected results assume that the frame hasn't been closed (=> window.closed = false.)
28 collectProperties(false);
29 frame.parentNode.removeChild(frame);
30 for (var i = 0; i < propertiesToVerify.length; ++i)
31 shouldBe(propertiesToVerify[i].property, propertiesToVerify[i].expected);
33 </script>
34 </head>
35 <body>
36 <iframe id="frame" src="about:blank" onload="runTest()"></iframe>
37 </body>
38 </html>