<html> 
<head>
<style>
.editing { 
    border: 2px solid red; 
    font-size: 24px; 
}
.explanation { 
    border: 2px solid blue; 
    padding: 12px; 
    font-size: 24px; 
    margin-bottom: 24px;
}
.scenario { margin-bottom: 16px;}
.scenario:first-line { font-weight: bold; margin-bottom: 16px;}
.expected-results:first-line { font-weight: bold }
</style>
<script src="../editing.js"></script>
<script src="../../resources/dump-as-markup.js"></script>
<title>Editing Test</title> 
</head> 
<body>
<div class="explanation">
<div class="scenario">
Tests: 
<br>
Copying and pasting a whole line followed by a blank line could remove the blank line incorrectly, as in the case described in 
<a href="rdar://problem/3951178">&lt;rdar://problem/3951178&gt;</a> REGRESSION (Mail): blank line lost after pasting as quotation.
</div>
<div class="expected-results">
Expected Results:
<br>
Should see a blank line between "two" and "three"
</div>
</div>

<div contenteditable id="root" style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space;">
<div id="test" class="editing">
<div>
one
</div>
<div>
    <br class="khtml-block-placeholder">
</div>
<div>
    two
</div>
<div>
    <br class="khtml-block-placeholder">
</div>
<div>
    three
</div>
</div>
</div>
<script>

Markup.description(document.getElementsByClassName('explanation')[0].textContent);

function editingTest() {
    moveSelectionForwardByLineCommand();
    moveSelectionForwardByLineCommand();
    extendSelectionForwardByLineCommand();
    copyCommand();
    pasteCommand();
    Markup.dump('root');
}

runEditingTest();
</script>
</body>
</html>
