| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| let originalScrollOffset; |
| let t = async_test("Scroll Offset Hasn't Changed"); |
| |
| function test() |
| { |
| setTimeout(autoscrollTestPart1, 0); |
| } |
| function autoscrollTestPart1() |
| { |
| var ta = document.getElementById('ta'); |
| if (window.eventSender) { |
| ta.scrollIntoView(); |
| var h = ta.offsetTop - document.scrollingElement.scrollTop + 10; |
| originalScrollOffset = window.scrollY; |
| eventSender.dragMode = false; |
| eventSender.mouseMoveTo(20, h); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(20, h); |
| eventSender.mouseMoveTo(100, h); |
| } |
| setTimeout(autoscrollTestPart2, 100); |
| } |
| function autoscrollTestPart2() |
| { |
| if (window.eventSender) |
| eventSender.mouseUp(); |
| t.step(() => { |
| assert_not_equals(window.getSelection().toString(), ""); |
| assert_equals(window.scrollY, originalScrollOffset); |
| }); |
| t.done(); |
| } |
| function log(msg) |
| { |
| var res = document.getElementById('res'); |
| res.innerHTML = res.innerHTML + msg + "<br>"; |
| } |
| |
| addEventListener('load', test); |
| </script> |
| <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=12331">bug 12331</a>.</p> |
| <p>To test manually, scroll down until you find the input element. Select some text. If the bug occurs, the page will scroll back up to the top.</p> |
| <div style="height:3000px"></div> |
| <input id="ta" value="select some of this text"></input> |
| <p>If the bug does not occur, you'll be left down here at the bottom.</p> |