Chromium Code Reviews| 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); |
| +} |