<script>
function runTest(num)
{
    sel = window.getSelection();
    start = document.getElementById("test" + num + "start");
    end = document.getElementById("test" + num + "end");
    sel.setBaseAndExtent(start, 0, start, 0);
    document.execCommand("Delete");
}
</script>
<p><a href="rdar://problem/5565461"> Radar 5565461</a>
<br>
<a href="https://bugs.webkit.org/show_bug.cgi?id=32526">Bug 32526</a>
</p>
<p>Executing delete command when the selection is on a cell of a table shouldn't remove the entire row.
</p>
<div contenteditable="true">
<table border="1" cellspacing="0"><tr><td width="50" height="25pt" id="test1start"></td></tr><tr><td width="50" height="25pt"></td></tr></table>
</div>

<script>
if (window.testRunner)
    testRunner.dumpAsText();

runTest(1);
</script>

<p>Executing delete command when the selection is on the last cell of a table shouldn't remove the entire table.
</p>
<div contenteditable="true">
<table border="1" cellspacing="0"><tr><td width="50" height="25pt"></td></tr><tr><td width="50" height="25pt" id="test2start"></td></tr></table>
</div>

<script>runTest(2);</script>
