blob: 1d23f1621a9d74a61e35a29d6f5e512c27840eb2 [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
function cutAndPaste(selection)
{
selection.document.execCommand('copy');
selection.document.execCommand('delete');
selection.document.execCommand('pasteAndMatchStyle');
}
test(() => {
assert_not_equals(window.internals, undefined,
'This test requires window.internals to access clipboard');
assert_selection(
'<div contenteditable>.^ foo|</div>',
cutAndPaste,
'<div contenteditable>.\u{00A0}foo|</div>',
'Paste with leading space.');
assert_selection(
'<div contenteditable>^foo |.</div>',
cutAndPaste,
'<div contenteditable>foo\u{00A0}|.</div>',
'Paste with trailing space.');
assert_selection(
'<div contenteditable>|x y^</div>',
cutAndPaste,
'<div contenteditable>x y|</div>',
'One space');
assert_selection(
'<div contenteditable>|x\u{00A0} y^</div>',
cutAndPaste,
'<div contenteditable>x\u{00A0} y|</div>',
'Two spaces');
assert_selection(
'<div contenteditable>|x\u{00A0} \u{00A0}y^</div>',
cutAndPaste,
'<div contenteditable>x\u{00A0} \u{00A0}y|</div>',
'Three spaces');
assert_selection(
'<div contenteditable>|x\u{00A0} \u{00A0} y^</div>',
cutAndPaste,
'<div contenteditable>x\u{00A0} \u{00A0} y|</div>',
'Four spaces');
}, 'paste with spaces:');
</script>