| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| description("Ensure that double clicking does not expand selection across new line boundaries.") |
| |
| function doubleClickOnElement(el) |
| { |
| var rect = el.getBoundingClientRect(); |
| var x = rect.left + rect.width / 2; |
| var y = rect.top + rect.height / 2; |
| doubleClickAt(x, y); |
| } |
| |
| function doubleClickAt(x, y) |
| { |
| if (window.eventSender) { |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| } |
| } |
| |
| function selectionShouldBe(s) |
| { |
| shouldBeEqualToString('String(window.getSelection())', s); |
| } |
| |
| var div = document.createElement('div'); |
| document.body.appendChild(div); |
| |
| // DIV with br |
| div.innerHTML = 'm<span>o</span>re <br> <br>text'; |
| doubleClickOnElement(div.firstElementChild); |
| selectionShouldBe('more'); |
| |
| // DIV with white-space pre |
| div.style.whiteSpace = 'pre'; |
| div.innerHTML = 'm<span>o</span>re \n \ntext'; |
| doubleClickOnElement(div.firstElementChild); |
| selectionShouldBe('more'); |
| |
| document.body.removeChild(div); |
| |
| // Textarea -- we cannot really get the position of the word we want so we use |
| // a large font in a textarea and double click in the upper left corner |
| |
| var textarea = document.createElement('textarea'); |
| textarea.style.border = 0; |
| textarea.style.padding = 0; |
| textarea.style.fontSize = '30px'; |
| document.body.appendChild(textarea); |
| |
| var rect = textarea.getBoundingClientRect(); |
| var x = rect.left + 10; |
| var y = rect.top + 10; |
| |
| textarea.value = 'more \n \ntext'; |
| doubleClickAt(x, y); |
| selectionShouldBe('more'); |
| |
| document.body.removeChild(textarea); |
| |
| var successfullyParsed = true; |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |