<html> 
<head>

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

<script>

function editingTest() {
    for (i = 0; i < 5; i++)
        moveSelectionForwardByLineCommand();
    extendSelectionForwardByLineCommand();
    cutCommand();
    for (i = 0; i < 5; i++)
        moveSelectionBackwardByLineCommand();
    moveSelectionForwardByLineCommand();
    pasteCommand();
}

</script>

<title>Editing Test</title> 
</head> 
<body contenteditable style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space;">

Fixes this bug:
<a href="rdar://problem/3941203">&lt;rdar://problem/3927554&gt;</a> REGRESSION (Mail): Paste inserts content in wrong place

<br>***TEST*** line should be second, following the first line.

<div style="height: 12px"></div>

<div id="root">
<div id="test" class="editing"><p>Should be first line of document.<br><br>Another line.</p><p></p>&nbsp;<p></p>&nbsp;<p>***TEST***</p><p><br></p></div>
</div>
 
<script>
runEditingTest();
</script>

</body>
</html>
