| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../assert_selection.js"></script> |
| <script> |
| // This layout tests demonstartes the undo command. |
| for (const platform of ['mac', 'win', 'unix', 'android']) { |
| selection_test( |
| '<div contenteditable>abc|</div>', |
| selection => { |
| assert_not_equals(window.internals, undefined, |
| 'this test requires internals'); |
| |
| internals.settings.setEditingBehavior(platform); |
| |
| const document = selection.document; |
| document.execCommand('delete'); |
| document.execCommand('insertText', false, 'x'); |
| document.execCommand('delete'); |
| document.execCommand('undo'); |
| }, |
| [ |
| '<div contenteditable>', |
| platform === 'mac' |
| ? 'ab|x^' |
| : 'abx|', |
| '</div>' |
| ], |
| `${platform}: undo on delete insert delete`); |
| |
| selection_test( |
| '<div contenteditable>abx|</div>', |
| selection => { |
| assert_not_equals(window.internals, undefined, |
| 'this test requires internals'); |
| |
| internals.settings.setEditingBehavior(platform); |
| |
| const document = selection.document; |
| document.execCommand('insertText', false, 'y'); |
| document.execCommand('delete'); |
| document.execCommand('undo'); |
| }, |
| [ |
| '<div contenteditable>', |
| platform === 'mac' |
| ? 'abx|y^' |
| : 'abxy|', |
| '</div>' |
| ], |
| `${platform}: undo on delete insert delete.`); |
| } |
| </script> |