| <!DOCTYPE html> |
| <script src="../../resources/js-test.js"></script> |
| <div id="container"> |
| For manual testing, |
| <ol> |
| <li>Double click at "hello" or "world".</li> |
| <li>You see selection where you double clicked.</li> |
| </ol> |
| <div id="sample" contenteditable>hello world</div> |
| </div> |
| <script> |
| description('Double click to select word should work with DOM modification by click event handler.'); |
| var sample = document.getElementById('sample'); |
| var selection = getSelection(); |
| sample.addEventListener('click', function() { |
| if (!selection.rangeCount) |
| return; |
| selection.getRangeAt(0).insertNode(document.createElement('span')); |
| }); |
| if (window.eventSender) { |
| eventSender.mouseMoveTo(sample.offsetLeft + 10, sample.offsetTop + 1); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| // To make this platform independent, we use |trim()| for checking selected |
| // word, e.g. Windows selects word with a trailing space, but Mac selects |
| // only word. |
| shouldBeEqualToString('selection.toString().trim()', 'hello'); |
| document.getElementById('container').outerHTML = ''; |
| } |
| </script> |