<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 < 3; i++)
        typeCharacterCommand();
    boldCommand();
    for (i = 0; i < 3; i++)
        typeCharacterCommand();
    italicCommand();
    for (i = 0; i < 3; i++)
        typeCharacterCommand();
    boldCommand();
    for (i = 0; i < 3; i++)
        typeCharacterCommand();
    italicCommand();
    for (i = 0; i < 3; i++)
        typeCharacterCommand();
}

</script>

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

<script>
runDumpAsTextEditingTest(true);
</script>

</body>
</html>
