88 lines
2.5 KiB
HTML
88 lines
2.5 KiB
HTML
<!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>
|