| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description">This test checks that deletion does not leave unnecessary nested divs.</p> |
| <div id="console"></div> |
| <script> |
| |
| var sel = document.getSelection(); |
| var root = document.createElement("root"); |
| document.body.appendChild(root); |
| |
| |
| function createEditable(tagName, markup) { |
| var node = document.createElement(tagName); |
| node.contentEditable = true; |
| node.innerHTML = markup; |
| return node; |
| } |
| |
| function testDelete(tagName, originalMarkup, expected) { |
| var node = createEditable(tagName, originalMarkup); |
| root.appendChild(node); |
| |
| node.focus(); |
| document.execCommand("SelectAll", false); |
| document.execCommand("Delete", false); |
| |
| confirmedMarkup = node.innerHTML; |
| |
| shouldBe("confirmedMarkup", "'" + expected + "'"); |
| } |
| |
| testDelete("div", "Hello", "<br>"); |
| testDelete("div", "<div>Hello</div>", "<br>"); |
| testDelete("div", "<div id=\"mydiv\">Hello</div>", "<div id=\"mydiv\"><br></div>"); |
| testDelete("div", "<div><div>Hello</div></div>", "<br>"); |
| testDelete("div", "<div><b><div><i>Hello</i></div></b></div>", "<b><br></b>"); |
| testDelete("div", "<div><b><div style=\"border: solid red\"><i>Hello</i></div></b></div>", "<b><div style=\"border: solid red\"><br></div></b>"); |
| testDelete("div", "<div>Hello</div><div>world</div>", "<br>"); |
| testDelete("div", "<div>Hello</div><div>world</div>", "<br>"); |
| testDelete("div", "<div><p>Hello</p></div><p>world</p></div>", "<p><br></p>"); |
| |
| root.style.display = "none"; |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |