<!DOCTYPE html>
<html> 
<head>
<style>
.editing { 
    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>
</head> 
<body>
<div class="explanation">
<div class="scenario">
Tests: 
<br>
Smart paste when pasting a paragraph between two paragraphs in a pre element.
</div>
<div class="expected-results">
Expected Results:
<br>
A space should be added between the preexisting word and the word that's pasted. It should like this:
<BR>
Test paragraph.
<BR>
<BR>
Test paragraph.
<BR>
<BR>
Last test paragraph.
</div>
</div>

<pre contenteditable id="root" class="editing" style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space;">
<span id="test">Test</span> paragraph.
<br>Last test paragraph.
</pre>
<script src="../editing.js"></script>
<script src="../../resources/ui-helper.js"></script>
<script>

async function editingTest() {
    internals.settings.setEditingBehavior("ios");
    await UIHelper.selectWordByDoubleTapOrClick(document.getElementById('test'));
    extendSelectionForwardByLineBoundaryCommand();
    copyCommand();
    moveSelectionForwardByCharacterCommand();
    moveSelectionForwardByCharacterCommand();
    pasteCommand();
}

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