<p>This tests for a bug when creating a list from a table.  The table should be inside a list item.</p>
<div contenteditable="true" id="div"><table border="1"><tr><td>foo</td></tr></table></div>
<p id="console"></p>
<script>

if (window.testRunner)
    testRunner.dumpAsText();

function log(message) {
    var console = document.getElementById("console");
    var text = document.createTextNode(message);
    console.appendChild(text);
}

var div = document.getElementById("div");
div.focus();

document.execCommand("SelectAll");
document.execCommand("InsertUnorderedList");

log(div.innerHTML);

</script>
