| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../assert_selection.js"></script> |
| <script> |
| const kStyle = ` |
| <style> |
| div.test { |
| font: 10px/10px Ahem; |
| width: 30px; |
| word-break: break-all; |
| padding-right: 10px; |
| } |
| </style>`; |
| |
| // Regression tests for https://crbug.com/919146 |
| |
| // Mouse down at the end of the first line. Without releasing, slightly move |
| // the mouse around. Caret shouldn't be moved to the second line. |
| selection_test( |
| `${kStyle}<div class="test" contenteditable>foobar</div>`, |
| selection => { |
| assert_own_property(window, 'eventSender'); |
| assert_own_property(window, 'internals'); |
| |
| const div = selection.document.querySelector('div.test'); |
| const x = selection.computeLeft(div) + 35; |
| const y = selection.computeTop(div) + 5; |
| eventSender.mouseMoveTo(x - 3, y); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(x + 3, y); |
| eventSender.mouseUp(); |
| |
| assert_equals(internals.textAffinity, 'Upstream'); |
| }, |
| `${kStyle}<div class="test" contenteditable>foo|bar</div>`, |
| 'Drag with upstream caret'); |
| |
| // Set upstream caret at the end of the first line. Then shift+click around the |
| // caret. Caret should remain upstream at the end of the first line. |
| selection_test( |
| `${kStyle}<div class="test" contenteditable>foobar</div>`, |
| selection => { |
| assert_own_property(window, 'eventSender'); |
| assert_own_property(window, 'internals'); |
| |
| const div = selection.document.querySelector('div.test'); |
| const x = selection.computeLeft(div) + 35; |
| const y = selection.computeTop(div) + 5; |
| eventSender.mouseMoveTo(x - 3, y); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| |
| eventSender.mouseMoveTo(x + 3, y); |
| eventSender.mouseDown(0, ['shiftKey']); |
| eventSender.mouseUp(0, ['shiftKey']); |
| |
| assert_equals(internals.textAffinity, 'Upstream'); |
| }, |
| `${kStyle}<div class="test" contenteditable>foo|bar</div>`, |
| 'Shift+Click around upstream caret'); |
| </script> |