| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>HTML Test: Named access on the Window object</title> |
| <link rel="author" title="Intel" href="http://www.intel.com/"> |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/browsers.html#named-access-on-the-window-object"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <div style="display:none"> |
| <p name="a" id="p1"></p> |
| <a name="a" id="a1" href="#"></a> |
| <applet name="a" id="app1"></applet> |
| <area name="a" id="area1"></area> |
| <embed name="a" id="embed1"></embed> |
| <form name="a" id="form1"></form> |
| <img name="a" id="img1"> |
| <object name="a" id="obj1"></object> |
| <span name="a" id="span1"></span> |
| |
| <b id="b" name="c"></b> |
| <a name="c"></a> |
| <iframe name="c" id="fm1"></iframe> |
| <iframe name="c" id="fm2" src="test.html" onload="on_load()"></iframe> |
| <input id="b"></input> |
| <span id="d"></span> |
| <a name=""></a> |
| <b id=""></b> |
| </div> |
| <script> |
| |
| test(function() { |
| assert_equals(window['c'], document.getElementById("fm1").contentWindow, "The first iframe's window should be returned."); |
| }, "Check if the first nested browsing context is returned by window['c']"); |
| |
| test(function() { |
| assert_equals(window['a'].length, 7, "The length should be 7."); |
| assert_true(window['a'] instanceof HTMLCollection); |
| assert_array_equals(window['a'], |
| [ document.getElementById('a1'), document.getElementById('app1'), |
| document.getElementById('area1'), document.getElementById('embed1'), |
| document.getElementById('form1'), document.getElementById('img1'), |
| document.getElementById('obj1') ], |
| "The elements are not in tree order."); |
| |
| document.getElementById('a1').setAttribute("name", ""); |
| document.getElementById('area1').setAttribute("name", ""); |
| assert_array_equals(window['a'], |
| [ document.getElementById('app1'), document.getElementById('embed1'), |
| document.getElementById('form1'), document.getElementById('img1'), |
| document.getElementById('obj1') ], |
| "Window['a'] should not contain the elements with empty name attribute."); |
| }, "Check if window['a'] contains all a, applet, area, embed, form, img, and object elements, and their order"); |
| |
| var t = async_test("Check if window['fs'] return the frameset element with name='fs'"); |
| function on_load () { |
| t.step(function () { |
| assert_equals(document.getElementById('fm2').contentWindow['fs'], |
| document.getElementById('fm2').contentDocument.getElementById('fs1'), |
| "The frameset element should be returned."); |
| }); |
| t.done(); |
| } |
| |
| test(function() { |
| assert_true(window['b'] instanceof HTMLCollection); |
| assert_array_equals(window['b'], [document.getElementsByTagName('b')[0], document.getElementsByTagName('input')[0]]); |
| |
| document.getElementsByTagName('b')[0].setAttribute("id", ""); |
| assert_equals(window['b'], document.getElementsByTagName('input')[0], |
| "The window['b'] should not contain the elements with empty id attribute."); |
| }, "Check if window['b'] returns the elements with the id='b'"); |
| |
| test(function() { |
| assert_equals(window['d'], document.getElementById('d')); |
| }, "Check if window['d'] returns the element with id='d'"); |
| |
| test(function() { |
| assert_equals(window[''], undefined, "The window[''] should be undefined"); |
| }, "Check widow[''] when there are some elements with empty id or name attribute"); |
| </script> |