<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();
    extendSelectionForwardByLineCommand();
    deleteCommand();
}

</script>

<title>Editing Test</title> 
</head> 
<body contenteditable="true" onload="runEditingTest()">
<div class="explanation">
Should see "XX" in a 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">
X
<div id="test" class="editing">
should not see this content<br>X
</div>
</div>
</div>

</body>
</html>
