| <!doctype html> | |
| <meta charset=utf-8> | |
| <link rel=help href=https://dom.spec.whatwg.org/#interface-htmlcollection> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <div id=log></div> | |
| <!-- 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> | |
| <script> | |
| test(function () { | |
| var elements = document.getElementsByTagName("span"); | |
| assert_array_equals( | |
| Object.getOwnPropertyNames(elements), | |
| ['0', '1', '2', '3', '4', '5', '6', '7', 'some-id', 'some-name', 'another-id', 'another-name'] | |
| ); | |
| }, 'Object.getOwnPropertyNames on HTMLCollection'); | |
| test(function () { | |
| var elem = document.createElementNS('some-random-namespace', 'foo'); | |
| this.add_cleanup(function () {elem.remove();}); | |
| elem.setAttribute("name", "some-name"); | |
| document.body.appendChild(elem); | |
| var elements = document.getElementsByTagName("foo"); | |
| assert_array_equals(Object.getOwnPropertyNames(elements), ['0']); | |
| }, 'Object.getOwnPropertyNames on HTMLCollection with non-HTML namespace'); | |
| test(function () { | |
| var elem = document.createElement('foo'); | |
| this.add_cleanup(function () {elem.remove();}); | |
| document.body.appendChild(elem); | |
| var elements = document.getElementsByTagName("foo"); | |
| elements.someProperty = "some value"; | |
| assert_array_equals(Object.getOwnPropertyNames(elements), ['0', 'someProperty']); | |
| }, 'Object.getOwnPropertyNames on HTMLCollection with expando object'); | |
| </script> |