61 lines
2.5 KiB
HTML
61 lines
2.5 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
jsTestIsAsync = true;
|
|
|
|
description('Verify selecting text does not cause any scrolling.');
|
|
|
|
var originalPageYOffset;
|
|
var originalBodyScrollTop;
|
|
function test()
|
|
{
|
|
setTimeout(autoscrollTestPart1, 0);
|
|
}
|
|
function autoscrollTestPart1()
|
|
{
|
|
var ta = document.getElementById('ta');
|
|
ta.scrollIntoView();
|
|
|
|
originalPageYOffset = pageYOffset;
|
|
originalBodyScrollTop = document.scrollingElement.scrollTop;
|
|
|
|
if (window.eventSender) {
|
|
var taClientRect = ta.getBoundingClientRect();
|
|
var verticalOffset = taClientRect.top + (taClientRect.height / 2);
|
|
var h = ta.offsetTop - document.scrollingElement.scrollTop + 10;
|
|
eventSender.dragMode = false;
|
|
eventSender.mouseMoveTo(20, verticalOffset);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseMoveTo(20, verticalOffset);
|
|
eventSender.mouseMoveTo(100, verticalOffset);
|
|
}
|
|
setTimeout(autoscrollTestPart2, 100);
|
|
}
|
|
function autoscrollTestPart2()
|
|
{
|
|
if (window.eventSender)
|
|
eventSender.mouseUp();
|
|
|
|
shouldBeTrue('document.getSelection().toString().length > 1');
|
|
shouldBe('pageXOffset', '0');
|
|
shouldBe('pageYOffset', 'originalPageYOffset');
|
|
shouldBe('document.scrollingElement.scrollLeft', '0');
|
|
shouldBe('document.scrollingElement.scrollTop', 'originalBodyScrollTop');
|
|
shouldBe('pageYOffset', 'document.scrollingElement.scrollTop');
|
|
shouldBeTrue('pageYOffset > 2000');
|
|
|
|
finishJSTest();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="test()">
|
|
<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>
|
|
</body>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</html>
|