48 lines
1.3 KiB
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>
|