| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../../../resources/js-test.js"></script> | 4 <script src="../../../resources/js-test.js"></script> |
| 5 </head> | 5 </head> |
| 6 <body id="a"> | 6 <body id="a"> |
| 7 <script> | 7 <script> |
| 8 | 8 |
| 9 description("Test that different ways of changing an element's id all work prope
rly."); | 9 description("Test that different ways of changing an element's id all work prope
rly."); |
| 10 | 10 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 var attrNode = document.body.getAttributeNode("id"); | 40 var attrNode = document.body.getAttributeNode("id"); |
| 41 | 41 |
| 42 debug("\n6. Change Attr.nodeValue."); | 42 debug("\n6. Change Attr.nodeValue."); |
| 43 document.body.getAttributeNode("id").nodeValue = "f"; | 43 document.body.getAttributeNode("id").nodeValue = "f"; |
| 44 shouldBe('document.getElementById("e")', 'null'); | 44 shouldBe('document.getElementById("e")', 'null'); |
| 45 shouldBe('document.getElementById("f")', 'document.body'); | 45 shouldBe('document.getElementById("f")', 'document.body'); |
| 46 shouldBe('document.body.id', '"f"'); | 46 shouldBe('document.body.id', '"f"'); |
| 47 shouldBe('document.body.getAttribute("id")', '"f"'); | 47 shouldBe('document.body.getAttribute("id")', '"f"'); |
| 48 shouldBe('attrNode.value', '"f"'); | 48 shouldBe('attrNode.value', '"f"'); |
| 49 shouldBe('attrNode.childNodes.length', '1'); | |
| 50 | |
| 51 // Firefox doesn't support these for Attr nodes. | |
| 52 debug("\n7. Attr.replaceChild()."); | |
| 53 try { | |
| 54 attrNode.replaceChild(document.createTextNode("g"), attrNode.firstChild); | |
| 55 shouldBe('document.getElementById("f")', 'null'); | |
| 56 shouldBe('document.getElementById("g")', 'document.body'); | |
| 57 shouldBe('document.body.id', '"g"'); | |
| 58 shouldBe('document.body.getAttribute("id")', '"g"'); | |
| 59 shouldBe('attrNode.value', '"g"'); | |
| 60 shouldBe('attrNode.childNodes.length', '1'); | |
| 61 } catch (ex) { | |
| 62 debug(ex); | |
| 63 } | |
| 64 | |
| 65 debug("\n8. Attr.insertBefore()."); | |
| 66 try { | |
| 67 attrNode.insertBefore(document.createTextNode("0"), attrNode.firstChild); | |
| 68 shouldBe('document.getElementById("g")', 'null'); | |
| 69 shouldBe('document.getElementById("0g")', 'document.body'); | |
| 70 shouldBe('document.body.id', '"0g"'); | |
| 71 shouldBe('document.body.getAttribute("id")', '"0g"'); | |
| 72 shouldBe('attrNode.value', '"0g"'); | |
| 73 shouldBe('attrNode.childNodes.length', '2'); | |
| 74 } catch (ex) { | |
| 75 debug(ex); | |
| 76 } | |
| 77 | |
| 78 debug("\n9. attr.appendChild()."); | |
| 79 try { | |
| 80 attrNode.appendChild(document.createTextNode("2")); | |
| 81 shouldBe('document.getElementById("0g")', 'null'); | |
| 82 shouldBe('document.getElementById("0g2")', 'document.body'); | |
| 83 shouldBe('document.body.id', '"0g2"'); | |
| 84 shouldBe('document.body.getAttribute("id")', '"0g2"'); | |
| 85 shouldBe('attrNode.value', '"0g2"'); | |
| 86 shouldBe('attrNode.childNodes.length', '3'); | |
| 87 } catch (ex) { | |
| 88 debug(ex); | |
| 89 } | |
| 90 | |
| 91 debug("\n10. Attr.removeChild()"); | |
| 92 attrNode.nodeValue = "h"; | |
| 93 attrNode.removeChild(attrNode.firstChild); | |
| 94 shouldBe('document.body.getAttributeNode("id").childNodes.length', '0'); | |
| 95 shouldBe('document.getElementById("h")', 'null'); | |
| 96 shouldBe('document.getElementById("")', 'null'); | |
| 97 shouldBe('document.body.id', '""'); | |
| 98 shouldBe('document.body.getAttribute("id")', '""'); | |
| 99 shouldBe('document.body.getAttributeNode("id").value', '""'); | |
| 100 | |
| 101 debug("\n11. Changing Text.nodeValue."); | |
| 102 attrNode.nodeValue = "h"; | |
| 103 attrNode.firstChild.nodeValue = "i"; | |
| 104 shouldBe('attrNode.firstChild.nodeValue', '"i"'); | |
| 105 shouldBe('document.getElementById("i")', 'document.body'); | |
| 106 shouldBe('document.body.id', '"i"'); | |
| 107 shouldBe('document.body.getAttribute("id")', '"i"'); | |
| 108 shouldBe('attrNode.value', '"i"'); | |
| 109 shouldBe('attrNode.childNodes.length', '1'); | |
| 110 | 49 |
| 111 debug("\n12. Chnaging Attr.value."); | 50 debug("\n12. Chnaging Attr.value."); |
| 112 attrNode.value = "hi"; | 51 attrNode.value = "hi"; |
| 113 shouldBe('document.getElementById("i")', 'null'); | 52 shouldBe('document.getElementById("i")', 'null'); |
| 114 shouldBe('document.getElementById("hi")', 'document.body'); | 53 shouldBe('document.getElementById("hi")', 'document.body'); |
| 115 shouldBe('document.body.id', '"hi"'); | 54 shouldBe('document.body.id', '"hi"'); |
| 116 shouldBe('document.body.getAttribute("id")', '"hi"'); | 55 shouldBe('document.body.getAttribute("id")', '"hi"'); |
| 117 shouldBe('attrNode.value', '"hi"'); | 56 shouldBe('attrNode.value', '"hi"'); |
| 118 shouldBe('attrNode.childNodes.length', '1'); | |
| 119 | |
| 120 debug("\n13. Text.splitText()."); | |
| 121 attrNode.firstChild.splitText(1); | |
| 122 shouldBe('document.getElementById("hi")', 'document.body'); | |
| 123 shouldBe('document.body.id', '"hi"'); | |
| 124 shouldBe('document.body.getAttribute("id")', '"hi"'); | |
| 125 shouldBe('document.body.getAttributeNode("id").value', '"hi"'); | |
| 126 shouldBe('document.body.getAttributeNode("id").childNodes.length', '2'); | |
| 127 | |
| 128 debug("\n14. Node.normalize(), joining text nodes."); | |
| 129 attrNode.normalize(); | |
| 130 shouldBe('document.getElementById("hi")', 'document.body'); | |
| 131 shouldBe('document.body.id', '"hi"'); | |
| 132 shouldBe('document.body.getAttribute("id")', '"hi"'); | |
| 133 shouldBe('document.body.getAttributeNode("id").value', '"hi"'); | |
| 134 shouldBe('document.body.getAttributeNode("id").childNodes.length', '1'); | |
| 135 | |
| 136 debug("\n15. Changing Attr.nodeValue."); | |
| 137 attrNode.nodeValue = "foo"; | |
| 138 attrNode.firstChild.data = "j"; | |
| 139 shouldBe('document.getElementById("hi")', 'null'); | |
| 140 shouldBe('document.getElementById("j")', 'document.body'); | |
| 141 shouldBe('document.body.id', '"j"'); | |
| 142 shouldBe('document.body.getAttribute("id")', '"j"'); | |
| 143 shouldBe('attrNode.value', '"j"'); | |
| 144 shouldBe('attrNode.childNodes.length', '1'); | |
| 145 | |
| 146 debug("\n16. Changing Text.data."); | |
| 147 attrNode.firstChild.data = "k"; | |
| 148 shouldBe('document.getElementById("j")', 'null'); | |
| 149 shouldBe('document.getElementById("k")', 'document.body'); | |
| 150 shouldBe('document.body.id', '"k"'); | |
| 151 shouldBe('document.body.getAttribute("id")', '"k"'); | |
| 152 shouldBe('attrNode.value', '"k"'); | |
| 153 shouldBe('attrNode.childNodes.length', '1'); | |
| 154 | |
| 155 debug("\n17. Changing text child with appendData()."); | |
| 156 attrNode.firstChild.appendData("l"); | |
| 157 shouldBe('document.getElementById("k")', 'null'); | |
| 158 shouldBe('document.getElementById("kl")', 'document.body'); | |
| 159 shouldBe('document.body.id', '"kl"'); | |
| 160 shouldBe('document.body.getAttribute("id")', '"kl"'); | |
| 161 shouldBe('attrNode.value', '"kl"'); | |
| 162 shouldBe('attrNode.childNodes.length', '1'); | |
| 163 | |
| 164 debug("\n18. Changing text child with insertData()."); | |
| 165 attrNode.firstChild.insertData(1, "1"); | |
| 166 shouldBe('document.getElementById("kl")', 'null'); | |
| 167 shouldBe('document.getElementById("k1l")', 'document.body'); | |
| 168 shouldBe('document.body.id', '"k1l"'); | |
| 169 shouldBe('document.body.getAttribute("id")', '"k1l"'); | |
| 170 shouldBe('attrNode.value', '"k1l"'); | |
| 171 shouldBe('attrNode.childNodes.length', '1'); | |
| 172 | |
| 173 debug("\n19. Changing text child with deleteData()."); | |
| 174 attrNode.firstChild.deleteData(0, 2); | |
| 175 shouldBe('document.getElementById("k1l")', 'null'); | |
| 176 shouldBe('document.getElementById("l")', 'document.body'); | |
| 177 shouldBe('document.body.id', '"l"'); | |
| 178 shouldBe('document.body.getAttribute("id")', '"l"'); | |
| 179 shouldBe('attrNode.value', '"l"'); | |
| 180 shouldBe('attrNode.childNodes.length', '1'); | |
| 181 | |
| 182 debug("\n20. Changing text child with replaceData()."); | |
| 183 attrNode.firstChild.replaceData(0, 1, "mn"); | |
| 184 shouldBe('document.getElementById("l")', 'null'); | |
| 185 shouldBe('document.getElementById("mn")', 'document.body'); | |
| 186 shouldBe('document.body.id', '"mn"'); | |
| 187 shouldBe('document.body.getAttribute("id")', '"mn"'); | |
| 188 shouldBe('attrNode.value', '"mn"'); | |
| 189 shouldBe('attrNode.childNodes.length', '1'); | |
| 190 | 57 |
| 191 debug("\n21. Remove an Attr node."); | 58 debug("\n21. Remove an Attr node."); |
| 192 document.body.removeAttributeNode(attrNode); | 59 document.body.removeAttributeNode(attrNode); |
| 193 shouldBe('document.body.id', '""'); | 60 shouldBe('document.body.id', '""'); |
| 194 shouldBe('document.getElementById("mn")', 'null'); | 61 shouldBe('document.getElementById("mn")', 'null'); |
| 195 shouldBe('document.body.getAttribute("id")', 'null'); | 62 shouldBe('document.body.getAttribute("id")', 'null'); |
| 196 shouldBe('document.body.getAttributeNode("id")', 'null'); | 63 shouldBe('document.body.getAttributeNode("id")', 'null'); |
| 197 | 64 |
| 198 debug("\n22. Add an Attr node."); | 65 debug("\n22. Add an Attr node."); |
| 199 var attrNode = document.createAttribute("id"); | 66 var attrNode = document.createAttribute("id"); |
| 200 attrNode.value = "o"; | 67 attrNode.value = "o"; |
| 201 document.body.setAttributeNode(attrNode); | 68 document.body.setAttributeNode(attrNode); |
| 202 shouldBe('document.getElementById("o")', 'document.body'); | 69 shouldBe('document.getElementById("o")', 'document.body'); |
| 203 shouldBe('document.body.id', '"o"'); | 70 shouldBe('document.body.id', '"o"'); |
| 204 shouldBe('document.body.getAttribute("id")', '"o"'); | 71 shouldBe('document.body.getAttribute("id")', '"o"'); |
| 205 | 72 |
| 206 debug("\n23. Add an Attr node over an existing one."); | 73 debug("\n23. Add an Attr node over an existing one."); |
| 207 var attrNode = document.createAttribute("id"); | 74 var attrNode = document.createAttribute("id"); |
| 208 attrNode.value = "p"; | 75 attrNode.value = "p"; |
| 209 document.body.setAttributeNode(attrNode); | 76 document.body.setAttributeNode(attrNode); |
| 210 shouldBe('document.getElementById("o")', 'null'); | 77 shouldBe('document.getElementById("o")', 'null'); |
| 211 shouldBe('document.getElementById("p")', 'document.body'); | 78 shouldBe('document.getElementById("p")', 'document.body'); |
| 212 shouldBe('document.body.id', '"p"'); | 79 shouldBe('document.body.id', '"p"'); |
| 213 shouldBe('document.body.getAttribute("id")', '"p"'); | 80 shouldBe('document.body.getAttribute("id")', '"p"'); |
| 214 </script> | 81 </script> |
| 215 </body> | 82 </body> |
| 216 </html> | 83 </html> |
| OLD | NEW |