<p>This tests for a bug where content before a list made into a list item would be placed at the end of the list instead of the beginning. The list items below should contain "One", "Two" and "Three", in that order.</p>
<div id="div" contenteditable="true"><div>One</div><ul><li>Two</li><li>Three</li></ul></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");
var selection = window.getSelection();
div.focus();
selection.collapse(div, 0);
document.execCommand("InsertUnorderedList");

log(div.innerHTML);

</script>
