blob: 82bf1ca88cd58502004bec6a4036065bc538139e [file] [log] [blame]
<p>
This page tests whether global declarations are cleared after a navigation.
If the test passes, you'll see a series of PASS messages below.
</p>
<pre id="console"></pre>
<script>
function log(s)
{
document.getElementById("console").appendChild(document.createTextNode(s + "\r\n"));
}
function shouldBe(evalA, a, b)
{
if (evalA === b) {
log("PASS: " + a + " should be " + b + " and is.");
} else {
log("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".");
}
}
var count = 0;
function didFinishLoading(childWindow) // called by subframes
{
log("\r\nPage " + count + ":");
if (!count) {
shouldBe('x' in childWindow, "'x' in childWindow", true);
shouldBe(childWindow.x, "childWindow.x", 1);
shouldBe('f' in childWindow, "'f' in childWindow", true);
shouldBe(typeof childWindow.f, "childWindow.f", "function");
childWindow.name = "test";
childWindow.location = "window-property-clearing-iframe1.html";
++count;
} else {
shouldBe('x' in childWindow, "'x' in childWindow", false);
shouldBe(childWindow.x, "childWindow.x", undefined);
shouldBe('f' in childWindow, "'f' in childWindow", false);
shouldBe(typeof childWindow.f, "typeof childWindow.f", "undefined");
shouldBe('name' in childWindow, "'name' in childWindow", true);
shouldBe(childWindow.name, "childWindow.name", "test");
if (window.layoutTestController)
layoutTestController.notifyDone();
}
}
function test()
{
if (window.layoutTestController) {
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
}
}
test();
</script>
<iframe src="resources/window-property-clearing-iframe0.html"></iframe>