52 lines
1.7 KiB
HTML
52 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
description("Test that DOMRect's properties are on the prototype.");
|
|
|
|
var rect = document.body.getBoundingClientRect();
|
|
shouldBe("rect.__proto__", "DOMRect.prototype");
|
|
shouldBe("rect.__proto__.__proto__", "DOMRectReadOnly.prototype");
|
|
shouldBe("Object.getOwnPropertyNames(rect).length", "0");
|
|
shouldBeFalse("Object.hasOwnProperty(rect, 'top')");
|
|
shouldBeFalse("Object.hasOwnProperty(rect, 'right')");
|
|
shouldBeFalse("Object.hasOwnProperty(rect, 'bottom')");
|
|
shouldBeFalse("Object.hasOwnProperty(rect, 'left')");
|
|
shouldBeFalse("Object.hasOwnProperty(rect, 'width')");
|
|
shouldBeFalse("Object.hasOwnProperty(rect, 'height')");
|
|
|
|
function checkAttributeGetter(prototype, propertyName)
|
|
{
|
|
descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName);
|
|
shouldBeType("descriptor.get", "Function");
|
|
shouldBeTrue("descriptor.enumerable");
|
|
shouldBeTrue("descriptor.configurable");
|
|
}
|
|
|
|
for (var propertyName of ['x', 'y', 'width', 'height']) {
|
|
debug("");
|
|
debug("* rect.__proto__." + propertyName);
|
|
checkAttributeGetter(rect.__proto__, propertyName);
|
|
|
|
debug("");
|
|
debug("* DOMRect.prototype." + propertyName);
|
|
checkAttributeGetter(DOMRect.prototype, propertyName);
|
|
}
|
|
|
|
for (var propertyName of ['x', 'y', 'width', 'height', 'top', 'right', 'bottom', 'left']) {
|
|
debug("");
|
|
debug("* rect.__proto__.__proto__." + propertyName);
|
|
checkAttributeGetter(rect.__proto__.__proto__, propertyName);
|
|
|
|
debug("");
|
|
debug("* DOMRectReadonly.prototype." + propertyName);
|
|
checkAttributeGetter(DOMRectReadOnly.prototype, propertyName);
|
|
}
|
|
|
|
debug("");
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|