<html>
<body contenteditable="true">
<br>
<ol><li id="test1" style="display: inline">one</li><li>two</li><li>three</li></ol>
<ul><li id="test2" style="display: inline">one</li><li>two</li><li>three</li></ul>
<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 s = window.getSelection();
var p = document.getElementById("test1");
s.collapse(p, 0);
document.execCommand("Outdent", false, 0);
log("Test1 passed: no crash ");
var p = document.getElementById("test2");
s.collapse(p, 0);
document.execCommand("Outdent", false, 0);
log("Test2 passed: no crash");

</script>
</body>
</html>
