diff options
author | Kevin Jin <kjin@google.com> | 2013-08-09 10:24:50 -0700 |
---|---|---|
committer | Kevin Jin <kjin@google.com> | 2013-08-09 10:24:50 -0700 |
commit | 29d66eeee5d30f7db747cceeb84defec961b4125 (patch) | |
tree | c9d5a0ddc706fe886e238983c9a57a1e03523f21 /src/com | |
parent | f50519233078e65a056cff49d7b4989d57c3e750 (diff) | |
download | droiddriver-29d66eeee5d30f7db747cceeb84defec961b4125.tar.gz |
rename ScrollDirection to scroll.Direction.PhysicalDirection
rename PressKeyAction to SingleKeyAction
rename TypeAction to TextAction
Change-Id: I433e2fbd466143da48ab0b9d6094509560c01eca
Diffstat (limited to 'src/com')
15 files changed, 63 insertions, 84 deletions
diff --git a/src/com/google/android/droiddriver/UiElement.java b/src/com/google/android/droiddriver/UiElement.java index 6541da0..e881475 100644 --- a/src/com/google/android/droiddriver/UiElement.java +++ b/src/com/google/android/droiddriver/UiElement.java @@ -19,10 +19,10 @@ package com.google.android.droiddriver; import android.graphics.Rect; import com.google.android.droiddriver.actions.Action; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.exceptions.ElementNotVisibleException; import com.google.android.droiddriver.finders.Attribute; import com.google.android.droiddriver.instrumentation.InstrumentationDriver; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; import com.google.android.droiddriver.uiautomation.UiAutomationDriver; import com.google.common.base.Predicate; @@ -181,7 +181,7 @@ public interface UiElement { /** * Scrolls in the given direction. Scrolling down means swiping upwards. */ - void scroll(ScrollDirection direction); + void scroll(PhysicalDirection direction); /** * Gets an immutable {@link List} of immediate children that satisfy diff --git a/src/com/google/android/droiddriver/actions/ScrollDirection.java b/src/com/google/android/droiddriver/actions/ScrollDirection.java deleted file mode 100644 index 422ef95..0000000 --- a/src/com/google/android/droiddriver/actions/ScrollDirection.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2013 DroidDriver committers - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.droiddriver.actions; - -/** - * Scroll directions. - */ -public enum ScrollDirection { - UP, - DOWN, - LEFT, - RIGHT -} diff --git a/src/com/google/android/droiddriver/actions/PressKeyAction.java b/src/com/google/android/droiddriver/actions/SingleKeyAction.java index 8f66d84..6f8d292 100644 --- a/src/com/google/android/droiddriver/actions/PressKeyAction.java +++ b/src/com/google/android/droiddriver/actions/SingleKeyAction.java @@ -28,27 +28,27 @@ import com.google.common.base.Objects; * UI, do not overuse it -- the application may interpret key codes in a custom * way and, more importantly, application users may not have access to it * because the device (physical or virtual keyboard) may not support all key - * codes. TODO: rename to SingleKeyAction + * codes. */ -public class PressKeyAction extends KeyAction { +public class SingleKeyAction extends KeyAction { /** * Common instances for convenience and memory preservation. */ - public static final PressKeyAction MENU = new PressKeyAction(KeyEvent.KEYCODE_MENU); - public static final PressKeyAction SEARCH = new PressKeyAction(KeyEvent.KEYCODE_SEARCH); - public static final PressKeyAction BACK = new PressKeyAction(KeyEvent.KEYCODE_BACK); - public static final PressKeyAction DELETE = new PressKeyAction(KeyEvent.KEYCODE_DEL); + public static final SingleKeyAction MENU = new SingleKeyAction(KeyEvent.KEYCODE_MENU); + public static final SingleKeyAction SEARCH = new SingleKeyAction(KeyEvent.KEYCODE_SEARCH); + public static final SingleKeyAction BACK = new SingleKeyAction(KeyEvent.KEYCODE_BACK); + public static final SingleKeyAction DELETE = new SingleKeyAction(KeyEvent.KEYCODE_DEL); private final int keyCode; /** * Defaults timeoutMillis to 100. */ - public PressKeyAction(int keyCode) { + public SingleKeyAction(int keyCode) { this(keyCode, 100L, false); } - public PressKeyAction(int keyCode, long timeoutMillis, boolean checkFocused) { + public SingleKeyAction(int keyCode, long timeoutMillis, boolean checkFocused) { super(timeoutMillis, checkFocused); this.keyCode = keyCode; } diff --git a/src/com/google/android/droiddriver/actions/SwipeAction.java b/src/com/google/android/droiddriver/actions/SwipeAction.java index 5543f6a..ec300fb 100644 --- a/src/com/google/android/droiddriver/actions/SwipeAction.java +++ b/src/com/google/android/droiddriver/actions/SwipeAction.java @@ -22,6 +22,7 @@ import android.view.ViewConfiguration; import com.google.android.droiddriver.UiElement; import com.google.android.droiddriver.exceptions.ActionException; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; import com.google.android.droiddriver.util.Events; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; @@ -31,13 +32,13 @@ import com.google.common.base.Objects.ToStringHelper; */ public class SwipeAction extends ScrollAction { /** Common instances for convenience */ - public static final SwipeAction SCROLL_UP = new SwipeAction(ScrollDirection.UP, false); - public static final SwipeAction SCROLL_DOWN = new SwipeAction(ScrollDirection.DOWN, false); - public static final SwipeAction SCROLL_LEFT = new SwipeAction(ScrollDirection.LEFT, false); - public static final SwipeAction SCROLL_RIGHT = new SwipeAction(ScrollDirection.RIGHT, false); + public static final SwipeAction SCROLL_UP = new SwipeAction(PhysicalDirection.UP, false); + public static final SwipeAction SCROLL_DOWN = new SwipeAction(PhysicalDirection.DOWN, false); + public static final SwipeAction SCROLL_LEFT = new SwipeAction(PhysicalDirection.LEFT, false); + public static final SwipeAction SCROLL_RIGHT = new SwipeAction(PhysicalDirection.RIGHT, false); /** Gets canned common instances */ - public static SwipeAction toScroll(ScrollDirection direction) { + public static SwipeAction toScroll(PhysicalDirection direction) { switch (direction) { case UP: return SCROLL_UP; @@ -52,17 +53,17 @@ public class SwipeAction extends ScrollAction { } } - private final ScrollDirection direction; + private final PhysicalDirection direction; private final boolean drag; /** * Defaults timeoutMillis to 1000. */ - public SwipeAction(ScrollDirection direction, boolean drag) { + public SwipeAction(PhysicalDirection direction, boolean drag) { this(direction, drag, 1000L); } - public SwipeAction(ScrollDirection direction, boolean drag, long timeoutMillis) { + public SwipeAction(PhysicalDirection direction, boolean drag, long timeoutMillis) { super(timeoutMillis); this.direction = direction; this.drag = drag; diff --git a/src/com/google/android/droiddriver/actions/TypeAction.java b/src/com/google/android/droiddriver/actions/TextAction.java index 112b50f..80250f7 100644 --- a/src/com/google/android/droiddriver/actions/TypeAction.java +++ b/src/com/google/android/droiddriver/actions/TextAction.java @@ -16,19 +16,19 @@ package com.google.android.droiddriver.actions; +import android.os.SystemClock; +import android.view.KeyCharacterMap; +import android.view.KeyEvent; + import com.google.android.droiddriver.UiElement; import com.google.android.droiddriver.exceptions.ActionException; import com.google.common.base.Objects; import com.google.common.base.Preconditions; -import android.os.SystemClock; -import android.view.KeyCharacterMap; -import android.view.KeyEvent; - /** * An action to type text. */ -public class TypeAction extends KeyAction { +public class TextAction extends KeyAction { private static final KeyCharacterMap KEY_CHAR_MAP = KeyCharacterMap .load(KeyCharacterMap.VIRTUAL_KEYBOARD); @@ -38,11 +38,11 @@ public class TypeAction extends KeyAction { /** * Defaults timeoutMillis to 100. */ - public TypeAction(String text) { + public TextAction(String text) { this(text, 100L, false); } - public TypeAction(String text, long timeoutMillis, boolean checkFocused) { + public TextAction(String text, long timeoutMillis, boolean checkFocused) { super(timeoutMillis, checkFocused); this.text = Preconditions.checkNotNull(text); } diff --git a/src/com/google/android/droiddriver/base/BaseUiDevice.java b/src/com/google/android/droiddriver/base/BaseUiDevice.java index cfeb15e..cc1d092 100644 --- a/src/com/google/android/droiddriver/base/BaseUiDevice.java +++ b/src/com/google/android/droiddriver/base/BaseUiDevice.java @@ -25,7 +25,7 @@ import android.view.KeyEvent; import com.google.android.droiddriver.UiDevice; import com.google.android.droiddriver.actions.Action; -import com.google.android.droiddriver.actions.PressKeyAction; +import com.google.android.droiddriver.actions.SingleKeyAction; import com.google.android.droiddriver.util.FileUtils; import com.google.android.droiddriver.util.Logs; @@ -36,10 +36,10 @@ import java.io.BufferedOutputStream; */ public abstract class BaseUiDevice implements UiDevice { // power off may not trigger new events - private static final PressKeyAction POWER_OFF = new PressKeyAction(KeyEvent.KEYCODE_POWER, 0, + private static final SingleKeyAction POWER_OFF = new SingleKeyAction(KeyEvent.KEYCODE_POWER, 0, false); // power on should always trigger new events - private static final PressKeyAction POWER_ON = new PressKeyAction(KeyEvent.KEYCODE_POWER, 1000L, + private static final SingleKeyAction POWER_ON = new SingleKeyAction(KeyEvent.KEYCODE_POWER, 1000L, false); @Override diff --git a/src/com/google/android/droiddriver/base/BaseUiElement.java b/src/com/google/android/droiddriver/base/BaseUiElement.java index e768032..2e038f1 100644 --- a/src/com/google/android/droiddriver/base/BaseUiElement.java +++ b/src/com/google/android/droiddriver/base/BaseUiElement.java @@ -20,12 +20,12 @@ import com.google.android.droiddriver.UiElement; import com.google.android.droiddriver.actions.Action; import com.google.android.droiddriver.actions.ClickAction; import com.google.android.droiddriver.actions.InputInjector; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.actions.SwipeAction; -import com.google.android.droiddriver.actions.TypeAction; +import com.google.android.droiddriver.actions.TextAction; import com.google.android.droiddriver.exceptions.ElementNotVisibleException; import com.google.android.droiddriver.finders.Attribute; import com.google.android.droiddriver.finders.ByXPath; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; import com.google.android.droiddriver.util.Logs; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; @@ -90,7 +90,7 @@ public abstract class BaseUiElement implements UiElement { @Override public void setText(String text) { - perform(new TypeAction(text)); + perform(new TextAction(text)); // TypeAction may not be effective immediately and reflected bygetText(), // so the following will fail. // if (Logs.DEBUG) { @@ -118,7 +118,7 @@ public abstract class BaseUiElement implements UiElement { } @Override - public void scroll(ScrollDirection direction) { + public void scroll(PhysicalDirection direction) { perform(SwipeAction.toScroll(direction)); } diff --git a/src/com/google/android/droiddriver/instrumentation/RootFinder.java b/src/com/google/android/droiddriver/instrumentation/RootFinder.java index 19b8387..4951bbe 100644 --- a/src/com/google/android/droiddriver/instrumentation/RootFinder.java +++ b/src/com/google/android/droiddriver/instrumentation/RootFinder.java @@ -16,13 +16,13 @@ package com.google.android.droiddriver.instrumentation; -import com.google.android.droiddriver.exceptions.DroidDriverException; -import com.google.android.droiddriver.util.Logs; - import android.os.Build; import android.util.Log; import android.view.View; +import com.google.android.droiddriver.exceptions.DroidDriverException; +import com.google.android.droiddriver.util.Logs; + import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/src/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java b/src/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java index 2d77beb..9fbf339 100644 --- a/src/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java +++ b/src/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java @@ -16,9 +16,9 @@ package com.google.android.droiddriver.scroll; import com.google.android.droiddriver.UiElement; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.scroll.Direction.LogicalDirection; import com.google.android.droiddriver.scroll.Direction.PhysicalToLogicalConverter; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -118,7 +118,7 @@ public abstract class AbstractSentinelStrategy implements SentinelStrategy { this.physicalToLogicalConverter = physicalToLogicalConverter; } - protected UiElement getSentinel(UiElement parent, ScrollDirection direction) { + protected UiElement getSentinel(UiElement parent, PhysicalDirection direction) { LogicalDirection logicalDirection = physicalToLogicalConverter.toLogicalDirection(direction); if (logicalDirection == LogicalDirection.BACKWARD) { return backwardGetStrategy.getSentinel(parent); diff --git a/src/com/google/android/droiddriver/scroll/Direction.java b/src/com/google/android/droiddriver/scroll/Direction.java index 1f8f86b..47a8441 100644 --- a/src/com/google/android/droiddriver/scroll/Direction.java +++ b/src/com/google/android/droiddriver/scroll/Direction.java @@ -15,7 +15,6 @@ */ package com.google.android.droiddriver.scroll; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.exceptions.ActionException; /** @@ -27,24 +26,30 @@ public interface Direction { FORWARD, BACKWARD; } + /** Physical directions */ + public enum PhysicalDirection { + UP, DOWN, LEFT, RIGHT + } + public enum Axis { HORIZONTAL { - private final ScrollDirection[] directions = {ScrollDirection.LEFT, ScrollDirection.RIGHT}; + private final PhysicalDirection[] directions = {PhysicalDirection.LEFT, + PhysicalDirection.RIGHT}; @Override - public ScrollDirection[] getDirections() { + public PhysicalDirection[] getPhysicalDirections() { return directions; } }, VERTICAL { - private final ScrollDirection[] directions = {ScrollDirection.UP, ScrollDirection.DOWN}; + private final PhysicalDirection[] directions = {PhysicalDirection.UP, PhysicalDirection.DOWN}; @Override - public ScrollDirection[] getDirections() { + public PhysicalDirection[] getPhysicalDirections() { return directions; } }; - public abstract ScrollDirection[] getDirections(); + public abstract PhysicalDirection[] getPhysicalDirections(); } /** @@ -55,12 +60,12 @@ public interface Direction { * Converts ScrollDirection to LogicalDirection. It's possible to override * this for RTL (right-to-left) views, for example. */ - LogicalDirection toLogicalDirection(ScrollDirection direction); + LogicalDirection toLogicalDirection(PhysicalDirection direction); - /** Follows standard directions: up-to-down, left-to-right */ + /** Follows standard convention: up-to-down, left-to-right */ PhysicalToLogicalConverter STANDARD_CONVERTER = new PhysicalToLogicalConverter() { @Override - public LogicalDirection toLogicalDirection(ScrollDirection direction) { + public LogicalDirection toLogicalDirection(PhysicalDirection direction) { switch (direction) { case UP: return LogicalDirection.BACKWARD; diff --git a/src/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java b/src/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java index 779a41f..866c71b 100644 --- a/src/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java +++ b/src/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java @@ -19,10 +19,10 @@ import android.util.Log; import com.google.android.droiddriver.DroidDriver; import com.google.android.droiddriver.UiElement; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.exceptions.ElementNotFoundException; import com.google.android.droiddriver.finders.Finder; import com.google.android.droiddriver.scroll.Direction.PhysicalToLogicalConverter; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; import com.google.android.droiddriver.util.Logs; import com.google.common.base.Objects; @@ -186,7 +186,7 @@ public class DynamicSentinelStrategy extends AbstractSentinelStrategy { } @Override - public boolean scroll(DroidDriver driver, Finder parentFinder, ScrollDirection direction) { + public boolean scroll(DroidDriver driver, Finder parentFinder, PhysicalDirection direction) { UiElement parent = driver.on(parentFinder); UiElement oldSentinel = getSentinel(parent, direction); parent.scroll(direction); diff --git a/src/com/google/android/droiddriver/scroll/Scroller.java b/src/com/google/android/droiddriver/scroll/Scroller.java index 538e7a9..060fe79 100644 --- a/src/com/google/android/droiddriver/scroll/Scroller.java +++ b/src/com/google/android/droiddriver/scroll/Scroller.java @@ -17,9 +17,9 @@ package com.google.android.droiddriver.scroll; import com.google.android.droiddriver.DroidDriver; import com.google.android.droiddriver.UiElement; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.exceptions.ElementNotFoundException; import com.google.android.droiddriver.finders.Finder; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; /** * Interface for scrolling to the desired child in a scrollable parent view. @@ -53,5 +53,5 @@ public interface Scroller { * @throws ElementNotFoundException If no match is found */ UiElement scrollTo(DroidDriver driver, Finder parentFinder, Finder childFinder, - ScrollDirection direction); + PhysicalDirection direction); } diff --git a/src/com/google/android/droiddriver/scroll/SentinelScroller.java b/src/com/google/android/droiddriver/scroll/SentinelScroller.java index 746ad6d..d167254 100644 --- a/src/com/google/android/droiddriver/scroll/SentinelScroller.java +++ b/src/com/google/android/droiddriver/scroll/SentinelScroller.java @@ -20,11 +20,11 @@ import android.util.Log; import com.google.android.droiddriver.DroidDriver; import com.google.android.droiddriver.Poller; import com.google.android.droiddriver.UiElement; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.exceptions.ElementNotFoundException; import com.google.android.droiddriver.exceptions.TimeoutException; import com.google.android.droiddriver.finders.Finder; import com.google.android.droiddriver.scroll.Direction.Axis; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; import com.google.android.droiddriver.util.Logs; /** @@ -67,7 +67,7 @@ public class SentinelScroller implements Scroller { @Override public UiElement scrollTo(DroidDriver driver, Finder parentFinder, Finder childFinder, - ScrollDirection direction) { + PhysicalDirection direction) { Logs.call(this, "scrollTo", driver, parentFinder, childFinder, direction); // TODO: enforce childFinder is relative to parentFinder. // Combine with parentFinder to make childFinder absolute @@ -99,7 +99,7 @@ public class SentinelScroller implements Scroller { @Override public UiElement scrollTo(DroidDriver driver, Finder parentFinder, Finder childFinder) { // TODO: start searching from beginning instead of the current location. - for (ScrollDirection direction : axis.getDirections()) { + for (PhysicalDirection direction : axis.getPhysicalDirections()) { try { return scrollTo(driver, parentFinder, childFinder, direction); } catch (ElementNotFoundException e) { diff --git a/src/com/google/android/droiddriver/scroll/SentinelStrategy.java b/src/com/google/android/droiddriver/scroll/SentinelStrategy.java index 3b8edec..5757ee3 100644 --- a/src/com/google/android/droiddriver/scroll/SentinelStrategy.java +++ b/src/com/google/android/droiddriver/scroll/SentinelStrategy.java @@ -16,8 +16,8 @@ package com.google.android.droiddriver.scroll; import com.google.android.droiddriver.DroidDriver; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.finders.Finder; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; /** * Interface for determining whether scrolling is possible based on a sentinel. @@ -33,7 +33,7 @@ public interface SentinelStrategy { * @param direction * @return whether scrolling is effective */ - boolean scroll(DroidDriver driver, Finder parentFinder, ScrollDirection direction); + boolean scroll(DroidDriver driver, Finder parentFinder, PhysicalDirection direction); /** * {@inheritDoc} diff --git a/src/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java b/src/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java index 9b25a5c..f83ce2a 100644 --- a/src/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java +++ b/src/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java @@ -19,10 +19,10 @@ import android.graphics.Rect; import com.google.android.droiddriver.DroidDriver; import com.google.android.droiddriver.UiElement; -import com.google.android.droiddriver.actions.ScrollDirection; import com.google.android.droiddriver.finders.Finder; import com.google.android.droiddriver.instrumentation.InstrumentationDriver; import com.google.android.droiddriver.scroll.Direction.PhysicalToLogicalConverter; +import com.google.android.droiddriver.scroll.Direction.PhysicalDirection; /** * Determines whether scrolling is possible by checking whether the last child @@ -46,7 +46,7 @@ public class StaticSentinelStrategy extends AbstractSentinelStrategy { } @Override - public boolean scroll(DroidDriver driver, Finder parentFinder, ScrollDirection direction) { + public boolean scroll(DroidDriver driver, Finder parentFinder, PhysicalDirection direction) { UiElement parent = driver.on(parentFinder); // If the last child in the logical scroll direction is fully visible, no // more scrolling is possible |