mirror of
https://github.com/servo/servo.git
synced 2025-07-12 18:03:49 +01:00
Generates `SupportedPropertyNames` on DOM structs that should implement it. Most of them are unimplemented now (which can be implemented in later PRs), with the exception of `HTMLCollection`. Also added a couple relevant WPT tests. Closes #6390 Closes #2215
54 lines
1.7 KiB
HTML
54 lines
1.7 KiB
HTML
<!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>
|