javauis/eswt_qt/eswtuitestutils/javasrc/com/nokia/mj/impl/uitestutils/UITestUtils.java
changeset 35 85266cc22c7f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_qt/eswtuitestutils/javasrc/com/nokia/mj/impl/uitestutils/UITestUtils.java	Fri Jun 11 13:33:44 2010 +0300
@@ -0,0 +1,187 @@
+// UITestUtils.java // // //
+
+package com.nokia.mj.impl.uitestutils;
+
+import java.lang.String;
+import org.eclipse.swt.internal.qt.OS;
+
+public class UITestUtils {
+
+    private static final int RES_CHANGE_DEFAULT_DELAY = 5000;
+
+    public UITestUtils() {
+        // Always disable screensaver when running tests.
+        S60Utils.S60DisableScreensaver(); 	
+    }
+
+    /** Init test and s. shot directory, make sure you use slashes to start and
+    end it dir name */
+    public void startTest(String screenShotDir) {
+    }
+
+    /** Ends the test, prints a summary, etc */
+    public void endTest(boolean passed, String msg) {
+    }
+
+    /** Log a message */
+    public void log(String msg) {
+    }
+
+    /** Logs one of the two messages and either PASSED or FAILED according to
+    value of    passed parameter */
+    public void log(boolean passed, String msgPassed, String msgFailed) {
+    }
+
+    /** Sends a key event to the midlet using the specified key and scan code */
+    public void triggerKeyPressEvent(Key key) {
+        int keycode = key.scanCode;
+        int modifiers = key.modifiers;
+        if(S60Utils.S60SendKeyToFocusWindow(keycode, modifiers, S60Utils.PRESS) != 0)
+            throw new RuntimeException("Emulating key press failed");
+        if(S60Utils.S60SendKeyToFocusWindow(keycode, modifiers, S60Utils.RELEASE) != 0)
+            throw new RuntimeException("Emulating key release failed");
+    }
+
+    /** Sends a key down event to the application using the specified key */
+    public void triggerKeyDownEvent(Key key) {
+        int keycode = key.scanCode;
+        int modifiers = key.modifiers;
+        if(S60Utils.S60SendKeyToFocusWindow(keycode, modifiers, S60Utils.PRESS) != 0)
+            throw new RuntimeException("Emulating key press failed");
+    }
+
+    /** Sends a key up event to the application using the specified key */
+    public void triggerKeyUpEvent(Key key) {
+        int keycode = key.scanCode;
+        int modifiers = key.modifiers;
+        if(S60Utils.S60SendKeyToFocusWindow(keycode, modifiers, S60Utils.RELEASE) != 0)
+            throw new RuntimeException("Emulating key release failed");
+    }
+
+
+    /** Triggers key repeat events using the specified key and scan code.
+        Calling this method will trigger the following events to Canvas/CustomItem:
+            1. keyPressed event
+            2. keyRepeated events, the number of events is indicated by count parameter
+            3. keyReleased events
+
+        NOTE 1: This method returns right after triggering the keyPressed event. There should be enough delay
+        after calling this so that all repeat events can be handled before the test result is checked.
+        The delay before triggering first repeat event is 0.6 seconds and between sequential repeat
+        events 0.2 seconds.
+
+        NOTE 2: For triggering media key repeat events triggerMediaKeyRepeatEvents()
+        must be used.
+    */
+    public int triggerKeyRepeatEvents(Key key, int count) {
+        return 0;
+    }
+
+    /** This method must be used when triggering repeat events for media keys.
+        pressedTimeInMillis defines how long a key is kept pressed down.
+
+        NOTE 1: This method returns right after triggering the keyDown event. There should be enough delay
+         (> pressedTimeInMillis) after calling this so that all repeat events and key up can be handled before
+         the test result is checked.
+    */
+    public int triggerMediaKeyRepeatEvents(Key key, int pressedTimeInMillis) {
+        return 0;
+    }
+
+    /** Sends pointer down event to the midlet */
+    public void triggerPointerDownEvent(int x, int y) {
+        // Setting double click interval to 0 disables double clicks, making it possible
+        // to click around in the test cases quickly without causing unwanted double click
+        // events 
+        OS.QApplication_setDoubleClickInterval(0); 	
+        if(S60Utils.S60SendPointerEvent(x, y, S60Utils.BUTTON1, S60Utils.PRESS) != 0)
+            throw new RuntimeException("Emulating pointer down failed");
+    }
+
+    /** Sends pointer up event to the midlet */
+    public void triggerPointerUpEvent(int x, int y) {
+        if(S60Utils.S60SendPointerEvent(x, y, S60Utils.BUTTON1, S60Utils.RELEASE) != 0)
+            throw new RuntimeException("Emulating pointer up failed");
+    }
+
+    /** Sends pointer drag event to the midlet */
+    public void triggerPointerDragEvent(int x, int y) {
+        if(S60Utils.S60SendPointerMoveEvent(x, y, S60Utils.BUTTON1) != 0 ) {
+            throw new RuntimeException("Emulating pointer move failed");
+        }
+    }
+
+    /**
+     * Sends a pointer event to open up a context menu. E.g. long-press, right-click
+     * or such depending on the platform.
+     */
+    public void triggerContextPointerEvent(int x, int y) {
+        if(S60Utils.S60SendPointerEvent(x, y, S60Utils.BUTTON3, S60Utils.PRESS) != 0)
+            throw new RuntimeException("Emulating pointer down failed");
+        if(S60Utils.S60SendPointerEvent(x, y, S60Utils.BUTTON3, S60Utils.RELEASE) != 0)
+            throw new RuntimeException("Emulating pointer up failed");
+    }
+
+    /** Takes a screen shot and saves it into a .png file. Returns true if
+    reference screen shot exists and is identical to the new screen shot*/
+    public boolean getScreenShot(String screenShotName) {
+        return true;
+    }
+
+    /** Takes a screen shot and saves it into a .png file. Returns true if
+    reference screen shot exists and compared area is identical in the reference and new screen shot.
+    areaToCompare and displayableType define the area that is compared. See also SpedeRunner.java.*/
+    public boolean getScreenShot(String screenShotName, int areaToCompare, int displayableType) {
+        return true;
+    }
+
+    /** Takes a screen shot and saves it into a .png file. Returns true if
+    reference screen shot exists and compared area is identical in the reference and new screen shot.
+    Four integer parameters define the rectangle area for screen shot comparison. */
+    public boolean getScreenShot(String screenShotName, int topLeftX, int topLeftY,
+                                                        int bottomRightX, int bottomRightY) {
+        return true;
+    }
+
+    public void dispose() {
+    }
+
+    /** Enable or disable QWERTY input */
+    public void changeQwertyInput(boolean aOn) {
+    }
+
+    public int switchResolution() {
+        return switchResolution(1);
+    }
+
+    /** Change the screen resolution - works only on the emulator */
+    public int switchResolution(int numTimes) {
+        return 0;
+    }
+
+    /** Change the screen resolution - works only on the emulator */
+    public int switchResolutionWithDelay(int delayMillis) {
+        return 0;
+    }
+
+    /**
+     * Get the top left and bottom right coordinates of main pane, form rect, etc.
+     *
+     * @param coordinates   The coordinates are returned in this array
+     * @param type          Defines for which area the coordinates are fetched
+     */
+    public void getBoundsOf(int type, int[] coordinates) {
+    }
+
+    /**
+     * Disable screen saver
+     */
+    public void disableScreenSaver() {
+    }
+
+    /**
+     * Enable screen saver
+     */
+    public void enableScreenSaver() {
+    }
+}