| Index: LayoutTests/fast/events/resources/panScroll.js
|
| diff --git a/LayoutTests/fast/events/resources/panScroll.js b/LayoutTests/fast/events/resources/panScroll.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..090c6a39170469a394ed903b93d59ae495b0a17f
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/events/resources/panScroll.js
|
| @@ -0,0 +1,82 @@
|
| +var autoscrollInterval = 50;
|
| +var middleButton = 1;
|
| +var panScrollRadius = 15; // from WebCore/platform/ScrollView.h
|
| +
|
| +window.jsTestIsAsync = true;
|
| +
|
| +function $(id)
|
| +{
|
| + return document.getElementById(id);
|
| +}
|
| +
|
| +function testPanScroll(param)
|
| +{
|
| + function finishTest()
|
| + {
|
| + if ($('container'))
|
| + $('container').innerHTML = '';
|
| + if (param.finishTest)
|
| + param.finishTest();
|
| + if (window.finishJSTest) {
|
| + finishJSTest();
|
| + return;
|
| + }
|
| + if (window.testRunner)
|
| + testRunner.notifyDone();
|
| + }
|
| +
|
| + var scrollable = param.scrollable;
|
| + var scrolledObject = param.scrolledObject || scrollable;
|
| +
|
| + if (!scrollable.innerHTML) {
|
| + for (var i = 0; i < 100; ++i) {
|
| + var line = document.createElement('div');
|
| + line.innerHTML = "line " + i;
|
| + scrollable.appendChild(line);
|
| + }
|
| + }
|
| +
|
| + var noModeScroll = false;
|
| + var scrolled = false;
|
| +
|
| + scrolledObject.onscroll = function() {
|
| + if (noModeScroll) {
|
| + testFailed('still autoscroll');
|
| + finishTest();
|
| + return;
|
| + }
|
| +
|
| + if (scrolled)
|
| + return;
|
| + scrolled = true;
|
| + testPassed('autoscroll started');
|
| +
|
| + if (window.eventSender) {
|
| + if (param.clickOrDrag == 'click')
|
| + eventSender.mouseDown(middleButton);
|
| + eventSender.mouseUp(middleButton);
|
| + }
|
| + };
|
| +
|
| + scrollable.ownerDocument.onmouseup = function(e) {
|
| + if (!scrolled || e.button != middleButton)
|
| + return;
|
| + noMoreScroll = true;
|
| + window.setTimeout(function() {
|
| + testPassed('autoscroll stopped');
|
| + finishTest();
|
| + }, autoscrollInterval * 2);
|
| + };
|
| +
|
| + if (!window.eventSender)
|
| + return;
|
| + var startX = param.startX || scrollable.offsetLeft + 5;
|
| + var startY = param.startY || scrollable.offsetTop + 5;
|
| + var endX = param.endX || scrollable.offsetLeft + 5;
|
| + var endY = param.endY || scrollable.offsetTop + panScrollRadius + 6;
|
| + eventSender.mouseMoveTo(startX, startY);
|
| + eventSender.mouseDown(middleButton);
|
| + if (param.clickOrDrag == 'click')
|
| + eventSender.mouseUp(middleButton);
|
| + eventSender.mouseMoveTo(endX, endY);
|
| +}
|
|
|