<p>This tests for a bug where outdenting a list item twice would incorrectly move it above the list it was outdented from. Below you should see 'two' in order with 'one' and 'three' and it should not be in a list.</p>
<div contenteditable="true">
<ol>
    <li>one</li>
    <li id="insert"><ol><li id="outdent">two</li></ol></li>
    <li>three</li>
</ol>
</div>

<script>
if (window.testRunner)
    window.testRunner.dumpAsText();
outdent = document.getElementById("outdent");
window.getSelection().setPosition(outdent, 0);
document.execCommand("Outdent");
document.execCommand("Outdent");
</script>
