| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="../../resources/js-test.js"></script> | |
| 5 </head> | |
| 6 <body> | |
| 7 <script> | |
| 8 // Test for WebKit Bug 15136 - HTML5 spec violation: </h1> doesn't end <h3> elem
ent in Webkit | |
| 9 // https://bugs.webkit.org/show_bug.cgi?id=15136 | |
| 10 // rdar://problem/5762882 | |
| 11 | |
| 12 description('Test that any numbered header element end tag can close any other o
pen numbered header element.'); | |
| 13 | |
| 14 var testParent = document.createElement('div'); | |
| 15 testParent.id = 'test0'; | |
| 16 document.body.appendChild(testParent); | |
| 17 | |
| 18 // h1 | |
| 19 | |
| 20 debug('<h1> closes <h1>:'); | |
| 21 testParent.innerHTML = '<h1 id="test1"></h1><div id="test2"></div><p>Test that &
lt;h1> closes <h1.</p>'; | |
| 22 var h1 = document.getElementById('test2'); | |
| 23 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 24 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 25 | |
| 26 debug('<h2> closes <h1>:'); | |
| 27 testParent.innerHTML = '<h1 id="test1"></h2><div id="test2"></div><p>Test that &
lt;h2> closes <h1.</p>'; | |
| 28 var h1 = document.getElementById('test2'); | |
| 29 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 30 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 31 | |
| 32 debug('<h3> closes <h1>:'); | |
| 33 testParent.innerHTML = '<h1 id="test1"></h3><div id="test2"></div><p>Test that &
lt;h3> closes <h1.</p>'; | |
| 34 var h1 = document.getElementById('test2'); | |
| 35 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 36 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 37 | |
| 38 debug('<h4> closes <h1>:'); | |
| 39 testParent.innerHTML = '<h1 id="test1"></h4><div id="test2"></div><p>Test that &
lt;h4> closes <h1.</p>'; | |
| 40 var h1 = document.getElementById('test2'); | |
| 41 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 42 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 43 | |
| 44 debug('<h5> closes <h1>:'); | |
| 45 testParent.innerHTML = '<h1 id="test1"></h5><div id="test2"></div><p>Test that &
lt;h5> closes <h1.</p>'; | |
| 46 var h1 = document.getElementById('test2'); | |
| 47 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 48 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 49 | |
| 50 debug('<h6> closes <h1>:'); | |
| 51 testParent.innerHTML = '<h1 id="test1"></h6><div id="test2"></div><p>Test that &
lt;h6> closes <h1.</p>'; | |
| 52 var h1 = document.getElementById('test2'); | |
| 53 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 54 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 55 | |
| 56 // h2 | |
| 57 | |
| 58 debug('<h1> closes <h2>:'); | |
| 59 testParent.innerHTML = '<h2 id="test1"></h1><div id="test2"></div><p>Test that &
lt;h1> closes <h2.</p>'; | |
| 60 var h1 = document.getElementById('test2'); | |
| 61 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 62 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 63 | |
| 64 debug('<h2> closes <h2>:'); | |
| 65 testParent.innerHTML = '<h2 id="test1"></h2><div id="test2"></div><p>Test that &
lt;h2> closes <h2.</p>'; | |
| 66 var h1 = document.getElementById('test2'); | |
| 67 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 68 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 69 | |
| 70 debug('<h3> closes <h2>:'); | |
| 71 testParent.innerHTML = '<h2 id="test1"></h3><div id="test2"></div><p>Test that &
lt;h3> closes <h2.</p>'; | |
| 72 var h1 = document.getElementById('test2'); | |
| 73 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 74 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 75 | |
| 76 debug('<h4> closes <h2>:'); | |
| 77 testParent.innerHTML = '<h2 id="test1"></h4><div id="test2"></div><p>Test that &
lt;h4> closes <h2.</p>'; | |
| 78 var h1 = document.getElementById('test2'); | |
| 79 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 80 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 81 | |
| 82 debug('<h5> closes <h2>:'); | |
| 83 testParent.innerHTML = '<h2 id="test1"></h5><div id="test2"></div><p>Test that &
lt;h5> closes <h2.</p>'; | |
| 84 var h1 = document.getElementById('test2'); | |
| 85 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 86 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 87 | |
| 88 debug('<h6> closes <h2>:'); | |
| 89 testParent.innerHTML = '<h2 id="test1"></h6><div id="test2"></div><p>Test that &
lt;h6> closes <h2.</p>'; | |
| 90 var h1 = document.getElementById('test2'); | |
| 91 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 92 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 93 | |
| 94 // h3 | |
| 95 | |
| 96 debug('<h1> closes <h3>:'); | |
| 97 testParent.innerHTML = '<h3 id="test1"></h1><div id="test2"></div><p>Test that &
lt;h1> closes <h3.</p>'; | |
| 98 var h1 = document.getElementById('test2'); | |
| 99 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 100 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 101 | |
| 102 debug('<h2> closes <h3>:'); | |
| 103 testParent.innerHTML = '<h3 id="test1"></h2><div id="test2"></div><p>Test that &
lt;h2> closes <h3.</p>'; | |
| 104 var h1 = document.getElementById('test2'); | |
| 105 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 106 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 107 | |
| 108 debug('<h3> closes <h3>:'); | |
| 109 testParent.innerHTML = '<h3 id="test1"></h3><div id="test2"></div><p>Test that &
lt;h3> closes <h3.</p>'; | |
| 110 var h1 = document.getElementById('test2'); | |
| 111 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 112 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 113 | |
| 114 debug('<h4> closes <h3>:'); | |
| 115 testParent.innerHTML = '<h3 id="test1"></h4><div id="test2"></div><p>Test that &
lt;h4> closes <h3.</p>'; | |
| 116 var h1 = document.getElementById('test2'); | |
| 117 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 118 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 119 | |
| 120 debug('<h5> closes <h3>:'); | |
| 121 testParent.innerHTML = '<h3 id="test1"></h5><div id="test2"></div><p>Test that &
lt;h5> closes <h3.</p>'; | |
| 122 var h1 = document.getElementById('test2'); | |
| 123 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 124 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 125 | |
| 126 debug('<h6> closes <h3>:'); | |
| 127 testParent.innerHTML = '<h3 id="test1"></h6><div id="test2"></div><p>Test that &
lt;h6> closes <h3.</p>'; | |
| 128 var h1 = document.getElementById('test2'); | |
| 129 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 130 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 131 | |
| 132 // h4 | |
| 133 | |
| 134 debug('<h1> closes <h4>:'); | |
| 135 testParent.innerHTML = '<h4 id="test1"></h1><div id="test2"></div><p>Test that &
lt;h1> closes <h4.</p>'; | |
| 136 var h1 = document.getElementById('test2'); | |
| 137 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 138 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 139 | |
| 140 debug('<h2> closes <h4>:'); | |
| 141 testParent.innerHTML = '<h4 id="test1"></h2><div id="test2"></div><p>Test that &
lt;h2> closes <h4.</p>'; | |
| 142 var h1 = document.getElementById('test2'); | |
| 143 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 144 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 145 | |
| 146 debug('<h3> closes <h4>:'); | |
| 147 testParent.innerHTML = '<h4 id="test1"></h3><div id="test2"></div><p>Test that &
lt;h3> closes <h4.</p>'; | |
| 148 var h1 = document.getElementById('test2'); | |
| 149 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 150 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 151 | |
| 152 debug('<h4> closes <h4>:'); | |
| 153 testParent.innerHTML = '<h4 id="test1"></h4><div id="test2"></div><p>Test that &
lt;h4> closes <h4.</p>'; | |
| 154 var h1 = document.getElementById('test2'); | |
| 155 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 156 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 157 | |
| 158 debug('<h5> closes <h4>:'); | |
| 159 testParent.innerHTML = '<h4 id="test1"></h5><div id="test2"></div><p>Test that &
lt;h5> closes <h4.</p>'; | |
| 160 var h1 = document.getElementById('test2'); | |
| 161 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 162 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 163 | |
| 164 debug('<h6> closes <h4>:'); | |
| 165 testParent.innerHTML = '<h4 id="test1"></h6><div id="test2"></div><p>Test that &
lt;h6> closes <h4.</p>'; | |
| 166 var h1 = document.getElementById('test2'); | |
| 167 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 168 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 169 | |
| 170 // h5 | |
| 171 | |
| 172 debug('<h1> closes <h5>:'); | |
| 173 testParent.innerHTML = '<h5 id="test1"></h1><div id="test2"></div><p>Test that &
lt;h1> closes <h5.</p>'; | |
| 174 var h1 = document.getElementById('test2'); | |
| 175 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 176 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 177 | |
| 178 debug('<h2> closes <h5>:'); | |
| 179 testParent.innerHTML = '<h5 id="test1"></h2><div id="test2"></div><p>Test that &
lt;h2> closes <h5.</p>'; | |
| 180 var h1 = document.getElementById('test2'); | |
| 181 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 182 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 183 | |
| 184 debug('<h3> closes <h5>:'); | |
| 185 testParent.innerHTML = '<h5 id="test1"></h3><div id="test2"></div><p>Test that &
lt;h3> closes <h5.</p>'; | |
| 186 var h1 = document.getElementById('test2'); | |
| 187 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 188 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 189 | |
| 190 debug('<h4> closes <h5>:'); | |
| 191 testParent.innerHTML = '<h5 id="test1"></h4><div id="test2"></div><p>Test that &
lt;h4> closes <h5.</p>'; | |
| 192 var h1 = document.getElementById('test2'); | |
| 193 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 194 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 195 | |
| 196 debug('<h5> closes <h5>:'); | |
| 197 testParent.innerHTML = '<h5 id="test1"></h5><div id="test2"></div><p>Test that &
lt;h5> closes <h5.</p>'; | |
| 198 var h1 = document.getElementById('test2'); | |
| 199 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 200 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 201 | |
| 202 debug('<h6> closes <h5>:'); | |
| 203 testParent.innerHTML = '<h5 id="test1"></h6><div id="test2"></div><p>Test that &
lt;h6> closes <h5.</p>'; | |
| 204 var h1 = document.getElementById('test2'); | |
| 205 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 206 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 207 | |
| 208 // h6 | |
| 209 | |
| 210 debug('<h1> closes <h6>:'); | |
| 211 testParent.innerHTML = '<h6 id="test1"></h1><div id="test2"></div><p>Test that &
lt;h1> closes <h6.</p>'; | |
| 212 var h1 = document.getElementById('test2'); | |
| 213 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 214 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 215 | |
| 216 debug('<h2> closes <h6>:'); | |
| 217 testParent.innerHTML = '<h6 id="test1"></h2><div id="test2"></div><p>Test that &
lt;h2> closes <h6.</p>'; | |
| 218 var h1 = document.getElementById('test2'); | |
| 219 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 220 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 221 | |
| 222 debug('<h3> closes <h6>:'); | |
| 223 testParent.innerHTML = '<h6 id="test1"></h3><div id="test2"></div><p>Test that &
lt;h3> closes <h6.</p>'; | |
| 224 var h1 = document.getElementById('test2'); | |
| 225 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 226 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 227 | |
| 228 debug('<h4> closes <h6>:'); | |
| 229 testParent.innerHTML = '<h6 id="test1"></h4><div id="test2"></div><p>Test that &
lt;h4> closes <h6.</p>'; | |
| 230 var h1 = document.getElementById('test2'); | |
| 231 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 232 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 233 | |
| 234 debug('<h5> closes <h6>:'); | |
| 235 testParent.innerHTML = '<h6 id="test1"></h5><div id="test2"></div><p>Test that &
lt;h5> closes <h6.</p>'; | |
| 236 var h1 = document.getElementById('test2'); | |
| 237 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 238 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 239 | |
| 240 debug('<h6> closes <h6>:'); | |
| 241 testParent.innerHTML = '<h6 id="test1"></h6><div id="test2"></div><p>Test that &
lt;h6> closes <h6.</p>'; | |
| 242 var h1 = document.getElementById('test2'); | |
| 243 shouldBeFalse('test2.parentNode.id == "test1"'); | |
| 244 shouldBeTrue('test2.parentNode.id == "test0"'); | |
| 245 | |
| 246 document.body.removeChild(testParent); | |
| 247 </script> | |
| 248 </body> | |
| 249 </html> | |
| OLD | NEW |