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..341e892c276fb7ef3fbdff48eff921eb54507555 |
--- /dev/null |
+++ b/LayoutTests/fast/events/resources/panScroll.js |
@@ -0,0 +1,82 @@ |
+var AUTOSCROLL_INTERVAL = 50; |
+var MIDDLE_BUTTON = 1; |
+var PAN_SCROLL_RADIUS = 15; // from WebCore/platform/ScrollView.h |
jamesr
2013/05/31 18:32:08
js style generally follows blink style andwe don't
|
+ |
+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(MIDDLE_BUTTON); |
+ eventSender.mouseUp(MIDDLE_BUTTON); |
+ } |
+ }; |
+ |
+ scrollable.ownerDocument.onmouseup = function(e) { |
+ if (!scrolled || e.button != MIDDLE_BUTTON) |
+ return; |
+ noMoreScroll = true; |
+ window.setTimeout(function() { |
+ testPassed('autoscroll stopped'); |
+ finishTest(); |
+ }, AUTOSCROLL_INTERVAL * 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 + PAN_SCROLL_RADIUS + 6; |
+ eventSender.mouseMoveTo(startX, startY); |
+ eventSender.mouseDown(MIDDLE_BUTTON); |
+ if (param.clickOrDrag == 'click') |
+ eventSender.mouseUp(MIDDLE_BUTTON); |
+ eventSender.mouseMoveTo(endX, endY); |
+} |