| <!DOCTYPE html> |
| <div contenteditable test='empty'> |
| <table contenteditable=false> |
| <tr><td></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with empty span'> |
| <table contenteditable=false> |
| <tr><td><span></span></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with editable empty span'> |
| <table contenteditable=false> |
| <tr><td><span contenteditable></span></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with editable non-empty span'> |
| <table contenteditable=false> |
| <tr><td><span contenteditable>Test 4.</span></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with nested editable non-empty spans'> |
| <table contenteditable=false> |
| <tr><td><span contenteditable><span>Test 5.</span></span></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with multiple editable non-empty spans'> |
| <table contenteditable=false> |
| <tr><td><span contenteditable>Test 6.</span><span contenteditable>More test 6.</span></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with nested table'> |
| <table contenteditable=false> |
| <tr><td><span contenteditable> |
| <table contenteditable=false> |
| <tr><td>Test 7.</td></tr> |
| </table> |
| </span></td></tr> |
| </table> |
| </div> |
| |
| <div contenteditable test='with nested table containing editable non-empty span'> |
| <table contenteditable=false> |
| <tr><td><span contenteditable> |
| <table contenteditable=false> |
| <tr><td><span contenteditable>Test 8.</span></td></tr> |
| </table> |
| </span></td></tr> |
| </table> |
| </div> |
| |
| <pre> |
| Tests that tables that have empty-rendered cells during deletion are deleted |
| correctly. Empty-rendered cells can be caused by empty cells, cells with |
| content that has no height, or cells with editable content such that the |
| content is deleted prior to the table's deletion. |
| </pre> |
| |
| <script> |
| var console = document.getElementsByTagName('pre')[0]; |
| |
| function runTestForContainer(container) { |
| container.focus(); |
| document.execCommand('SelectAll'); |
| document.execCommand('Delete'); |
| |
| var testDescription = container.getAttribute('test'); |
| var result = container.innerText === '\n' ? |
| 'PASS (' + testDescription + ')' : |
| 'FAIL (' + testDescription + '), should contain exactly one LF but was ' + container.innerText; |
| console.appendChild(document.createTextNode('\n' + result)); |
| |
| if (window.layoutTestController) |
| document.body.removeChild(container); |
| } |
| |
| Array.prototype.slice.call(document.getElementsByTagName('div')).forEach(runTestForContainer); |
| |
| if (window.layoutTestController) |
| layoutTestController.dumpAsText(); |
| </script> |