<html> 
<head>

<style>
.editing { 
    border: 2px solid red; 
    padding: 12px; 
    font-size: 24px; 
}
</style>
<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>

<script>

function editingTest() {
	moveSelectionForwardByLineCommand()
    for (i = 0; i < 3; i++)
        extendSelectionForwardByLineCommand();
    copyCommand();
    moveSelectionForwardByLineCommand();
    pasteCommand();
}

</script>

<title>Editing Test</title> 
</head> 
<body>
<div contenteditable id="root" class="editing">
<span id="test">Empty list item</span>
<p>
<ol>
    <li>I should be number 1.</li>
    <li></li>
    <li>I should be number 3.</li>
</ol>
</div>

<script>
runEditingTest();
</script>

</body>
</html>
