blob: 7893a83b3978c094d90959a02d35d2e12fa3338c [file] [log] [blame]
<!doctype HTML>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
test(() => assert_selection(
'<div contenteditable><p>A|B</p></div>',
'insertText \ ',
'<div contenteditable><p>A |B</p></div>'),
'insert a plain space in the middle of text node');
test(() => assert_selection(
'<div contenteditable><p id="para"></p></div>',
selection => {
var para = selection.document.getElementById('para');
para.appendChild(selection.document.createTextNode('A'));
para.appendChild(selection.document.createTextNode('B'));
selection.collapse(para.firstChild, 1);
selection.document.execCommand('insertText', false, ' ');
},
'<div contenteditable><p id="para">A |B</p></div>'),
'insert a plain space between two inserted text nodes');
test(() => assert_selection(
'<div contenteditable><p id="para"></p></div>',
selection => {
var para = selection.document.getElementById('para');
para.appendChild(selection.document.createTextNode('A'));
para.appendChild(selection.document.createTextNode(''));
selection.collapse(para.firstChild, 1);
selection.document.execCommand('insertText', false, ' ');
},
'<div contenteditable><p id="para">A\u00A0|</p></div>'),
'Insert a &nbsp; instead of plain space when it is inserted before the empty text node');
test(() => assert_selection(
'<div contenteditable><p id="para"></p></div>',
selection => {
var para = selection.document.getElementById('para');
para.appendChild(selection.document.createTextNode('A'));
para.appendChild(selection.document.createTextNode(' B'));
selection.collapse(para.firstChild, 1);
selection.document.execCommand('insertText', false, ' ');
},
'<div contenteditable><p id="para">A\u00A0| B</p></div>'),
'Insert a &nbsp; instead of plain space when it is inserted before the text node that has a leading plain space');
test(() => assert_selection(
'<div contenteditable>|<br> </div>',
selection => {
selection.document.execCommand('insertText', false, ' ');
selection.document.execCommand('insertText', false, ' ');
selection.document.execCommand('insertText', false, ' ');
},
'<div contenteditable>\u00A0 \u00A0| </div>'),
'Insert spaces into the editable <div> that only has <br> and space as child');
test(() => assert_selection(
'<div contenteditable>|<br>\u000A</div>',
selection => {
selection.document.execCommand('insertText', false, ' ');
selection.document.execCommand('insertText', false, ' ');
selection.document.execCommand('insertText', false, ' ');
},
'<div contenteditable>\u00A0 \u00A0|\u000A</div>'),
'Insert spaces into the editable <div> that only has <br> and enter as child');
</script>