<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() {
    for (i = 0; i < 76; i++)
        moveSelectionForwardByCharacterCommand();
    for (i = 0; i < 2; i++)
        extendSelectionForwardByCharacterCommand();
    copyCommand();
    pasteCommand();
    pasteCommand();
}

</script>

<title>Editing Test</title> 
</head> 
<body contenteditable id="root">

<div class="editing" id="test">Omitted, all the voyage of their life,<div class="editing">Is bound in shallows and in miseries.</div>Upon such a full sea are we now afloat,</div>
 
<script>
runEditingTest();
</script>

</body>
</html>
