blob: ade1f0d614b4c267c4edc36869f15e470a1b338d [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test.js"></script>
<a href="#" id="aId1" name="aName1"></a>
<map id="mapId1" name="mapName1">
<area shape="rect" coords="0,0,82,126" href="#" id="areaId1" name="areaName1"/>
<area shape="circle" coords="90,58,3" href="#" id="areaId2" name="areaName2"/>
</map>
<embed src="#" id="embedId1" name="embedName1">
<form id="formId1" name="formName1">
<input id="inputId1" name="inputName1"></input>
<input id="inputId2"></input>
</form>
<iframe id="iframeId1" name="iframeName1"></iframe>
<img id="imgId8" name="imgName8"/>
<object width="0" height="0" data="#" id="objectId1" name="objectName1"></object>
<select id="selectId1" name="selectName1">
<option value="option" id="optionId1" name="optionName1">option</option>
</select>
<script>
description("This tests verifies the enumerated properties on HTMLAllCollection and their order.");
var htmlAllCollection = document.all;
shouldBe("htmlAllCollection.__proto__", "HTMLAllCollection.prototype");
// HTMLAllCollection doesn't inherit from HTMLCollection.
shouldBe("htmlAllCollection.__proto__.__proto__", "Object.prototype");
shouldBe("htmlAllCollection.length", "34");
// As per http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection-0:
// The supported property names consist of the non-empty values of all the id attributes of all the elements
// represented by the collection, and the non-empty values of all the name attributes of all the a, area,
// embed, form, frame, frameset, iframe, img, and object elements represented by the collection, in tree order,
// ignoring later duplicates, with the id of an element preceding its name if it contributes both, they differ from
// each other, and neither is the duplicate of an earlier entry.
var expectedEnumeratedProperties = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "length", "description", "console", "aId1", "aName1", "mapId1", "mapName1", "areaId1", "areaId2", "embedId1", "embedName1", "formId1", "formName1", "inputId1", "inputName1", "inputId2", "iframeId1", "iframeName1", "imgId8", "imgName8", "objectId1", "objectName1", "selectId1", "selectName1", "optionId1", "item", "namedItem"].sort();
var enumeratedProperties = [];
for (var property in htmlAllCollection) {
enumeratedProperties[enumeratedProperties.length] = property;
}
enumeratedProperties.sort();
shouldBe("enumeratedProperties", "expectedEnumeratedProperties");
</script>
</body>
</html>