| <!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 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 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> |