Bug 1441982 - Add GeckoSessionTestRule.synthesizeTap() r=jchen
MozReview-Commit-ID: AFV8i0RbttA
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java
@@ -1003,9 +1003,21 @@ public class GeckoSessionTestRule extend
* #delegateDuringNextWait} can temporarily take precedence over delegates for
* {@link #delegateUntilTestEnd}.
*
* @param callback Callback object, or null to clear all previously-set delegates.
*/
public void delegateDuringNextWait(final Object callback) {
mWaitScopeDelegates.delegate(callback);
}
+
+ public void synthesizeTap(int x, int y) {
+ final long downTime = SystemClock.uptimeMillis();
+ final MotionEvent down = MotionEvent.obtain(downTime, SystemClock.uptimeMillis(),
+ MotionEvent.ACTION_DOWN, x, y, 0);
+
+ mSession.getPanZoomController().onTouchEvent(down);
+
+ final MotionEvent up = MotionEvent.obtain(downTime, SystemClock.uptimeMillis(),
+ MotionEvent.ACTION_UP, x, y, 0);
+ mSession.getPanZoomController().onTouchEvent(up);
+ }
}
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
@@ -454,17 +454,17 @@ public final class NativePanZoomControll
eventType == MotionEvent.ACTION_HOVER_MOVE)
{
mPointerState.pointers.remove(pointerIndex);
}
}
@WrapForJNI(calledFrom = "ui")
private void synthesizeNativeTouchPoint(int pointerId, int eventType, int clientX,
- int clientY, double pressure, int orientation) {
+ int clientY, double pressure, int orientation) {
if (pointerId == PointerInfo.RESERVED_MOUSE_POINTER_ID) {
throw new IllegalArgumentException("Pointer ID reserved for mouse");
}
synthesizeNativePointer(InputDevice.SOURCE_TOUCHSCREEN, pointerId,
eventType, clientX, clientY, pressure, orientation);
}
@WrapForJNI(calledFrom = "ui")