Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: LayoutTests/fast/events/resources/panScroll.js

Issue 15653007: Introduce panScrollTest() for simplify pan-scroll test scripts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 2013-06-03T12:33 Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « LayoutTests/fast/events/panScroll-nested-divs-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+}
« no previous file with comments | « LayoutTests/fast/events/panScroll-nested-divs-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698