<html> 
<head>

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

<script>

function editingTest() {
    moveSelectionForwardByCharacterCommand();
    extendSelectionForwardByLineCommand();
    extendSelectionForwardByCharacterCommand();
    deleteCommand();
}

</script>

<title>Editing Test</title> 
</head> 
<body contenteditable="true">
<div class="explanation">
Should see "Test OK" in top red box, followed by "...more text", in its own red box.
</div>

<div id="root" style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space;">
<div id="test" class="editing">
T
<div id="test" class="editing">
xest OK<br>...more text
</div>
</div>
</div>

<script>
runEditingTest();
</script>

</body>
</html>
