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

</script>

<title>Editing Test</title> 
</head> 
<body>
<p>Test that inserting a line break will preserve bolding. All of the text below should be bold.</p>
<div contenteditable id="root" class="editing">
<span id="test">test</span>
</div>

<script>
runDumpAsTextEditingTest();
</script>

</body>
</html>
