Object.getOwnPropertyNames() does not return named properties
[WebKit-https.git] / LayoutTests / fast / dom / htmlcollection-getownpropertynames.html
1 <!DOCTYPE html>
2 <html>
3 <body>
4 <script src="../../resources/js-test-pre.js"></script>
5 <div id="playground">
6     <!-- with no attribute -->
7     <span></span>
8
9     <!-- with `id` attribute -->
10     <span id=''></span>
11     <span id='some-id'></span>
12     <span id='some-id'></span><!-- to ensure no duplicates -->
13
14     <!-- with `name` attribute -->
15     <span name=''></span>
16     <span name='some-name'></span>
17     <span name='some-name'></span><!-- to ensure no duplicates -->
18
19     <!-- with `name` and `id` attribute -->
20     <span id='another-id' name='another-name'></span>
21 </div>
22 <script>
23 description("Tests that HTMLCollection's named properties returned by Object.getOwnPropertyNames() but not enumerable.");
24
25 var playground = document.getElementById("playground");
26 var elements = playground.getElementsByTagName("span");
27
28 debug("* Own properties");
29 var ownProperties = Object.getOwnPropertyNames(elements);
30 var result = "[";
31 var isFirst = true;
32 for (var i = 0; i < ownProperties.length; i++) {
33     if (isFirst)
34         isFirst = false;
35     else
36        result += ", ";
37     result += "'" + ownProperties[i] + "'";
38 }
39 result += "]";
40 debug("Actual:   " + result);
41 debug("Expected: ['0', '1', '2', '3', '4', '5', '6', '7', 'some-id', 'some-name', 'another-id', 'another-name']");
42
43 debug("");
44 debug("* Enumerated properties");
45 result = "[";
46 isFirst = true;
47 for (var property in elements) {
48     if (isFirst)
49         isFirst = false;
50     else
51        result += ", ";
52     result += "'" + property + "'";
53 }
54 result += "]";
55 debug("Actual:   " + result);
56 debug("Expected: ['0', '1', '2', '3', '4', '5', '6', '7', 'length', 'item', 'namedItem']");
57
58 </script>
59 <script src="../../resources/js-test-post.js"></script>
60 </body>
61 </html>