<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() {
    underlineCommand();
    for (i = 0; i < 6; i++)
        typeCharacterCommand();
    typeCharacterCommand(' ');
    for (i = 0; i < 6; i++)
        typeCharacterCommand();
    insertParagraphCommand();
    typeCharacterCommand(' ');
    for (i = 0; i < 6; i++)
        typeCharacterCommand();
    typeCharacterCommand(' ');
    for (i = 0; i < 6; i++)
        typeCharacterCommand();
    moveSelectionBackwardByWordCommand();
    moveSelectionBackwardByWordCommand();
    moveSelectionBackwardByWordCommand();
    extendSelectionForwardByWordCommand();
    extendSelectionForwardByWordCommand();
    underlineCommand();
}

</script>

<title>Editing Test</title> 
</head> 
<body>
<div contenteditable id="root" class="editing">
<span id="test"></span>
</div>

<script>
runDumpAsTextEditingTest();
</script>

</body>
</html>
