blob: 0623e04046f2fa4bdd7fc996061b1e2dde79b7c7 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<p>There was a bug in paste's smart replace whitespace handling. In some cases,
it used information gathered at the start of the selection being pasted into to
decide whether or not a space needed to be added to the end of the incoming
content.</p>
<p>A smart paste is performed into a selection starting in one block and ending
in another. Spaces should surround the pasted word.</p>
<div id="sample" contenteditable="true"><div id="foo">foo</div><div id="bar">x bar</div></div>
<div id="log"></div>
<script>
test(function() {
var selection = window.getSelection();
var sample = document.getElementById('sample');
if (!window.internals && !window.eventSender)
return;
internals.settings.setEditingBehavior('win');
var foo = document.getElementById('foo');
selection.selectAllChildren(foo);
var rects = window.getSelection().getRangeAt(0).getClientRects();
var x = rects[0].left;
var y = rects[0].top;
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.mouseDown();
eventSender.mouseUp();
document.execCommand('copy');
selection.collapse(foo.firstChild, 1);
selection.extend(document.getElementById('bar').firstChild, 1);
document.execCommand('paste');
assert_equals(sample.innerHTML, '<div id="foo">f foo bar</div>', 'innerHTML');
assert_true(selection.isCollapsed, 'isCollapsed');
assert_equals(selection.anchorNode, foo.firstChild, 'anchorNode');
assert_equals(selection.anchorOffset, 5, 'anchorOffset');
});
</script>