Author: hdu Date: Tue Sep 3 10:51:04 2013 New Revision: 1519643 URL: http://svn.apache.org/r1519643 Log: #i123172# speedup autotest mouse dragging
many GUI autotests drag the mouse across the screen. Moving the mouse pointer one-by-one is inefficient and takes a long time. Speeding this up gets rid of a lot of dead time in the autotests. Modified: openoffice/trunk/test/testcommon/source/org/openoffice/test/vcl/Tester.java Modified: openoffice/trunk/test/testcommon/source/org/openoffice/test/vcl/Tester.java URL: http://svn.apache.org/viewvc/openoffice/trunk/test/testcommon/source/org/openoffice/test/vcl/Tester.java?rev=1519643&r1=1519642&r2=1519643&view=diff ============================================================================== --- openoffice/trunk/test/testcommon/source/org/openoffice/test/vcl/Tester.java (original) +++ openoffice/trunk/test/testcommon/source/org/openoffice/test/vcl/Tester.java Tue Sep 3 10:51:04 2013 @@ -102,13 +102,23 @@ public class Tester { robot.mousePress(InputEvent.BUTTON1_MASK); int x = fromX; int y = fromY; + // get the direction int dx = toX > fromX ? 1 : -1; int dy = toY > fromY ? 1 : -1; + // get the step sizes + final int stepTarget = 10; + int sx = (toX - fromX) / stepTarget; + int sy = (toY - fromY) / stepTarget; + if( sx == 0) sx = dx; + if( sy == 0) sy = dy; while (x != toX || y != toY) { - if (x != toX) - x = x + dx; - if (y != toY) - y = y + dy; + x += sx; + y += sy; + // limit drag pos to target pos + if( ((x - toX) * dx) > 0) + x = toX; + if( ((y - toY) * dy) > 0) + y = toY; robot.mouseMove(x, y); } robot.mouseRelease(InputEvent.BUTTON1_MASK);