| Index: tools/telemetry/telemetry/core/android_action_runner.py
|
| diff --git a/tools/telemetry/telemetry/core/android_action_runner.py b/tools/telemetry/telemetry/core/android_action_runner.py
|
| deleted file mode 100644
|
| index 6bd28550c4f868da61e332251935ee00133a1b88..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/core/android_action_runner.py
|
| +++ /dev/null
|
| @@ -1,161 +0,0 @@
|
| -# Copyright 2015 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.
|
| -
|
| -import logging
|
| -import time
|
| -
|
| -from telemetry.core import util
|
| -
|
| -
|
| -class ActionNotSupported(Exception):
|
| - pass
|
| -
|
| -
|
| -class AndroidActionRunner(object):
|
| - """Provides an API for interacting with an android device.
|
| -
|
| - This makes use of functionality provided by the android input command. None
|
| - of the gestures here are guaranteed to be performant for telemetry tests and
|
| - there is no official support for this API.
|
| -
|
| - TODO(ariblue): Replace this API with a better implementation for interacting
|
| - with native components.
|
| - """
|
| -
|
| - def __init__(self, platform_backend):
|
| - self._platform_backend = platform_backend
|
| -
|
| - def SmoothScrollBy(self, left_start_coord, top_start_coord, direction,
|
| - scroll_distance):
|
| - """Perform gesture to scroll down on the android device.
|
| - """
|
| - if direction not in ['down', 'up', 'left', 'right']:
|
| - raise ActionNotSupported('Invalid scroll direction: %s' % direction)
|
| -
|
| - # This velocity is slower so that the exact distance we specify is the
|
| - # distance the page travels.
|
| - duration = scroll_distance
|
| -
|
| - # Note that the default behavior is swiping up for scrolling down.
|
| - if direction == 'down':
|
| - left_end_coord = left_start_coord
|
| - top_end_coord = top_start_coord - scroll_distance
|
| - elif direction == 'up':
|
| - left_end_coord = left_start_coord
|
| - top_end_coord = top_start_coord + scroll_distance
|
| - elif direction == 'right':
|
| - left_end_coord = left_start_coord - scroll_distance
|
| - top_end_coord = top_start_coord
|
| - elif direction == 'left':
|
| - left_end_coord = left_start_coord + scroll_distance
|
| - top_end_coord = top_start_coord
|
| -
|
| - self.InputSwipe(left_start_coord, top_start_coord, left_end_coord,
|
| - top_end_coord, duration)
|
| -
|
| - def Wait(self, seconds):
|
| - """Wait for the number of seconds specified.
|
| -
|
| - Args:
|
| - seconds: The number of seconds to wait.
|
| - """
|
| - time.sleep(seconds)
|
| -
|
| - def InputText(self, string):
|
| - """Convert the characters of the string into key events and send to device.
|
| -
|
| - Args:
|
| - string: The string to send to the device.
|
| - """
|
| - self._platform_backend.device.RunShellCommand('input text %s' % string)
|
| -
|
| - def InputKeyEvent(self, key):
|
| - """Send a single key input to the device.
|
| -
|
| - Args:
|
| - key: A key code number or name that will be sent to the device
|
| - """
|
| - self._platform_backend.device.RunShellCommand('input keyevent %s' % key)
|
| -
|
| - def InputTap(self, x_coord, y_coord):
|
| - """Perform a tap input at the given coordinates.
|
| -
|
| - Args:
|
| - x_coord: The x coordinate of the tap event.
|
| - y_coord: The y coordinate of the tap event.
|
| - """
|
| - self._platform_backend.device.RunShellCommand('input tap %s %s' % (x_coord,
|
| - y_coord))
|
| -
|
| - def InputSwipe(self, left_start_coord, top_start_coord, left_end_coord,
|
| - top_end_coord, duration):
|
| - """Perform a swipe input.
|
| -
|
| - Args:
|
| - left_start_coord: The horizontal starting coordinate of the gesture
|
| - top_start_coord: The vertical starting coordinate of the gesture
|
| - left_end_coord: The horizontal ending coordinate of the gesture
|
| - top_end_coord: The vertical ending coordinate of the gesture
|
| - duration: The length of time of the swipe in milliseconds
|
| - """
|
| - self._platform_backend.device.RunShellCommand(
|
| - 'input swipe %s %s %s %s %s' % (left_start_coord, top_start_coord,
|
| - left_end_coord, top_end_coord,
|
| - duration))
|
| -
|
| - def InputPress(self):
|
| - """Perform a press input."""
|
| - self._platform_backend.device.RunShellCommand('input press')
|
| -
|
| - def InputRoll(self, dx, dy):
|
| - """Perform a roll input. This sends a simple zero-pressure move event.
|
| -
|
| - Args:
|
| - dx: Change in the x coordinate due to move.
|
| - dy: Change in the y coordinate due to move.
|
| - """
|
| - self._platform_backend.device.RunShellCommand('input roll %s %s' % (dx, dy))
|
| -
|
| - def TurnScreenOn(self):
|
| - """If device screen is off, turn screen on.
|
| - If the screen is already on, log a warning and return immediately.
|
| -
|
| - Raises:
|
| - Timeout: If the screen is off and device fails to turn screen on.
|
| - """
|
| - self._platform_backend.device.SetScreen(True)
|
| - util.WaitFor(self._platform_backend.device.IsScreenOn, 5)
|
| -
|
| - def TurnScreenOff(self):
|
| - """If device screen is on, turn screen off.
|
| - If the screen is already off, log a warning and return immediately.
|
| -
|
| - Raises:
|
| - Timeout: If the screen is on and device fails to turn screen off.
|
| - """
|
| -
|
| - def is_screen_off():
|
| - return not self._platform_backend.device.IsScreenOn()
|
| -
|
| - self._platform_backend.device.SetScreen(False)
|
| - util.WaitFor(is_screen_off, 5)
|
| -
|
| - def UnlockScreen(self):
|
| - """If device screen is locked, unlocks it.
|
| - If the device is not locked, log a warning and return immediately.
|
| -
|
| - Raises:
|
| - Timeout: If device fails to unlock screen.
|
| - """
|
| -
|
| - def is_screen_unlocked():
|
| - return not self._platform_backend.IsScreenLocked()
|
| -
|
| - if self._platform_backend.IsScreenLocked():
|
| - self._platform_backend.device.RunShellCommand('input keyevent 82')
|
| - else:
|
| - logging.warning('Screen not locked when expected.')
|
| - return
|
| -
|
| - util.WaitFor(is_screen_unlocked, 5)
|
|
|