Bug 1885602 - Part 5: Implement navigating to the SUMO help topic from the menu heade...
[gecko.git] / dom / bindings / test / test_named_getter_enumerability.html
blob3894633a3bed02d6dff3b079cb56b1b51b97d16b
1 <!DOCTYPE html>
2 <meta charset=utf-8>
3 <title>Test for named getter enumerability</title>
4 <script src="/resources/testharness.js"></script>
5 <script src="/resources/testharnessreport.js"></script>
6 <div id="log"></div>
7 <script>
8 /* global test, assert_equals, assert_true, assert_false, assert_not_equals */
9 test(function() {
10 var list = document.getElementsByTagName("div");
11 var desc = Object.getOwnPropertyDescriptor(list, "0");
12 assert_equals(typeof desc, "object", "Should have a '0' property");
13 assert_true(desc.enumerable, "'0' property should be enumerable");
14 desc = Object.getOwnPropertyDescriptor(list, "log");
15 assert_equals(typeof desc, "object", "Should have a 'log' property");
16 assert_false(desc.enumerable, "'log' property should not be enumerable");
17 }, "Correct getOwnPropertyDescriptor behavior");
18 test(function() {
19 var list = document.getElementsByTagName("div");
20 var props = [];
21 for (var prop in list) {
22 props.push(prop);
24 assert_not_equals(props.indexOf("0"), -1, "Should enumerate '0'");
25 assert_equals(props.indexOf("log"), -1, "Should not enumerate 'log'");
26 }, "Correct enumeration behavior");
27 test(function() {
28 var list = document.getElementsByTagName("div");
29 var props = Object.keys(list);
30 assert_not_equals(props.indexOf("0"), -1, "Keys should contain '0'");
31 assert_equals(props.indexOf("log"), -1, "Keys should not contain 'log'");
32 }, "Correct keys() behavior");
33 test(function() {
34 var list = document.getElementsByTagName("div");
35 var props = Object.getOwnPropertyNames(list);
36 assert_not_equals(props.indexOf("0"), -1,
37 "own prop names should contain '0'");
38 assert_not_equals(props.indexOf("log"), -1,
39 "own prop names should contain 'log'");
40 }, "Correct getOwnPropertyNames() behavior");
41 </script>