nameditem-02.html (6975B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <title>Named items: iframes</title> 4 <link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com"> 5 <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-document-nameditem"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <div id="log"></div> 9 <div id="test"> 10 <iframe name="test1"></iframe> 11 12 <iframe name="test2"></iframe> 13 <iframe name="test2"></iframe> 14 15 <iframe name="test3"></iframe> 16 <img name="test3"> 17 18 <img name="test4"> 19 <iframe name="test4"></iframe> 20 21 <iframe id="test5"></iframe> 22 23 <iframe name="test6" id="fail"></iframe> 24 25 <iframe name="fail" id="test7"></iframe> 26 27 <iframe name="42"></iframe> 28 29 <iframe name="test9" id="test9"></iframe> 30 31 <iframe></iframe> 32 33 <iframe name="test11a"></iframe> 34 35 <iframe name="test12"></iframe> 36 </div> 37 <script> 38 test(function() { 39 var iframe = document.getElementsByTagName("iframe")[0]; 40 assert_equals(iframe.name, "test1"); 41 42 assert_true("test1" in document, '"test1" in document should be true'); 43 assert_equals(document.test1, iframe.contentWindow); 44 }, "If the only named item is an iframe, the contentWindow should be returned."); 45 46 test(function() { 47 var iframe1 = document.getElementsByTagName("iframe")[1]; 48 assert_equals(iframe1.name, "test2"); 49 var iframe2 = document.getElementsByTagName("iframe")[2]; 50 assert_equals(iframe2.name, "test2"); 51 52 assert_true("test2" in document, '"test2" in document should be true'); 53 var collection = document.test2; 54 assert_class_string(collection, "HTMLCollection", "collection should be an HTMLCollection"); 55 assert_array_equals(collection, [iframe1, iframe2]); 56 }, "If there are two iframes, a collection should be returned."); 57 58 test(function() { 59 var iframe = document.getElementsByTagName("iframe")[3]; 60 assert_equals(iframe.name, "test3"); 61 var img = document.getElementsByTagName("img")[0]; 62 assert_equals(img.name, "test3"); 63 64 assert_true("test3" in document, '"test3" in document should be true'); 65 var collection = document.test3; 66 assert_class_string(collection, "HTMLCollection", "collection should be an HTMLCollection"); 67 assert_array_equals(collection, [iframe, img]); 68 }, "If there are an iframe and another element (iframe first), a collection should be returned."); 69 70 test(function() { 71 var iframe = document.getElementsByTagName("iframe")[4]; 72 assert_equals(iframe.name, "test4"); 73 var img = document.getElementsByTagName("img")[1]; 74 assert_equals(img.name, "test4"); 75 76 assert_true("test4" in document, '"test4" in document should be true'); 77 var collection = document.test4; 78 assert_class_string(collection, "HTMLCollection", "collection should be an HTMLCollection"); 79 assert_array_equals(collection, [img, iframe]); 80 }, "If there are an iframe and another element (iframe last), a collection should be returned."); 81 82 test(function() { 83 assert_false("test5" in document, '"test5" in document should be false'); 84 assert_equals(document.test5, undefined); 85 }, "If an iframe has an id and no name, it should not be returned."); 86 87 test(function() { 88 var iframe = document.getElementsByTagName("iframe")[6]; 89 assert_equals(iframe.name, "test6"); 90 91 assert_true("test6" in document, '"test6" in document should be true'); 92 assert_equals(document.test6, iframe.contentWindow); 93 }, "If an iframe has a name and a different id, it should be returned by its name."); 94 95 test(function() { 96 assert_false("test7" in document, '"test7" in document should be false'); 97 assert_equals(document.test7, undefined); 98 }, "If an iframe has an id and a different name, it should not be returned by its id."); 99 100 test(function() { 101 var iframe = document.getElementsByTagName("iframe")[8]; 102 assert_equals(iframe.name, "42"); 103 104 assert_true(42 in document, '42 in document should be true'); 105 assert_equals(document[42], iframe.contentWindow); 106 }, "An iframe whose name looks like an array index should work."); 107 108 test(function() { 109 var iframe = document.getElementsByTagName("iframe")[9]; 110 assert_equals(iframe.name, "test9"); 111 112 assert_true("test9" in document, 'test9 in document should be true'); 113 assert_equals(document["test9"], iframe.contentWindow); 114 assert_equals(document.test9, iframe.contentWindow); 115 116 iframe.removeAttribute("name"); 117 assert_false("test9" in document, 'test9 in document should be false'); 118 assert_equals(document["test9"], undefined); 119 assert_equals(document.test9, undefined); 120 }, "Dynamically removing the name attribute from iframe elements, should not be accessible."); 121 122 test(function() { 123 var iframe = document.getElementsByTagName("iframe")[10]; 124 iframe.setAttribute("name", "test10a"); 125 126 assert_true("test10a" in document, 'test10a in document should be true'); 127 assert_equals(document["test10a"], iframe.contentWindow); 128 assert_equals(document.test10a, iframe.contentWindow); 129 130 iframe.setAttribute("name", "test10b"); 131 assert_false("test10a" in document, 'test10a in document should be false'); 132 assert_equals(document["test10a"], undefined); 133 assert_equals(document.test10a, undefined); 134 assert_true("test10b" in document, 'test10b in document should be true'); 135 assert_equals(document["test10b"], iframe.contentWindow); 136 assert_equals(document.test10b, iframe.contentWindow); 137 }, "Dynamically updating the name attribute from iframe elements, should be accessible by its name."); 138 139 test(function() { 140 var iframe = document.getElementsByTagName("iframe")[11]; 141 assert_equals(iframe.name, "test11a"); 142 143 assert_true("test11a" in document, 'test11a in document should be true'); 144 assert_equals(document["test11a"], iframe.contentWindow); 145 assert_equals(document.test11a, iframe.contentWindow); 146 147 iframe.setAttribute("id", "test11a"); 148 assert_true("test11a" in document, 'test11a in document should be true'); 149 assert_equals(document["test11a"], iframe.contentWindow); 150 assert_equals(document.test11a, iframe.contentWindow); 151 152 iframe.setAttribute("id", "test11b"); 153 assert_true("test11a" in document, 'test11a in document should be true'); 154 assert_equals(document["test11a"], iframe.contentWindow); 155 assert_equals(document.test11a, iframe.contentWindow); 156 assert_false("test11b" in document, 'test11b in document should be false'); 157 assert_equals(document["test11b"], undefined); 158 assert_equals(document.test11b, undefined); 159 }, "Dynamically updating the id attribute from iframe elements, should be accessible only by its name."); 160 161 test(function() { 162 var iframe = document.getElementsByTagName("iframe")[12]; 163 assert_equals(iframe.name, "test12"); 164 165 assert_true("test12" in document, 'test12 in document should be true'); 166 assert_equals(document["test12"], iframe.contentWindow); 167 assert_equals(document.test12, iframe.contentWindow); 168 169 iframe.remove(); 170 assert_false("test12" in document, 'test12 in document should be false'); 171 assert_equals(document["test12"], undefined); 172 assert_equals(document.test12, undefined); 173 }, "iframe elements that is removed, should not be accessible."); 174 </script>