Index: LayoutTests/fast/dom/htmlallcollection-enumerated-properties.html |
diff --git a/LayoutTests/fast/dom/htmlallcollection-enumerated-properties.html b/LayoutTests/fast/dom/htmlallcollection-enumerated-properties.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d819990b42a9bebbe903b7b7010f0f432654a3c2 |
--- /dev/null |
+++ b/LayoutTests/fast/dom/htmlallcollection-enumerated-properties.html |
@@ -0,0 +1,47 @@ |
+<!DOCTYPE html> |
+<html> |
+<body> |
+<script src="../../resources/js-test.js"></script> |
+ |
+<a href="#" id="aId1" name="aName1"></a> |
+<applet code="#" width="0" height="0" id="appletId1" name="appletName1"></applet> |
+<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"); |
+shouldBe("htmlAllCollection.__proto__.__proto__", "HTMLCollection.prototype"); |
+shouldBe("htmlAllCollection.length", "35"); |
+ |
+// 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, applet, 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", "38", "length", "description", "console", "aId1", "aName1", "appletId1", "appletName1", "mapId1", "areaId1", "areaName1", "areaId2", "areaName2", "embedId1", "embedName1", "formId1", "formName1", "inputId1", "inputName1", "inputId2", "iframeId1", "iframeName1", "imgId8", "imgName8", "objectId1", "objectName1", "selectId1", "selectName1", "optionId1", "item", "namedItem"]; |
+ |
+var enumeratedProperties = []; |
+for (var property in htmlAllCollection) { |
+ enumeratedProperties[enumeratedProperties.length] = property; |
+} |
+shouldBe("enumeratedProperties", "expectedEnumeratedProperties"); |
+</script> |
+</body> |
+</html> |