haikuwebkit/LayoutTests/fast/dom/Window/window-opener-shadowing.html

48 lines
1.3 KiB
HTML

<DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test.js"></script>
<script>
description("Tests shadowing of window.opener property");
shouldBeNull("window.opener");
evalAndLog("desc = Object.getOwnPropertyDescriptor(window, 'opener')");
shouldBeType("desc.get", "Function");
shouldBeType("desc.set", "Function");
shouldBeTrue("desc.enumerable");
shouldBeTrue("desc.configurable");
openerGetter = desc.get;
shouldNotThrow("window.opener = 'foo'");
shouldBeEqualToString("window.opener", "foo");
evalAndLog("desc = Object.getOwnPropertyDescriptor(window, 'opener')");
shouldBeEqualToString("desc.value", "foo");
shouldBeTrue("desc.writable");
shouldBeTrue("desc.enumerable");
shouldBeTrue("desc.configurable");
shouldBeNull("openerGetter.call(window)");
shouldNotThrow("window.opener = null");
shouldBeNull("window.opener");
shouldBeNull("openerGetter.call(window)");
evalAndLog("desc = Object.getOwnPropertyDescriptor(window, 'opener')");
shouldBe("desc.value", "null");
shouldBeTrue("desc.writable");
shouldBeTrue("desc.enumerable");
shouldBeTrue("desc.configurable");
shouldNotThrow("delete window.opener");
shouldBeUndefined("window.opener");
shouldBeNull("openerGetter.call(window)");
evalAndLog("desc = Object.getOwnPropertyDescriptor(window, 'opener')");
shouldBeUndefined("desc");
</script>
</body>
</html>