| <!doctype html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../assert_selection.js"></script> |
| <script> |
| // Verifies the selection behavior on undoing a text deletion. |
| function undoTest(behavior) { |
| if (window.internals) |
| internals.settings.setEditingBehavior(behavior); |
| test(() => assert_selection( |
| [ |
| '<div contenteditable>', |
| 'This wo<b>rd| </b>should be selected only on mac.', |
| '</div>' |
| ].join(''), |
| selection => { |
| for (let i = 0; i < 4; ++i) |
| selection.document.execCommand('delete'); |
| selection.document.execCommand('undo'); |
| }, |
| [ |
| '<div contenteditable>', |
| behavior === 'mac' |
| ? 'This |wo<b>rd^ </b>should be selected only on mac.' |
| : 'This wo<b>rd| </b>should be selected only on mac.', |
| '</div>', |
| ].join('')), |
| `${behavior}: backward delete`); |
| |
| test(() => assert_selection( |
| [ |
| '<div contenteditable>', |
| 'This |wo<b>rd </b>should be selected only on mac.', |
| '</div>' |
| ].join(''), |
| selection => { |
| for (let i = 0; i < 4; ++i) |
| selection.document.execCommand('forwardDelete'); |
| selection.document.execCommand('undo'); |
| }, |
| [ |
| '<div contenteditable>', |
| behavior === 'mac' |
| ? 'This ^wo<b>rd| </b>should be selected only on mac.' |
| : 'This |wo<b>rd </b>should be selected only on mac.', |
| '</div>', |
| ].join('')), |
| `${behavior}: forward delete`); |
| |
| test(() => assert_selection( |
| [ |
| '<div contenteditable>', |
| 'This wo|<b>rd </b>should be selected only on mac.', |
| '</div>' |
| ].join(''), |
| selection => { |
| for (let i = 0; i < 2; ++i) |
| selection.document.execCommand('delete'); |
| for (let i = 0; i < 2; ++i) |
| selection.document.execCommand('forwardDelete'); |
| selection.document.execCommand('undo'); |
| }, |
| [ |
| '<div contenteditable>', |
| behavior === 'mac' |
| ? 'This ^wo<b>rd| </b>should be selected only on mac.' |
| : 'This wo|<b>rd </b>should be selected only on mac.', |
| '</div>', |
| ].join('')), |
| `${behavior}: backward and forward delete`); |
| } |
| for (let behavior of ['android', 'mac', 'unix', 'win']) |
| undoTest(behavior); |
| </script> |