blob: 3037fceeb6d75ec9a82b17fee34892019c76a853 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<div id="playground">
<!-- with no attribute -->
<span></span>
<!-- with `id` attribute -->
<span id=''></span>
<span id='some-id'></span>
<span id='some-id'></span><!-- to ensure no duplicates -->
<!-- with `name` attribute -->
<span name=''></span>
<span name='some-name'></span>
<span name='some-name'></span><!-- to ensure no duplicates -->
<!-- with `name` and `id` attribute -->
<span id='another-id' name='another-name'></span>
</div>
<script>
description("Tests that HTMLCollection's named properties returned by Object.getOwnPropertyNames() but not enumerable.");
var playground = document.getElementById("playground");
var elements = playground.getElementsByTagName("span");
debug("* Own properties");
var ownProperties = Object.getOwnPropertyNames(elements);
var result = "[";
var isFirst = true;
for (var i = 0; i < ownProperties.length; i++) {
if (isFirst)
isFirst = false;
else
result += ", ";
result += "'" + ownProperties[i] + "'";
}
result += "]";
debug("Actual: " + result);
debug("Expected: ['0', '1', '2', '3', '4', '5', '6', '7', 'some-id', 'some-name', 'another-id', 'another-name']");
debug("");
debug("* Enumerated properties");
result = "[";
isFirst = true;
for (var property in elements) {
if (isFirst)
isFirst = false;
else
result += ", ";
result += "'" + property + "'";
}
result += "]";
debug("Actual: " + result);
debug("Expected: ['0', '1', '2', '3', '4', '5', '6', '7', 'length', 'item', 'namedItem']");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>