<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><li>three</li></ol></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>
