| <!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.testRunner) | |
| document.body.removeChild(container); | |
| } | |
| Array.prototype.slice.call(document.getElementsByTagName('div')).forEach(runTestForContainer); | |
| if (window.testRunner) | |
| testRunner.dumpAsText(); | |
| </script> |