| Index: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TouchCommon.java
|
| diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TouchCommon.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TouchCommon.java
|
| deleted file mode 100644
|
| index f8d2e131b9b782213e0523a326618ce2009571a0..0000000000000000000000000000000000000000
|
| --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TouchCommon.java
|
| +++ /dev/null
|
| @@ -1,237 +0,0 @@
|
| -// Copyright 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package org.chromium.content.browser.test.util;
|
| -
|
| -import android.os.SystemClock;
|
| -import android.test.ActivityInstrumentationTestCase2;
|
| -import android.test.TouchUtils;
|
| -import android.view.MotionEvent;
|
| -import android.view.View;
|
| -import android.view.ViewConfiguration;
|
| -
|
| -/**
|
| - * Touch-related functionality reused across test cases.
|
| - */
|
| -public class TouchCommon {
|
| - private ActivityInstrumentationTestCase2 mActivityTestCase;
|
| -
|
| - // TODO(leandrogracia): This method should receive and use an activity
|
| - // instead of the ActivityInstrumentationTestCase2. However this is causing
|
| - // problems downstream. Any fix for this should be landed downstream first.
|
| - public TouchCommon(ActivityInstrumentationTestCase2 activityTestCase) {
|
| - mActivityTestCase = activityTestCase;
|
| - }
|
| -
|
| - /**
|
| - * Starts (synchronously) a drag motion. Normally followed by dragTo() and dragEnd().
|
| - *
|
| - * @param x
|
| - * @param y
|
| - * @param downTime (in ms)
|
| - * @see TouchUtils
|
| - */
|
| - public void dragStart(float x, float y, long downTime) {
|
| - MotionEvent event = MotionEvent.obtain(downTime, downTime,
|
| - MotionEvent.ACTION_DOWN, x, y, 0);
|
| - dispatchTouchEvent(event);
|
| - }
|
| -
|
| - /**
|
| - * Drags / moves (synchronously) to the specified coordinates. Normally preceeded by
|
| - * dragStart() and followed by dragEnd()
|
| - *
|
| - * @param fromX
|
| - * @param toX
|
| - * @param fromY
|
| - * @param toY
|
| - * @param stepCount
|
| - * @param downTime (in ms)
|
| - * @see TouchUtils
|
| - */
|
| - public void dragTo(float fromX, float toX, float fromY,
|
| - float toY, int stepCount, long downTime) {
|
| - float x = fromX;
|
| - float y = fromY;
|
| - float yStep = (toY - fromY) / stepCount;
|
| - float xStep = (toX - fromX) / stepCount;
|
| - for (int i = 0; i < stepCount; ++i) {
|
| - y += yStep;
|
| - x += xStep;
|
| - long eventTime = SystemClock.uptimeMillis();
|
| - MotionEvent event = MotionEvent.obtain(downTime, eventTime,
|
| - MotionEvent.ACTION_MOVE, x, y, 0);
|
| - dispatchTouchEvent(event);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Finishes (synchronously) a drag / move at the specified coordinate.
|
| - * Normally preceeded by dragStart() and dragTo().
|
| - *
|
| - * @param x
|
| - * @param y
|
| - * @param downTime (in ms)
|
| - * @see TouchUtils
|
| - */
|
| - public void dragEnd(float x, float y, long downTime) {
|
| - long eventTime = SystemClock.uptimeMillis();
|
| - MotionEvent event = MotionEvent.obtain(downTime, eventTime,
|
| - MotionEvent.ACTION_UP, x, y, 0);
|
| - dispatchTouchEvent(event);
|
| - }
|
| -
|
| - /**
|
| - * Sends (synchronously) a single click to an absolute screen coordinates.
|
| - *
|
| - * @param x screen absolute
|
| - * @param y screen absolute
|
| - * @see TouchUtils
|
| - */
|
| - public void singleClick(float x, float y) {
|
| -
|
| - long downTime = SystemClock.uptimeMillis();
|
| - long eventTime = SystemClock.uptimeMillis();
|
| -
|
| - MotionEvent event = MotionEvent.obtain(downTime, eventTime,
|
| - MotionEvent.ACTION_DOWN, x, y, 0);
|
| - dispatchTouchEvent(event);
|
| -
|
| - eventTime = SystemClock.uptimeMillis();
|
| - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP,
|
| - x, y, 0);
|
| - dispatchTouchEvent(event);
|
| - }
|
| -
|
| - /**
|
| - * Sends (synchronously) a single click to the View at the specified coordinates.
|
| - *
|
| - * @param v The view to be clicked.
|
| - * @param x Relative x location to v
|
| - * @param y Relative y location to v
|
| - */
|
| - public void singleClickView(View v, int x, int y) {
|
| - int location[] = getAbsoluteLocationFromRelative(v, x, y);
|
| - int absoluteX = location[0];
|
| - int absoluteY = location[1];
|
| - singleClick(absoluteX, absoluteY);
|
| - }
|
| -
|
| - /**
|
| - * Sends (synchronously) a single click to the center of the View.
|
| - */
|
| - public void singleClickView(View v) {
|
| - singleClickView(v, v.getWidth() / 2, v.getHeight() / 2);
|
| - }
|
| -
|
| - /**
|
| - * Sends (synchronously) a single click on the specified relative coordinates inside
|
| - * a given view.
|
| - *
|
| - * @param view The view to be clicked.
|
| - * @param x screen absolute
|
| - * @param y screen absolute
|
| - * @see TouchUtils
|
| - */
|
| - public void singleClickViewRelative(View view, int x, int y) {
|
| - long downTime = SystemClock.uptimeMillis();
|
| - long eventTime = SystemClock.uptimeMillis();
|
| -
|
| - MotionEvent event = MotionEvent.obtain(downTime, eventTime,
|
| - MotionEvent.ACTION_DOWN, x, y, 0);
|
| - dispatchTouchEvent(view, event);
|
| -
|
| - eventTime = SystemClock.uptimeMillis();
|
| - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP,
|
| - x, y, 0);
|
| - dispatchTouchEvent(view, event);
|
| - }
|
| -
|
| - /**
|
| - * Sends (synchronously) a long press to an absolute screen coordinates.
|
| - *
|
| - * @param x screen absolute
|
| - * @param y screen absolute
|
| - * @see TouchUtils
|
| - */
|
| - public void longPress(float x, float y) {
|
| -
|
| - long downTime = SystemClock.uptimeMillis();
|
| - long eventTime = SystemClock.uptimeMillis();
|
| -
|
| - MotionEvent event = MotionEvent.obtain(downTime, eventTime,
|
| - MotionEvent.ACTION_DOWN, x, y, 0);
|
| - dispatchTouchEvent(event);
|
| -
|
| - int longPressTimeout = ViewConfiguration.get(
|
| - mActivityTestCase.getActivity()).getLongPressTimeout();
|
| -
|
| - // Long press is flaky with just longPressTimeout. Doubling the time to be safe.
|
| - SystemClock.sleep(longPressTimeout * 2);
|
| -
|
| - eventTime = SystemClock.uptimeMillis();
|
| - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP,
|
| - x, y, 0);
|
| - dispatchTouchEvent(event);
|
| - }
|
| -
|
| - /**
|
| - * Sends (synchronously) a long press to the View at the specified coordinates.
|
| - *
|
| - * @param v The view to be clicked.
|
| - * @param x Relative x location to v
|
| - * @param y Relative y location to v
|
| - */
|
| - public void longPressView(View v, int x, int y) {
|
| - int location[] = getAbsoluteLocationFromRelative(v, x, y);
|
| - int absoluteX = location[0];
|
| - int absoluteY = location[1];
|
| - longPress(absoluteX, absoluteY);
|
| - }
|
| -
|
| - /**
|
| - * Send a MotionEvent to the root view of the activity.
|
| - * @param event
|
| - */
|
| - private void dispatchTouchEvent(final MotionEvent event) {
|
| - View view =
|
| - mActivityTestCase.getActivity().findViewById(android.R.id.content).getRootView();
|
| - dispatchTouchEvent(view, event);
|
| - }
|
| -
|
| - /**
|
| - * Send a MotionEvent to the specified view instead of the root view.
|
| - * For example AutofillPopup window that is above the root view.
|
| - * @param view The view that should receive the event.
|
| - * @param event The view to be dispatched.
|
| - */
|
| - private void dispatchTouchEvent(final View view, final MotionEvent event) {
|
| - try {
|
| - mActivityTestCase.runTestOnUiThread(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - view.dispatchTouchEvent(event);
|
| - }
|
| - });
|
| - } catch (Throwable e) {
|
| - throw new RuntimeException("Dispatching touch event failed", e);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Returns the absolute location in screen coordinates from location relative
|
| - * to view.
|
| - * @param v The view the coordinates are relative to.
|
| - * @param x Relative x location.
|
| - * @param y Relative y location.
|
| - * @return absolute x and y location in an array.
|
| - */
|
| - private static int[] getAbsoluteLocationFromRelative(View v, int x, int y) {
|
| - int location[] = new int[2];
|
| - v.getLocationOnScreen(location);
|
| - location[0] += x;
|
| - location[1] += y;
|
| - return location;
|
| - }
|
| -}
|
|
|