History log of /external/droiddriver/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d22fedf52b8cbf700142a4448b3f59254b37851e 03-Jul-2014 Kevin Jin <kjin@google.com> match DefaultAccessibilityValidator to TalkBack behavior

Change-Id: I6c9659336b07e4a74e3435f55c9b40ce4b4fd043
rc/com/google/android/droiddriver/validators/DefaultAccessibilityValidator.java
cf1203b8078bed407ed0035c201746fae136439a 27-Jun-2014 Kevin Jin <kjin@google.com> add validators for exmpted classes and scroll action

Change-Id: Iad22351b46df771e7a9f92edb9d84df44b5fe572
rc/com/google/android/droiddriver/actions/ScrollAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityScrollAction.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/uiautomation/AccessibilityDriver.java
rc/com/google/android/droiddriver/validators/DefaultAccessibilityValidator.java
rc/com/google/android/droiddriver/validators/ExemptRootValidator.java
rc/com/google/android/droiddriver/validators/ExemptScrollActionValidator.java
rc/com/google/android/droiddriver/validators/ExemptedClassesValidator.java
rc/com/google/android/droiddriver/validators/FirstApplicableValidator.java
rc/com/google/android/droiddriver/validators/Validator.java
rc/com/google/android/droiddriver/validators/VisibilityValidator.java
27b635e33f18c439d6e511d71c762ae1352b1bc8 26-Jun-2014 Kevin Jin <kjin@google.com> Clean up some toString methods

fix DefaultAccessibilityValidator
remove dead/wrong code in StepBasedScroller

Change-Id: I2b847fda53e759f4eada975791fd45b7b22847a8
rc/com/google/android/droiddriver/base/BaseUiDevice.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/ForwardingScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/StepBasedScroller.java
rc/com/google/android/droiddriver/validators/DefaultAccessibilityValidator.java
988386cd9cc46bf5399846a414c09e0af48b1e5a 17-Jun-2014 Kevin Jin <kjin@google.com> expose setAccessibilityNodeInfoCacheClearer

Change-Id: I39780422d66133738978b028252c960765490623
rc/com/google/android/droiddriver/base/DroidDriverContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
74676fdd3c8a9e599eddd13bea56898674d9916a 12-Jun-2014 Kevin Jin <kjin@google.com> add Validator interface and DefaultAccessibilityValidator

refactor for cleaner implementation

Change-Id: I6ba13c5a46e444806f492bc7de365405fecae0d5
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/EventAction.java
rc/com/google/android/droiddriver/actions/EventUiElementActor.java
rc/com/google/android/droiddriver/actions/UiElementActor.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityClickAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityUiElementActor.java
rc/com/google/android/droiddriver/base/BaseDroidDriver.java
rc/com/google/android/droiddriver/base/BaseUiDevice.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/base/DroidDriverContext.java
rc/com/google/android/droiddriver/base/UiElementActor.java
rc/com/google/android/droiddriver/exceptions/ElementNotVisibleException.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationInputInjector.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationUiDevice.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/uiautomation/AccessibilityDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationInputInjector.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationUiDevice.java
rc/com/google/android/droiddriver/uiautomation/accessibility/AccessibilityContext.java
rc/com/google/android/droiddriver/uiautomation/accessibility/AccessibilityDriver.java
rc/com/google/android/droiddriver/uiautomation/accessibility/AccessibilityElement.java
rc/com/google/android/droiddriver/uiautomation/base/BaseUiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/base/BaseUiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/base/BaseUiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/base/UiAutomationCallable.java
rc/com/google/android/droiddriver/uiautomation/base/UiAutomationInputInjector.java
rc/com/google/android/droiddriver/uiautomation/base/UiAutomationUiDevice.java
rc/com/google/android/droiddriver/validators/DefaultAccessibilityValidator.java
rc/com/google/android/droiddriver/validators/Validator.java
rc/com/google/android/droiddriver/validators/VisibilityValidator.java
a738fe74f57f48dde2dd7a28479bab3f5441dadb 30-May-2014 Kevin Jin <kjin@google.com> add AccessibilityDriver for testing Accessibility

This is the first cut with known issues, e.g. needs to handle
click on EditText differently, etc. Thic cl sets up the architecture
of AccessibilityDriver; details will be filled in follow-up cls.

Change-Id: I2881b28075eba478a5aad9d7e945b5d55e78da89
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/actions/EventAction.java
rc/com/google/android/droiddriver/actions/EventUiElementActor.java
rc/com/google/android/droiddriver/actions/KeyAction.java
rc/com/google/android/droiddriver/actions/ScrollAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityClickAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityScrollAction.java
rc/com/google/android/droiddriver/actions/accessibility/AccessibilityUiElementActor.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/base/UiElementActor.java
rc/com/google/android/droiddriver/helpers/DroidDrivers.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationUiDevice.java
rc/com/google/android/droiddriver/uiautomation/accessibility/AccessibilityContext.java
rc/com/google/android/droiddriver/uiautomation/accessibility/AccessibilityDriver.java
rc/com/google/android/droiddriver/uiautomation/accessibility/AccessibilityElement.java
rc/com/google/android/droiddriver/uiautomation/base/BaseUiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/base/BaseUiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/base/BaseUiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/base/UiAutomationCallable.java
rc/com/google/android/droiddriver/uiautomation/base/UiAutomationInputInjector.java
rc/com/google/android/droiddriver/uiautomation/base/UiAutomationUiDevice.java
b4e825291041d963c5bda0349638565949d999f6 16-May-2014 Jake Slack <jaslack@google.com> Roll back change to doScroll and add comment on why.

Change-Id: I3cbe232df929ca48bea81817a86782f9e1b684b4
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
18e55387b4fc6b062d8630dd100be0cb58b03693 13-May-2014 Jake Slack <jaslack@google.com> Simplify scroll call in doScroll.

Change-Id: I0d64f9f5aaade6a14143d924a4357412fb5e3adf
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
46cbd1ba6301e660d32bed661bd65994d4911c4e 08-May-2014 Kevin Jin <kjin@google.com> add UiDevice.pressBack for convenience

Change-Id: Ifafeda79d9569d853948ac254d34cec66f896232
rc/com/google/android/droiddriver/UiDevice.java
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/base/BaseUiDevice.java
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
d414dc59622a9a8a0a2e3af94387d2ecd148ca55 06-May-2014 Kevin Jin <kjin@google.com> fix BaseUiDevice.wakeUp when the root is invisible

The old code called getRootElement().perform(POWER_ON).
UiElement.perform() checks that the UiElement is visible. So wakeUp only
worked when the root UiElement is launcher, which has the visible attribute
even when the screen is off.
The new implementation always works because we don't use the root now.

Change-Id: I6edf9c9f8d0d112cff669ee2a04f123a30ec0b5e
rc/com/google/android/droiddriver/base/BaseUiDevice.java
f1fd9d00b1c6add0647f8cb7a272cff75ec8e2c7 06-May-2014 Kevin Jin <kjin@google.com> change default scrollSteps to 55 and make it configurable

And the same for flingSteps

Change-Id: Ie3f4aac798e078c526dacc02e3fe53060387e0d6
rc/com/google/android/droiddriver/actions/SwipeAction.java
e0ad7adf66e62e536a0ce66fcb099a3518cda010 23-Apr-2014 Kevin Jin <kjin@google.com> consolidate ByAttribute, MatchStrategy by Predicate

also simplified SentinelStrategy using Predicate.
fix TestRunner when no activities are on back stack.
remove deprecated UnrecoverableFailure since callers on
old branches have been fixed.

Change-Id: Ib9f59a6a0cd733eecec2e414588286f173628516
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByAttribute.java
rc/com/google/android/droiddriver/finders/Finder.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/finders/MatchStrategy.java
rc/com/google/android/droiddriver/finders/Predicates.java
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
rc/com/google/android/droiddriver/helpers/UnrecoverableFailure.java
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/scroll/BaseSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/SentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
17342a5115d7575d44a99fed9c7032e3ab316dcc 19-Apr-2014 Kevin Jin <kjin@google.com> remove deps on Guava

This is to simplify the build and deployment set-up
for DroidDriver clients.

Change-Id: I02238d8721d4d3a505a851138c40cb086d2ff11f
classpath
ndroid.mk
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/SingleKeyAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TextAction.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/base/DefaultPoller.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByAttribute.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/finders/ChainFinder.java
rc/com/google/android/droiddriver/finders/Finder.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/finders/Predicate.java
rc/com/google/android/droiddriver/finders/Predicates.java
rc/com/google/android/droiddriver/finders/XPaths.java
rc/com/google/android/droiddriver/helpers/UnrecoverableFailure.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/SentinelStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/ActivityUtils.java
rc/com/google/android/droiddriver/util/Logs.java
rc/com/google/android/droiddriver/util/Preconditions.java
rc/com/google/android/droiddriver/util/Strings.java
rc/com/google/android/droiddriver/util/TextUtils.java
476f54bb2b1219b2a83960663860c76f172ba670 18-Apr-2014 Kevin Jin <kjin@google.com> fix to-uiautomator.xsl for selection-start attribute

Change-Id: I8e2e0f68c8cee71a7db06c3d3bd32c5719c87c29
o-uiautomator.xsl
207c9f5d9468a87e741307c1fd19b62282797c63 04-Apr-2014 Kevin Jin <kjin@google.com> Merge "add selection-[start|end} attributes for TextView"
5c9d7f7e2db9c7dd52543e455abff0449e21a90b 04-Apr-2014 Kevin Jin <kjin@google.com> add selection-[start|end} attributes for TextView

Change-Id: I0fb7214437c450ffcccc7fb2ce94e32d7ec759dc
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/finders/Attribute.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
o-uiautomator.xsl
39d9aef13dbc9acf2be30b3db734c561f97626a4 04-Apr-2014 Jake Slack <jaslack@google.com> Resetting test state after a failed flaky test.

Currently, we do not tear down and re-setup a flaky test on the next
attempt. This means, if part of the test puts the app in some state that
is not expected at the beginning of the test, the test will fail.

Change-Id: Ie1caeb9505c490536add60da88409b66b939c4cf
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
b91b93ad4787c19d769d0e8f3c1660231d6e0687 01-Apr-2014 Kevin Jin <kjin@google.com> Always log uncaughtException

This is needed when the uncaughtException occurs in InstrumentationTestRunner

Change-Id: If62e43e5cba2d6a98722c9c5c82c5896f7dd4355
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
d9ecc536e454bd4c23d6e0bbf5af1328e34b1748 01-Apr-2014 Kevin Jin <kjin@google.com> move ProgressBarScrollStepStrategy to Scrollers

Change-Id: I928c86024f8f498dde46298804969998eeb56ba2
rc/com/google/android/droiddriver/scroll/ForwardingScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/Scrollers.java
df66b27599d3679de93f14ef972a32100d231683 29-Mar-2014 Kevin Jin <kjin@google.com> add two new scroll APIs

ForwardingScrollStepStrategy and NullAccessibilityEventScrollStepStrategy

Change-Id: I16efb179f35d3fc178801c596a1d896c8b1e7644
rc/com/google/android/droiddriver/helpers/PollingListeners.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/ForwardingScrollStepStrategy.java
c91a011bd95b776da769c27e18cfd5b85a818491 28-Mar-2014 Kevin Jin <kjin@google.com> add PollingListeners.tryFindAndClick, which may often be useful

Change-Id: I76feb10b5b5d275881495df2a7e7d51324cc9b50
rc/com/google/android/droiddriver/helpers/PollingListeners.java
147f9cda75b8f258435c53bf73f058f09ca0134d 27-Mar-2014 Kevin Jin <kjin@google.com> Add comment on why scroll returns true even on null event

Change-Id: If61d43ddcd088eac5260a416553a8d8c6f4b539a
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
da42ba49053dd39b7a19531cb72525d14f285c9b 25-Mar-2014 Kevin Jin <kjin@google.com> Synchronize access to TestRunner.activities and views

Change-Id: I18ff2332147e8fc53dcef6c54cfee39da9b6d207
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/runner/TestRunner.java
ee3341953708d72191689add5beaa11b3ca7ccab 14-Mar-2014 Kevin Jin <kjin@google.com> Overrides InstrumentationTestCase.runTest() to fail fast

when the test is annotated as FlakyTest and we should skip remaining tests
(the failure is fatal).

Change-Id: I5f4840fd697f1e3eb8798860f01b9e392b7ccdca
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
rc/com/google/android/droiddriver/runner/TestRunner.java
1d0f3c02fc3673159f2b6496823fd7b9228b7891 11-Mar-2014 Kevin Jin <kjin@google.com> Wraps calls to UiAutomation API.

Currently supports fail-fast if UiAutomation throws IllegalStateException.

Change-Id: I1e6472d113a63b14d3615ef0084ea00d209f7e63
rc/com/google/android/droiddriver/exceptions/UnrecoverableException.java
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
rc/com/google/android/droiddriver/helpers/UnrecoverableFailure.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationUiDevice.java
eacc6c8c1f05ad4c6d9ca4c612204240b9dc1d4e 07-Mar-2014 Kevin Jin <kjin@google.com> add a time-limited version of runOnMainSync

Change-Id: I40b23d4f6cdbf05fb34d7252f1b98eef9d442a43
rc/com/google/android/droiddriver/base/DroidDriverContext.java
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/runner/TestRunner.java
c819dfe3966cb9917c55894b8c0f456fdb696b09 04-Mar-2014 Jake Slack <jaslack@google.com> We should make sure listeners are called on every poll.

We often set timeouts of 0ms when scrolling. When we do this, we will
not check the listeners because we will timeout if we don't
find the target element. We should make sure the listeners are called so
that we can still dismiss dialogs.

Bug: 13303035
Change-Id: I45d8178b194ba3992c5b5d9aab80542a78bf8b4e
rc/com/google/android/droiddriver/base/DefaultPoller.java
d0703096fc915128dc30b6cc882f798fdc9424ae 27-Feb-2014 Kevin Jin <kjin@google.com> dump hprof if onFailure causes OutOfMemoryError

Change-Id: If582e3815a3f4e303cecdf1319763474823f297e
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
82b6ee7292ed134982416fedb0a10ac2ff310416 25-Feb-2014 Jake Slack <jaslack@google.com> AccessibilityEventScrollStepStrategy needs to be retrieving the last
event in the queue after scrolling.

Change-Id: I27e07dab6f9f004f4ce11d008f3ee973f7f8d277
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
a6749c6913f014416419850a9fb5235a745fdeb8 24-Feb-2014 Kevin Jin <kjin@google.com> fix the hanging when the app is constantly busy (no idle)

The main thread may not enter the idle state when animation is playing, for example, the ProgressBar. Do not call waitForIdleSync in UiAutomationDriver.

Change-Id: If3c355c8aa302a076895fd62a6428874b24f5d39
rc/com/google/android/droiddriver/base/DroidDriverContext.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/scroll/Scrollers.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
39b609194aea07e7f1d8ead084d48d1171198f02 05-Feb-2014 Kevin Jin <kjin@google.com> delete DroidDriver samples to remove dep on actionbarsherlock

add sync on UI thread idle in UiAutomationDriver
refine AccessibilityEventScrollStepStrategy api

Change-Id: I176eb1a40f0a914121c60b887784760ebe354ae4
amples/testapp/.classpath
amples/testapp/.project
amples/testapp/Android.mk
amples/testapp/AndroidManifest.xml
amples/testapp/README.android
amples/testapp/project.properties
amples/testapp/res/drawable-hdpi/ic_action_calendar.png
amples/testapp/res/drawable-hdpi/ic_action_key.png
amples/testapp/res/drawable-hdpi/ic_action_lock.png
amples/testapp/res/drawable-hdpi/ic_action_save.png
amples/testapp/res/drawable-hdpi/ic_action_search.png
amples/testapp/res/drawable-hdpi/ic_action_world.png
amples/testapp/res/drawable-hdpi/ic_launcher.png
amples/testapp/res/drawable-ldpi/ic_action_calendar.png
amples/testapp/res/drawable-ldpi/ic_action_key.png
amples/testapp/res/drawable-ldpi/ic_action_lock.png
amples/testapp/res/drawable-ldpi/ic_action_save.png
amples/testapp/res/drawable-ldpi/ic_action_search.png
amples/testapp/res/drawable-ldpi/ic_action_world.png
amples/testapp/res/drawable-ldpi/ic_launcher.png
amples/testapp/res/drawable-mdpi/ic_action_calendar.png
amples/testapp/res/drawable-mdpi/ic_action_key.png
amples/testapp/res/drawable-mdpi/ic_action_lock.png
amples/testapp/res/drawable-mdpi/ic_action_save.png
amples/testapp/res/drawable-mdpi/ic_action_search.png
amples/testapp/res/drawable-mdpi/ic_action_world.png
amples/testapp/res/drawable-mdpi/ic_launcher.png
amples/testapp/res/drawable-xhdpi/ic_action_calendar.png
amples/testapp/res/drawable-xhdpi/ic_action_key.png
amples/testapp/res/drawable-xhdpi/ic_action_lock.png
amples/testapp/res/drawable-xhdpi/ic_action_save.png
amples/testapp/res/drawable-xhdpi/ic_action_search.png
amples/testapp/res/drawable-xhdpi/ic_action_world.png
amples/testapp/res/drawable-xhdpi/ic_launcher.png
amples/testapp/res/layout/actionbar_activity.xml
amples/testapp/res/layout/display_activity.xml
amples/testapp/res/layout/gesture_activity.xml
amples/testapp/res/layout/list_activity.xml
amples/testapp/res/layout/list_item.xml
amples/testapp/res/layout/menu_activity.xml
amples/testapp/res/layout/popup_window.xml
amples/testapp/res/layout/scroll_activity.xml
amples/testapp/res/layout/send_activity.xml
amples/testapp/res/menu/contextmenu.xml
amples/testapp/res/menu/optionsmenu.xml
amples/testapp/res/menu/popup_menu.xml
amples/testapp/res/menu/popupmenu.xml
amples/testapp/res/values/strings.xml
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/ActionBarActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/DisplayActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/GestureActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/LongListActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/MainActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/MenuActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/ScrollActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/SendActivity.java
amples/testapp/tests/.classpath
amples/testapp/tests/.project
amples/testapp/tests/Android.mk
amples/testapp/tests/AndroidManifest.xml
amples/testapp/tests/proguard-project.txt
amples/testapp/tests/project.properties
amples/testapp/tests/res/.README.txt
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/Default.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseInstrumentation.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseUiAutomation.java
amples/testapp/tests/src/com/google/android/droiddriver/finders/XPathsTest.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
5d6ce8025e73d9f7f1631bfe05cff32b055d1939 03-Feb-2014 Mingyu Wu <mwu@google.com> Add more method for the class and also open up the event variable to be
able to access from inheritted class.

Change-Id: If247d6a8d411ffebdee246e0cd0932c693055b7a
rc/com/google/android/droiddriver/helpers/ScrollerHelper.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
7655a5e140a667493d177b3e19d3ee415e97d43b 13-Dec-2013 Kevin Jin <kjin@google.com> add helpers/PollingListeners
remove reference to newIdentityHashSet so that DroidDriver works with older Guava

Change-Id: Ia7bb1f564c7764f43cfcafa0ad59ce1fa481f3d1
rc/com/google/android/droiddriver/helpers/PollingListeners.java
rc/com/google/android/droiddriver/runner/TestRunner.java
9031ed9b636ccd3b942eefb85dbfae2aed9e4f11 03-Dec-2013 Kevin Jin <kjin@google.com> add ScrollStepStrategy.doScroll for customization
make SwipeAction margin ratios adjustable

Change-Id: I848471d1d72d0e1d7009f64ff242ff281cff7017
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/BaseSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/ScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
5cf5f03c64b65b1f1ecd2140b8d6605ac05b6199 22-Nov-2013 Kevin Jin <kjin@google.com> add driver as a parameter to the ScrollStepStrategy hooks in order to allow
more customization

Change-Id: If50126e82bdeb18511379e6e588c14fa66e28562
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/BaseSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/ScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/StepBasedScroller.java
026e2d0318ee13637adbc71365592705c149c157 21-Nov-2013 Kevin Jin <kjin@google.com> add hooks in ScrollStepStrategy: beginScrolls and endScrolls
A possible usage is the implementations can use the hooks to set/reset internal data

Change-Id: I882faf2a6f35098ef6742d9a61a9351533ab9cf9
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/BaseSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/ScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/StepBasedScroller.java
ef176eeb3b29df478522c46cc100f421365b008e 14-Nov-2013 Kevin Jin <kjin@google.com> warn the brittle SwipeAction.toFling and remove its use in StepBasedScroller
optimize AccessibilityEventScrollStepStrategy to match UiAutomator

Change-Id: Iacac499659ca6d94daf82f5889700234b231e4d9
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/StepBasedScroller.java
8d19bb634c670a49f7a58636a2a535c86b57d538 14-Nov-2013 Kevin Jin <kjin@google.com> adjust fling steps for GingerBread
fix NoSuchMethodError for GingerBread

Change-Id: I4883c8b90a5e6aee6a4392e67f038139edb85fe5
rc/com/google/android/droiddriver/actions/SingleKeyAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TextAction.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
337ca4544bae72b86e92d0cc18fada5dcb685ab4 13-Nov-2013 Kevin Jin <kjin@google.com> fix NPE in ActivityTestCase#scrubClass

Change-Id: I1fd5c48682527fa0fee2b34eea95abc263138b5c
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
rc/com/google/android/droiddriver/helpers/D2ActivityInstrumentationTestCase2.java
d2abd0b28789a4a187343b0485e2b8e3fc9ef7ac 11-Nov-2013 Kevin Jin <kjin@google.com> add VisibleBounds for debugging

Change-Id: Ie8d73605ae7f2527d95f0e10d10b461089431a8d
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/FileUtils.java
o-uiautomator.xsl
c39b04e0e5d3962153cd860d1430857fe625da90 07-Nov-2013 Kevin Jin <kjin@google.com> consolidate XPath code into ByXPath
dumpUiElementTree now includes invisible UiElements

Change-Id: Ib7e1346e4e16dac0a05bb911aec4389483daaf8a
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/scroll/Scrollers.java
rc/com/google/android/droiddriver/scroll/StepBasedScroller.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
9c92f46280cf3943701e75349833c68b584992e2 06-Nov-2013 Kevin Jin <kjin@google.com> introduce AccessibilityEventScrollStepStrategy which is
a simple ScrollStepStrategy for UiAutomation and behaves like UiScrollable.
rename SentinelScroller to StepBasedScroller

Change-Id: I424140817d53c63165a66a5fffb5cae24c47288b
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/helpers/ScrollerHelper.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/AccessibilityEventScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/BaseSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/ScrollStepStrategy.java
rc/com/google/android/droiddriver/scroll/Scrollers.java
rc/com/google/android/droiddriver/scroll/SentinelScroller.java
rc/com/google/android/droiddriver/scroll/SentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StepBasedScroller.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
2131c9b43a72432c5c2ac6636433c12050141221 05-Nov-2013 Kevin Jin <kjin@google.com> Merge "Adjust the screenshot origin if the root view is not at (0,0). Move comments on immutable UiElement attributes to the ctors."
07401c162d1957a497ab08937f1188cc602f29c6 05-Nov-2013 Kevin Jin <kjin@google.com> Adjust the screenshot origin if the root view is not at (0,0).
Move comments on immutable UiElement attributes to the ctors.

Change-Id: I3936c11342511c0d843a5096e954d8f754f8e931
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
eadae5e091cf82f289591a8eb627dedcb6deb8fe 05-Nov-2013 Kevin Jin <kjin@google.com> Merge "Take snapshot of the underlying View or AccessibilityNodeInfo tree. This improves reliability. Add JavaDoc on order of getChildren."
dfc316e1bfb37148c50947c46f5aaed5cb2e708a 30-Oct-2013 Kevin Jin <kjin@google.com> Take snapshot of the underlying View or AccessibilityNodeInfo tree.
This improves reliability.
Add JavaDoc on order of getChildren.

Change-Id: Iec4a4b693ef29eea1e067d538bab0078699e3d50
classpath
ndroid.mk
ibs/guava-13.0.jar
amples/testapp/.classpath
amples/testapp/Android.mk
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/finders/Attribute.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByAttribute.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/RootFinder.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/SentinelScroller.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
3c7ba101381383242924d58c6ad7c7aee35b0777 30-Oct-2013 Kevin Jin <kjin@google.com> Remove deprecated DroidDriverBuilder
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=55866629
rc/com/google/android/droiddriver/DroidDriverBuilder.java
45828d52e6a2d9694eb507b5cafd3b6fcae9c33c 23-Oct-2013 Kevin Jin <kjin@google.com> add helpers: DroidDrivers, BaseDroidDriverTest, UnrecoverableFailure
add By.withChild and By.withDescendant

Change-Id: If739957750074fefa3450903d8b866c62c4390a5
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/Default.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseInstrumentation.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseUiAutomation.java
rc/com/google/android/droiddriver/DroidDriverBuilder.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/helpers/BaseDroidDriverTest.java
rc/com/google/android/droiddriver/helpers/DroidDrivers.java
rc/com/google/android/droiddriver/helpers/UnrecoverableFailure.java
rc/com/google/android/droiddriver/instrumentation/RootFinder.java
rc/com/google/android/droiddriver/runner/TestRunner.java
07faa170442ca86bb21e6076ff3309615be3b9a8 11-Oct-2013 Kevin Jin <kjin@google.com> catch unchecked exceptions in takeScreenshot (mainly OOME)

Change-Id: I7da816c6d4cf570b037ac0dcfb215858640ab1ab
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationUiDevice.java
7c8b54f99e678a1b40b98fc3069217877ec5199c 02-Oct-2013 Kevin Jin <kjin@google.com> adjust steps in SwipeAction for faster execution

Change-Id: Id46e7343f26bd7880e66dd88975688011fb4d126
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/base/BaseDroidDriver.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
a5bb27d69e8501b7c8321b838646d0b8f6fa0d05 05-Sep-2013 Kevin Jin <kjin@google.com> cosmetic changes for JavaDoc and logging for scroll

Change-Id: I5bf1044c51b642d682d4a0b3b4dc18aabe3a12cd
rc/com/google/android/droiddriver/UiDevice.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
e4de29ac873c9e0ffaec34832dcc8b120850d8f7 19-Aug-2013 Kevin Jin <kjin@google.com> add DroidDriver#refreshUiElementTree
This makes the refreshing step explicit, and gives
users finer control.

Change-Id: Ia4b4e9476805a887096bf620d83a522d2892ee59
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/base/BaseDroidDriver.java
rc/com/google/android/droiddriver/base/DefaultPoller.java
b5194043e9f0a1319dc7251f829febab3c76e277 16-Aug-2013 Kevin Jin <kjin@google.com> add methods to Direction classes for symmetry
add optimization to SentinelScroller:
optionally start search from beginning by flinging or KEYCODE_MOVE_HOME
This seems to gain 5% speed

Change-Id: I1b303b209c5a43929314fa070398a52d776ac74a
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/Direction.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/SentinelScroller.java
rc/com/google/android/droiddriver/scroll/SentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
rc/com/google/android/droiddriver/util/Logs.java
0319e7c14a536a11851cc30cfa57241ce90fec11 14-Aug-2013 Kevin Jin <kjin@google.com> Enforce childFinder is relative to parentFinder in SentinelScroller
clarify the terms of child and descendant
add XPaths.withDescendant
some cosmetic changes

Change-Id: Iaf6b7c699ccca5464db7e451d3c11715c18d4c69
amples/testapp/.classpath
amples/testapp/tests/.classpath
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ChainFinder.java
rc/com/google/android/droiddriver/finders/XPaths.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/Scroller.java
rc/com/google/android/droiddriver/scroll/SentinelScroller.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
1edf859ee1da92a5d03289c6398f982679c77049 10-Aug-2013 Kevin Jin <kjin@google.com> extract matches method from MatchFinder:
Instead of inheritance by overriding matches, use composition of
a predicate.

organize imports.

Change-Id: I1aa95cb14822fb27151cda8bdffd61580b49c5e3
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByAttribute.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
6f160bb942de53103e4f4ed54acaafe2da629fcf 10-Aug-2013 Kevin Jin <kjin@google.com> remove getChild and getChildCount in UiElement
wait for sentinel in the corner cases when parent updates slowly

Change-Id: I9bbe36c6566dca8453ec12030d17703790ae9a25
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
29d66eeee5d30f7db747cceeb84defec961b4125 09-Aug-2013 Kevin Jin <kjin@google.com> rename ScrollDirection to scroll.Direction.PhysicalDirection
rename PressKeyAction to SingleKeyAction
rename TypeAction to TextAction

Change-Id: I433e2fbd466143da48ab0b9d6094509560c01eca
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/PressKeyAction.java
rc/com/google/android/droiddriver/actions/ScrollDirection.java
rc/com/google/android/droiddriver/actions/SingleKeyAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TextAction.java
rc/com/google/android/droiddriver/actions/TypeAction.java
rc/com/google/android/droiddriver/base/BaseUiDevice.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/instrumentation/RootFinder.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/Direction.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/Scroller.java
rc/com/google/android/droiddriver/scroll/SentinelScroller.java
rc/com/google/android/droiddriver/scroll/SentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
f50519233078e65a056cff49d7b4989d57c3e750 09-Aug-2013 Kevin Jin <kjin@google.com> merge Screenshotter to UiDevice
rename Abstract* to Base*
move InputInjector to actions subpackage

Change-Id: I3e119b4052bc032f2d09d630da51b38670239da9
rc/com/google/android/droiddriver/InputInjector.java
rc/com/google/android/droiddriver/Screenshotter.java
rc/com/google/android/droiddriver/UiDevice.java
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/actions/InputInjector.java
rc/com/google/android/droiddriver/actions/PressKeyAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TypeAction.java
rc/com/google/android/droiddriver/base/AbstractContext.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/base/BaseDroidDriver.java
rc/com/google/android/droiddriver/base/BaseUiDevice.java
rc/com/google/android/droiddriver/base/BaseUiElement.java
rc/com/google/android/droiddriver/base/DefaultPoller.java
rc/com/google/android/droiddriver/base/DroidDriverContext.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationUiDevice.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationUiDevice.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
rc/com/google/android/droiddriver/util/Events.java
70e34108e0fc19277e642aef3b36b65b8e254899 08-Aug-2013 Kevin Jin <kjin@google.com> add UiDevice for global actions
add UiAutomationDriver#clearAccessibilityNodeInfoCache
to work around an Accessibility bug

Change-Id: I42db1d61944240520cc34f1ccb4537f572adecf9
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/UiDevice.java
rc/com/google/android/droiddriver/actions/KeyAction.java
rc/com/google/android/droiddriver/actions/PressKeyAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TypeAction.java
rc/com/google/android/droiddriver/base/AbstractContext.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/base/BaseUiDevice.java
rc/com/google/android/droiddriver/finders/XPaths.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
21a0001e2426644dd68e6140b5873ebaeafcc3dc 06-Aug-2013 Kevin Jin <kjin@google.com> clear internal data while refreshing root
wait for AccessibilityEvent after injecting events
via UiAutomation

Change-Id: I3d56e07cf2e7912a21de12d1a7bacd4f33e1bc5a
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/InputInjector.java
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/actions/BaseAction.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/actions/KeyAction.java
rc/com/google/android/droiddriver/actions/PressKeyAction.java
rc/com/google/android/droiddriver/actions/ScrollAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TypeAction.java
rc/com/google/android/droiddriver/base/AbstractContext.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
f9c6c5063b38b623679e47d7095cccddb0481319 27-Jul-2013 Kevin Jin <kjin@google.com> add scroll API
clean up Events usage
revise some JavaDoc

Change-Id: Ib67fa6ecea5d7a3ef8325bc4e1778645c46d6741
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/finders/ChainFinder.java
rc/com/google/android/droiddriver/finders/Finder.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/scroll/AbstractSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/Direction.java
rc/com/google/android/droiddriver/scroll/DynamicSentinelStrategy.java
rc/com/google/android/droiddriver/scroll/Scroller.java
rc/com/google/android/droiddriver/scroll/SentinelScroller.java
rc/com/google/android/droiddriver/scroll/SentinelStrategy.java
rc/com/google/android/droiddriver/scroll/StaticSentinelStrategy.java
rc/com/google/android/droiddriver/util/Events.java
e9be092a253dab583e76f7b20a0ac04ea683bcec 24-Jul-2013 Kevin Jin <kjin@google.com> add an xsl to convert DroidDriver dump to uiautomatorviewer format

Change-Id: Icf58c4c2c42f6cdbeb1d61cea325422af147fdad
o-uiautomator.xsl
df8ca0b5f5b6975d351a424db3bc1e8de88fe0fc 23-Jul-2013 Kevin Jin <kjin@google.com> break circular reference between UiElement and dom Element
add FileUtils.getAbsoluteFile

Change-Id: I278edbd60018ba230e966f5ce48cb582a98db44f
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/util/FileUtils.java
0b9344441daed36d371df59ca4735d1e0e008189 18-Jul-2013 Kevin Jin <kjin@google.com> fix memory leak in Contexts UiElement cache
UiElement values need to be WeakReference as well

Change-Id: I31f6e833216154a3d3da7ebabc856d8ce8221631
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
b18bb64ed9513bedf8222e6915abb5164e9108f9 16-Jul-2013 Kevin Jin <kjin@google.com> add ActivityUtils.setRunningActivitySupplier
This is compatible with other potential runners, such as G3ITR

Change-Id: I02379376c9c4a67452cf67cda5be9bc273fbc3c6
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/util/ActivityUtils.java
cc1da1e03a08227d8180cbe3f79271fbab048fc7 12-Jul-2013 Kevin Jin <kjin@google.com> warn the [ab]use of DroidDriver#has(finder, timeoutMillis)

Change-Id: Ic2239d6cdf2292ea06f11596292e38d7c6755af0
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/finders/By.java
ce3d103d2784040f32d1a97b848d58a1c9592a15 12-Jul-2013 Kevin Jin <kjin@google.com> remove versions of check* with custom timeouts

Change-Id: Ic4ac93d5f9694747cb0381673cc8004ad150ea80
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
df778b5b087c324e1078c6ba692d0aff4f940ac9 11-Jul-2013 Kevin Jin <kjin@google.com> add @UseUiAutomation as an explicit version of @MinSdkVersion(18)

Change-Id: Iedc9e44e7636237488136632d8c440bc72d8ff17
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseUiAutomation.java
rc/com/google/android/droiddriver/runner/MinSdkVersion.java
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/runner/UseUiAutomation.java
ffd0f7a9a89c3c19bc5846b23237d96ed8accbfd 11-Jul-2013 Kevin Jin <kjin@google.com> add test for XPaths.quoteXPathLiteral

Change-Id: I2ac3886656519f3ea5ae2968eb15d35fa76d8688
roject.properties
amples/testapp/tests/.classpath
amples/testapp/tests/res/.README.txt
amples/testapp/tests/res/values/donottranslate.xml
amples/testapp/tests/src/com/google/android/droiddriver/finders/XPathsTest.java
rc/com/google/android/droiddriver/DroidDriverBuilder.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/finders/XPaths.java
d88d4ab289d47627418aa500d43b9c11168acba7 11-Jul-2013 Kevin Jin <kjin@google.com> add XPaths.quoteXPathLiteral

Change-Id: I682f2493a49db26f8092ae8bb8c5267f0c58bfc3
rc/com/google/android/droiddriver/finders/XPaths.java
c91cb19438c6ef8ecd794664bf1f879725866bb9 09-Jul-2013 Kevin Jin <kjin@google.com> fix InstrumentationDriver for multiple root views

Change-Id: I50c4c1b10025296b70d8fc5bebcf4bfc12d41417
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
147358b68c8351b10d633bbcba2684dcc08e3302 09-Jul-2013 Anthony Wickham <twickham@google.com> Merge "Fixed ViewElement.getVisibleBounds()"
ad7d747c3cd738e15413040fa15d0c2924753c05 09-Jul-2013 Jiexi Cao <jiexic@google.com> Fixed ViewElement.getVisibleBounds()

Previously, getVisibleBounds was only getting the coordinates of an
element relative to the topmost view, which is not the screen in the
case that there is a pop-up dialog. By using view.getLocationOnScreen,
we can adjust the relative coordinates to apply to the entire screen and
have the driver click on the correct place.

Bug: b/9743953
Change-Id: I51a2f7fc8974fba9d08c660b6e7926eb0e305abb
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
9f554eb6d4d25a0a31be3ab88fb715fc3cee4027 09-Jul-2013 Tony Wickham <twickham@google.com> Added containsAttr() to XPaths.

Change-Id: I8ada6883107d7dbceaf0e9391a683ff498924b36
rc/com/google/android/droiddriver/finders/XPaths.java
b27621ff6e9da190454da80b93bc1a7544904909 04-Jul-2013 Kevin Jin <kjin@google.com> check view.getResources != null in getResourceId

Change-Id: Ib90d4058b6f3b0dca2d3ab922a045e3279eaee19
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
52b875da168081ca17d5532cebfbe78974ecce55 04-Jul-2013 Kevin Jin <kjin@google.com> comment out unsafe check in AbstractUiElement.setText
add toString for Action

Change-Id: Ib97349d1e8bb24853a1ef8856da2fb96152240c0
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/actions/PressKeyAction.java
rc/com/google/android/droiddriver/actions/TypeAction.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
84761db4f87ea7ec566c3aa0e7ef6f2757643186 03-Jul-2013 Kevin Jin <kjin@google.com> FileUtils: setReadable after file creation

Change-Id: I4e317dbe742093658173a7bd2891331fbe7964de
rc/com/google/android/droiddriver/util/FileUtils.java
b75721c8fc51bd5678f5a8d0df9a1e868d69aa12 28-Jun-2013 Kevin Jin <kjin@google.com> expose DroidDriver.find for pollers

Change-Id: Ie9c4bc52e744ccd949cc46a87b94b02ff1a549c9
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
5838b1a067427865c3ec8cc33a5dfa64ba05407f 28-Jun-2013 Kevin Jin <kjin@google.com> wait for RunningActivity in InstrumentationDriver

Change-Id: Ic4cb68fc46cec433a7989187ed64f73e2c5aa6e8
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/util/ActivityUtils.java
9f81086b618594cb080adf33548edd0c999e388e 27-Jun-2013 Kevin Jin <kjin@google.com> add ViewElement#overrideClassName
for consistent results no matter which driver is used

Change-Id: I4f73bb194b2c652645622ba19c880fd539b74918
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
eb4e1921c193bb90eb0122ea7b0fd37cef60e8e1 27-Jun-2013 Kevin Jin <kjin@google.com> remove hack in UiAutomationElement.click:
The problem with Music app is in DrawerLayout impl, not DroidDriver.
Also fixed logging.

Change-Id: I870dc92680708e4f9c862faa0a0618d576a9b6d8
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
7dde4b200c490587409e0301e58261210e7a5896 19-Jun-2013 Tony Wickham <twickham@google.com> Fixed issue with clicking on partially visible elements.

Because UiElement.click() was performed on the center of elements, it didn't
work when the element's center was off screen. To fix this, I added a
getVisibleBounds() method to UiElement, which is implemented by ViewElement
and UiAutomationElement. This method is used in ClickAction to make sure that
the click is performed on the visible portion of the element.

DeviceUtils was added with getDisplayBounds().

Lastly, UiAutomationContext now holds Instrumentation instead of UiAutomation,
which also forced other files to change accordingly.
Change-Id: Ic2fd163a9759a0d95bd413b557976ee8a3d044f9
rc/com/google/android/droiddriver/DroidDriverBuilder.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
022f444db92ed15a90b025626d88b3f351695b9f 25-Jun-2013 Tony Wickham <twickham@google.com> getClassName() doesn't work below API 14; handled more gracefully

Change-Id: I0ff6d68be7ecc4e9f5555a32ed09aa4dd633f236
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
6b3044b3bb260efec4b9c4cfe0fd8920841a6e7d 22-Jun-2013 Kevin Jin <kjin@google.com> fix ViewElement.getClassName: runOnMainSync

Change-Id: Ie13e6f41fc9a8783ed7ee77809b06951f7c0f8e7
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
394b364bfa602c0bbe813229ad099e8075a20c9d 21-Jun-2013 Kevin Jin <kjin@google.com> getClassName returns the class name as seen by AccessibilityService

Change-Id: I520f249680c72e4fa2b752de4bf4013815ff8970
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
49eb778a47b1b7630e5f3ec8d02b7e5bed58f7b9 21-Jun-2013 Kevin Jin <kjin@google.com> ViewElement.isVisible checks isShown in addition to Rect

Change-Id: Ie7e508d9a67629bf871d05887d26b9d3db645c32
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/exceptions/ElementNotVisibleException.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
a22c829b41fd8b7274fcdd5e178d2d0920435e24 21-Jun-2013 Kevin Jin <kjin@google.com> use resources instead of hardcoded String
This way tests will work when the values change,
work in different locales, and fail earlier at compilation
time if the resource ids change.

Change-Id: Ie4b4eb4abc83be187361c1aa69f7f7adbf1c1180
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseUiAutomation.java
e2660726a43b1a68729d736f6ffa0332ab152498 20-Jun-2013 Kevin Jin <kjin@google.com> add takeScreenshot to InstrumentationDriver

Change-Id: I347532ed9f4e4aa59ac045a83ee7b4f25735c251
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/util/ActivityUtils.java
886a46681a7d555ba0d847e7020a38e9c0114313 20-Jun-2013 Tony Wickham <twickham@google.com> Merge "Added getRunningActivity; Precautions in InstrumentationDriver.getRootElement"
115eb39036a7a4e500dc94b57975a5693861f654 18-Jun-2013 Tony Wickham <twickham@google.com> Added getRunningActivity; Precautions in InstrumentationDriver.getRootElement

There is now a ActivityUtils class with a getRunningActivity() method, which
depends on the overridden callActivityOnResume() and callActivityOnPause()
methods in TestRunner to maintain a currentActivity.

InstrumentationDriver.getRootElement now throws an exception if the test
activity isn't started and uses runningActivity.getWindow().getDecorView()
as the root element (used for finding elements).

Change-Id: Ib43ed5b2b8f17bc2dc20f21c24d76afe54fa34cd
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/RootFinder.java
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/util/ActivityUtils.java
707bb4a4567d4691793fdf87de3c6a32046375d9 19-Jun-2013 Jiexi Cao <jiexic@google.com> Added more finding methods to finders/By.java

Added: textContains and contentDescriptionContains (both case-
sensitive) and packageName.

Change-Id: Icd053aa330d6b55a6f9347f579038582db9f41a4
rc/com/google/android/droiddriver/finders/By.java
7576fbbba2bf515908b45293b7156b5bfe088938 06-Jun-2013 Kevin Jin <kjin@google.com> rename Matcher to Finder

Change-Id: Id63cf416b2d548ac676e53f9377e6f7c7dbbbedf
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/exceptions/ElementNotFoundException.java
rc/com/google/android/droiddriver/finders/Attribute.java
rc/com/google/android/droiddriver/finders/By.java
rc/com/google/android/droiddriver/finders/ByAttribute.java
rc/com/google/android/droiddriver/finders/ByXPath.java
rc/com/google/android/droiddriver/finders/ChainFinder.java
rc/com/google/android/droiddriver/finders/Finder.java
rc/com/google/android/droiddriver/finders/MatchFinder.java
rc/com/google/android/droiddriver/finders/MatchStrategy.java
rc/com/google/android/droiddriver/finders/XPaths.java
rc/com/google/android/droiddriver/matchers/Attribute.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/ByAttribute.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/ChainMatcher.java
rc/com/google/android/droiddriver/matchers/ElementMatcher.java
rc/com/google/android/droiddriver/matchers/MatchStrategy.java
rc/com/google/android/droiddriver/matchers/Matcher.java
rc/com/google/android/droiddriver/matchers/XPaths.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
05cca15c6b38881a5f35ba0d06c0ffc3701b1e29 06-Jun-2013 Kevin Jin <kjin@google.com> add PNG as the default screenshot format

Change-Id: I3c38997fed807af02cbd7ea9baac387d83789211
rc/com/google/android/droiddriver/Screenshotter.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/util/FileUtils.java
6a6c19d612923a0350ab46898df513c66bac2d66 04-Jun-2013 Kevin Jin <kjin@google.com> add helper methods to DroidDriver that simply test code:
checkExists, checkGone and their variations w/ ad-hoc timeout

Change-Id: Ie742dcd04b49d044ea93b949b725736ee4ca4fe1
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
985b3bff6691575b23da83c3e7cfd8552b6f4c55 01-Jun-2013 Kevin Jin <kjin@google.com> remove findElement in UiElement
remove DD.getRootElement, rename DD.waitForElement to on

Change-Id: I68eef1b39889c8f1f0677fcbb265cfd9dfdca01f
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/ChainMatcher.java
6316362de61fca700d7d5a455ad5c0ac9717c365 31-May-2013 Kevin Jin <kjin@google.com> add Screenshotter
move dumpDom from UiElement to DroidDriver
uniform toString in AbstractUiElement instead of subclasses

Change-Id: Ic78b812a206e73d23a47c94d9e9fe79a99c23d6c
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/Screenshotter.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/RootFinder.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/ElementMatcher.java
rc/com/google/android/droiddriver/runner/TestRunner.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/FileUtils.java
rc/com/google/android/droiddriver/util/Logs.java
79884ac460f8d357c28091ec3f42fe369964b809 30-May-2013 Kevin Jin <kjin@google.com> move UiElement tree traversal logic to ElementMatcher
Now both Matchers handle traversal internally

Change-Id: I368f2b60ba9e4157b7ecbef2e8f64231778a53d0
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/exceptions/ActionException.java
rc/com/google/android/droiddriver/exceptions/DroidDriverException.java
rc/com/google/android/droiddriver/exceptions/ElementNotFoundException.java
rc/com/google/android/droiddriver/exceptions/ElementNotVisibleException.java
rc/com/google/android/droiddriver/exceptions/TimeoutException.java
rc/com/google/android/droiddriver/matchers/ByAttribute.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/ElementMatcher.java
rc/com/google/android/droiddriver/matchers/Matcher.java
dc5bb6b7cd5111a5c082ef7bc6e46a95d17de8e5 29-May-2013 Kevin Jin <kjin@google.com> change type of millis int->long

Change-Id: Ibcd6be9ea429f665a653f3aa1b3c6a27d3d84766
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
rc/com/google/android/droiddriver/util/Logs.java
0858f7292b7e7f32c25662d853c9d8ed8db1403f 28-May-2013 Kevin Jin <kjin@google.com> rename getRect -> getBounds
This follows uiautomatorviewer convention, making it
easier for DD users to use that tool.
Skip invisible children -- this is critical; e.g. ViewPager
keeps all invisible pages in memory. If users use
uiautomatorviewer to define matchers, the invisible nodes
may match surprisingly.

Change-Id: Idc4298bf18931978e2e9fd3c27e273f0e49c2f1f
amples/testapp/tests/.classpath
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/matchers/Attribute.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/Logs.java
c1a957dbec671deb711d2f69cf326dc97f339f66 22-May-2013 Kevin Jin <kjin@google.com> sync with UiAutomation.executeAndWaitForEvent
This solves the clicking DrawerLayout problem, but we need to
find the exact cause to solve the general problem.
Also add logging for Events

Change-Id: I0cba140021b676cb1d13c3fe3d319c2cca535ccd
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/Events.java
7b1b7d4561b60f8b3bcd7c2d592454dd7bfef619 21-May-2013 Kevin Jin <kjin@google.com> clean up ConditionCheckers
clearer logging for findElement

Change-Id: I53f4d13f6a013b97368d3f7351cffa45c7d0efe6
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/exceptions/UnsatisfiedConditionException.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/util/ConditionCheckers.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
c96f83c2e617f9f9c4a270258c10c5b46bd9f04e 20-May-2013 Kevin Jin <kjin@google.com> wait longer for UiAutomation.getRootInActiveWindow

Change-Id: I7bb27b0f38b0bad6532eeb2470cfaeb8e6ede63f
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
26cfc3d4d3d8381c573179e606d519b3d8a1ce42 20-May-2013 Kevin Jin <kjin@google.com> Merge "add NOP_LISTENER_REMOVER and some Convenience methods"
da72ee869711513a6eed31b17caa1c9d1fb4c053 20-May-2013 Kevin Jin <kjin@google.com> Merge "add Eclipse formatter spec for droiddriver"
5c0ca5383d9a90b6d5e9c246f387e6261fed6211 17-May-2013 Kevin Jin <kjin@google.com> add NOP_LISTENER_REMOVER and some Convenience methods

Change-Id: I0b2f8e3876d3a3bf2111f4e44ef647a84a5bbbcd
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/XPaths.java
c9282aae22ba011bb8b49ff5796d18d65aac3cd6 20-May-2013 Kevin Jin <kjin@google.com> Merge "don't put guava.jar in droiddriver.jar If put together and the app under test use a different version of guava, it may fail with IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation"
f5d3409bac426a4d0f2292b390639f98fba41f9b 18-May-2013 Kevin Jin <kjin@google.com> add Eclipse formatter spec for droiddriver

Change-Id: I0765ed4e6399ef63604201504f2d76acb566f693
settings/org.eclipse.jdt.core.prefs
settings/org.eclipse.jdt.ui.prefs
3d2246f8b5b53fb4804eabb77c717c07f1119816 18-May-2013 Kevin Jin <kjin@google.com> don't put guava.jar in droiddriver.jar
If put together and the app under test use a different
version of guava, it may fail with IllegalAccessError:
Class ref in pre-verified class resolved to unexpected implementation

Change-Id: I628a8c8425114f0840de8bfc57f60ae80fdd1146
ndroid.mk
0d7b67b43f83536708a6ae0330e739744049a48e 15-May-2013 Kevin Jin <kjin@google.com> expose getChild and getParent
remove Logs.wrap

Change-Id: I4d6d58b58fdb70fee168d1a357767683fae11490
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/Logs.java
fc21930b0a5cc598f59c0c893274e4ce33abd235 14-May-2013 Kevin Jin <kjin@google.com> make Matcher a marker interface
distinguish ElementMatcher and ByXPath matchers

Change-Id: I61709ae204a06867c011319a2db1f2a2de61d1e9
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/ByAttribute.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/ElementMatcher.java
rc/com/google/android/droiddriver/matchers/Matcher.java
cd9468bc18d0e8250fc495f1ec656667eb206526 14-May-2013 Kevin Jin <kjin@google.com> add XPaths for convenience methods

Change-Id: If35c26e9d2f28b2f8e61452113b963113e2b7ad4
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/matchers/Attribute.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/XPaths.java
4733c7f8e8b5258f4b09004b7a56204f8f28be4c 13-May-2013 Kevin Jin <kjin@google.com> add By.attribute and OBJECT_EQUALS

Change-Id: Ieb6cec608f8f41e9f3b4a7bb9e077cd9150d63b5
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/ByAttribute.java
rc/com/google/android/droiddriver/matchers/MatchStrategy.java
rc/com/google/android/droiddriver/matchers/Matcher.java
2acc13e041cb065f90ab7882e095f05cb275dc68 11-May-2013 Kevin Jin <kjin@google.com> abstract UiElement getters into get(Attribute)
consolidate ad-hoc Matchers into generic ByAttribute

Change-Id: I01dd88ac095d7ccc72700bd7f69c5e905c0c063b
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/matchers/Attribute.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/ByAttribute.java
rc/com/google/android/droiddriver/matchers/ByClassName.java
rc/com/google/android/droiddriver/matchers/ByContentDescription.java
rc/com/google/android/droiddriver/matchers/ByResourceId.java
rc/com/google/android/droiddriver/matchers/ByText.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/MatchStrategy.java
rc/com/google/android/droiddriver/matchers/Matcher.java
f9c2a591497874769b87bf492a0666cf853e0ae5 09-May-2013 Kevin Jin <kjin@google.com> add longClick and doubleClick
add hasElement
add By.allOf and anyOf

Change-Id: I2456c3291d4a4398a413603830f809efe4a429cb
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/Events.java
8e4d4bb6a6c2b2e4a470c0804833de2a92f154d5 07-May-2013 Kevin Jin <kjin@google.com> fix build after moving By

Change-Id: I8dcf002b7f8852a7694ad58e7ca04162466327af
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
c134b29628280a680fdf2696480166de56074b1e 06-May-2013 Kevin Jin <kjin@google.com> move Matcher to subpackage matchers
split individual matchers into separate files
create Attribute.java for easily building XPath

Change-Id: I370a0904eccd469624e38b6fc754a1f8e338486d
rc/com/google/android/droiddriver/By.java
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/Matcher.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/matchers/Attribute.java
rc/com/google/android/droiddriver/matchers/By.java
rc/com/google/android/droiddriver/matchers/ByClassName.java
rc/com/google/android/droiddriver/matchers/ByContentDescription.java
rc/com/google/android/droiddriver/matchers/ByResourceId.java
rc/com/google/android/droiddriver/matchers/ByText.java
rc/com/google/android/droiddriver/matchers/ByXPath.java
rc/com/google/android/droiddriver/matchers/Matcher.java
rc/com/google/android/droiddriver/util/ConditionCheckers.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
0337ecab63fbdf2775eb8d1d86bb96d59a8f9712 30-Mar-2013 Kevin Jin <kjin@google.com> if an attribute is boolean, add it only if true
log dom xml to file because logcat has limit
cache UiElements
improve Logs

Change-Id: Ib505046f9ddfe474d3ee30ad20fdbafcf5b73c2a
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/util/Logs.java
07704975f91b729d9be3a13d6a2d3dfdbbd7d426 29-Mar-2013 Kevin Jin <kjin@google.com> add all attributes to UiElement

Change-Id: I900747906851dd66c705b7cd0f4a9c65d4788cec
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
d22a8be99552b1cddfe80afe080f61c5c06d93af 27-Mar-2013 Kevin Jin <kjin@google.com> Merge "add MinSdkVersion to support filtering by build version fix DroidDriverBuilder for dev build -- mr2 build has sdk=17"
0c2c0d1f1d7e1198a4e513f8b8ac2149518844ab 26-Mar-2013 Kevin Jin <kjin@google.com> add MinSdkVersion to support filtering by build version
fix DroidDriverBuilder for dev build -- mr2 build has sdk=17

Change-Id: I96546864ef8c34fb4bd9b5a88e650c0513652599
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseUiAutomation.java
rc/com/google/android/droiddriver/DroidDriverBuilder.java
rc/com/google/android/droiddriver/runner/MinSdkVersion.java
rc/com/google/android/droiddriver/runner/TestRunner.java
cce3dd4492cf04a89154e36fda1909ab4e35213a 26-Mar-2013 Thanh Le <thanhle@google.com> Add a PressKeyAction to press keys on the device.

It's a bit weird since it doesn't require the UiElement context, so maybe we
need to change the API. Also pressing home with the instrumentation
api doesn't work.

Change-Id: Id229aa3118739d7b923364b98ef41f636c5acb85
rc/com/google/android/droiddriver/actions/PressKeyAction.java
rc/com/google/android/droiddriver/util/Events.java
1c6657a62e4023b0098c7a1fc2a039c637dad6cd 25-Mar-2013 Kevin Jin <kjin@google.com> add Builder for auto-piloting DroidDriver creation

Change-Id: Ic525c8d4bfdc039a3b188ca89b0b79121f869e3d
amples/testapp/tests/.classpath
amples/testapp/tests/Android.mk
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/InstrumentationSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/UiAutomationSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/Default.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseInstrumentation.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/sendactivity/UseUiAutomation.java
rc/com/google/android/droiddriver/DroidDriverBuilder.java
2c02f5ca9b23e5173705fde2c3a7c498da1609ee 21-Mar-2013 Kevin Jin <kjin@google.com> combine guava.jar in droiddriver.jar
to make it work with apps that don't use guava
Also make the tests installable on API16 devices

Change-Id: I640e799dd75748e03081a4ec2ae456e51f283ed0
ndroid.mk
amples/testapp/tests/AndroidManifest.xml
a6c69788f9ff3360c02b9362bb65c136fe0b9a99 20-Mar-2013 Kevin Jin <kjin@google.com> rename Loggable -> LogDesired, and remove it from interface

Change-Id: I230d46224ad82fba85536bd6f48f785d2e089220
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/util/Logs.java
7add67b949163f981b785a8c23de89d6b17fff93 20-Mar-2013 Kevin Jin <kjin@google.com> add TestRunner which extends InstrumentationTestRunner
This is the minimal hack to clean all created activities

Change-Id: Id9b8a972fa4cde5649de5016ca10c17041a3c5d2
amples/testapp/tests/AndroidManifest.xml
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/AbstractSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/InstrumentationSendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/UiAutomationSendActivityTest.java
rc/com/google/android/droiddriver/runner/TestRunner.java
7b2b76255593f0ecfbe2d7f996712fefb391dfed 18-Mar-2013 Kevin Jin <kjin@google.com> support xpath
Build a virtual DOM tree that maps UiAutomationElement or
InstrumentationElement tree, respectively. Then use XPath
on the DOM tree.
TODO: filter insignificant nodes to make use of uiautomatorviewer
TODO: add all attrs

Change-Id: I2f9e289b77350f1e920a492ce438ebfd67882058
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
rc/com/google/android/droiddriver/By.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/Logs.java
acde362144222864329ad64d7e746b717103c806 16-Mar-2013 Kevin Jin <kjin@google.com> fix run-time error: newProxy enforce interface

Change-Id: I8d5c6798fc90754553b90c4fab6aa51a75ce8334
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/Logs.java
52107c27b6b0f2b0fdfec995784c73746bb95c4e 15-Mar-2013 Kevin Jin <kjin@google.com> introduce *Context to manage instances and dependency

Change-Id: Ice759c2791a41df1b80dd06b6a339833cb4a7979
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationContext.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationInputInjector.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationContext.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDrivers.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationInputInjector.java
rc/com/google/android/droiddriver/util/Logs.java
cddda72410c992a12db61cef26713b498e31fea4 14-Mar-2013 Thanh Le <thanhle@google.com> Add an instrumentation driver.

Move common code out of UiautomationDriver to AbstractDriver.

Change-Id: Icf749b76d82a4bc10ea00f4668e251adcc652ba6
rc/com/google/android/droiddriver/base/AbstractDroidDriver.java
rc/com/google/android/droiddriver/base/AbstractUiElement.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationDriver.java
rc/com/google/android/droiddriver/instrumentation/InstrumentationInputInjector.java
rc/com/google/android/droiddriver/instrumentation/RootFinder.java
rc/com/google/android/droiddriver/instrumentation/ViewElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/util/TextUtils.java
581310c13d5763ef2de991f36a00ce46203235d4 12-Mar-2013 Kevin Jin <kjin@google.com> convert EXISTS_CHECKER and GONE_CHECKER into constants

Change-Id: If647639671f167314d0c1feb029364434d18e58e
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/util/ConditionCheckers.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
1194ec356a16f3c6dcf408289e36e42c149d6dc8 12-Mar-2013 Kevin Jin <kjin@google.com> rename uidriver to droiddriver

Change-Id: I1768103c3be816f96cce3350051db109dd77978d
project
ndroid.mk
amples/testapp/Android.mk
amples/testapp/tests/.classpath
amples/testapp/tests/Android.mk
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
rc/com/google/android/droiddriver/By.java
rc/com/google/android/droiddriver/DroidDriver.java
rc/com/google/android/droiddriver/InputInjector.java
rc/com/google/android/droiddriver/Matcher.java
rc/com/google/android/droiddriver/Poller.java
rc/com/google/android/droiddriver/UiElement.java
rc/com/google/android/droiddriver/actions/Action.java
rc/com/google/android/droiddriver/actions/ClickAction.java
rc/com/google/android/droiddriver/actions/ScrollDirection.java
rc/com/google/android/droiddriver/actions/SwipeAction.java
rc/com/google/android/droiddriver/actions/TypeAction.java
rc/com/google/android/droiddriver/exceptions/ActionException.java
rc/com/google/android/droiddriver/exceptions/DroidDriverException.java
rc/com/google/android/droiddriver/exceptions/ElementNotFoundException.java
rc/com/google/android/droiddriver/exceptions/ElementNotVisibleException.java
rc/com/google/android/droiddriver/exceptions/TimeoutException.java
rc/com/google/android/droiddriver/exceptions/UnsatisfiedConditionException.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationDrivers.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationElement.java
rc/com/google/android/droiddriver/uiautomation/UiAutomationInputInjector.java
rc/com/google/android/droiddriver/util/DefaultPoller.java
rc/com/google/android/droiddriver/util/Events.java
rc/com/google/android/droiddriver/util/Logs.java
rc/com/google/android/uidriver/By.java
rc/com/google/android/uidriver/InputInjector.java
rc/com/google/android/uidriver/Matcher.java
rc/com/google/android/uidriver/Poller.java
rc/com/google/android/uidriver/UiDriver.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/actions/Action.java
rc/com/google/android/uidriver/actions/ClickAction.java
rc/com/google/android/uidriver/actions/ScrollDirection.java
rc/com/google/android/uidriver/actions/SwipeAction.java
rc/com/google/android/uidriver/actions/TypeAction.java
rc/com/google/android/uidriver/exceptions/ActionException.java
rc/com/google/android/uidriver/exceptions/ElementNotFoundException.java
rc/com/google/android/uidriver/exceptions/ElementNotVisibleException.java
rc/com/google/android/uidriver/exceptions/TimeoutException.java
rc/com/google/android/uidriver/exceptions/UiDriverException.java
rc/com/google/android/uidriver/exceptions/UnsatisfiedConditionException.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDrivers.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
rc/com/google/android/uidriver/uiautomation/UiAutomationInputInjector.java
rc/com/google/android/uidriver/util/DefaultPoller.java
rc/com/google/android/uidriver/util/Events.java
rc/com/google/android/uidriver/util/Logs.java
39f9784bdf3d4663263c344139454736af13e111 12-Mar-2013 Kevin Jin <kjin@google.com> add Poller and waitUntilGone

Change-Id: I9be9a6d14d79065e0e6de93145e2004e367cbaaa
rc/com/google/android/uidriver/Poller.java
rc/com/google/android/uidriver/UiDriver.java
rc/com/google/android/uidriver/exceptions/ElementNotFoundException.java
rc/com/google/android/uidriver/exceptions/UiDriverException.java
rc/com/google/android/uidriver/exceptions/UnsatisfiedConditionException.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/util/DefaultPoller.java
646e91a139ecd447d23c7d604aed96ee306ce7ed 11-Mar-2013 Kevin Jin <kjin@google.com> Revert "Revert "revise waitForElement Node tree may change during waitForElement, so remove it from UiElement, which now has only findElement. move Events and ScrollDirection into sub packages. add optional tag for testapp""

This reverts commit 5582758679ebd6225d0c799433f49c87304019e0.

Also fix the failure in f849a1f84ddfd1ab94f7de37c3653d5cad968eca

Change-Id: I3c3c5de1fdc26ee03755be81bce3346afcec2b67
amples/testapp/Android.mk
amples/testapp/tests/Android.mk
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
rc/com/google/android/uidriver/Events.java
rc/com/google/android/uidriver/ScrollDirection.java
rc/com/google/android/uidriver/SearchContext.java
rc/com/google/android/uidriver/UiDriver.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/actions/ClickAction.java
rc/com/google/android/uidriver/actions/ScrollDirection.java
rc/com/google/android/uidriver/actions/SwipeAction.java
rc/com/google/android/uidriver/exceptions/ElementNotFoundException.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
rc/com/google/android/uidriver/util/Events.java
rc/com/google/android/uidriver/util/Logs.java
5582758679ebd6225d0c799433f49c87304019e0 10-Mar-2013 Guang Zhu <guangzhu@google.com> Revert "revise waitForElement Node tree may change during waitForElement, so remove it from UiElement, which now has only findElement. move Events and ScrollDirection into sub packages. add optional tag for testapp"

Fix userdebug build

This reverts commit f849a1f84ddfd1ab94f7de37c3653d5cad968eca

Change-Id: I41219a187987fb73b648eb13d18ac46db52dd2c8
amples/testapp/Android.mk
amples/testapp/tests/Android.mk
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
rc/com/google/android/uidriver/Events.java
rc/com/google/android/uidriver/ScrollDirection.java
rc/com/google/android/uidriver/SearchContext.java
rc/com/google/android/uidriver/UiDriver.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/actions/ClickAction.java
rc/com/google/android/uidriver/actions/ScrollDirection.java
rc/com/google/android/uidriver/actions/SwipeAction.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
rc/com/google/android/uidriver/util/Events.java
rc/com/google/android/uidriver/util/Logs.java
f849a1f84ddfd1ab94f7de37c3653d5cad968eca 08-Mar-2013 Kevin Jin <kjin@google.com> revise waitForElement
Node tree may change during waitForElement, so remove it
from UiElement, which now has only findElement.
move Events and ScrollDirection into sub packages.
add optional tag for testapp

Change-Id: Ic4d703d30a75613d7ad608f64328840ffc0563d6
amples/testapp/Android.mk
amples/testapp/tests/Android.mk
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
rc/com/google/android/uidriver/Events.java
rc/com/google/android/uidriver/ScrollDirection.java
rc/com/google/android/uidriver/SearchContext.java
rc/com/google/android/uidriver/UiDriver.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/actions/ClickAction.java
rc/com/google/android/uidriver/actions/ScrollDirection.java
rc/com/google/android/uidriver/actions/SwipeAction.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
rc/com/google/android/uidriver/util/Events.java
rc/com/google/android/uidriver/util/Logs.java
33cf2cd212eaeb5cd519c109d11f72919b1e249b 08-Mar-2013 Kevin Jin <kjin@google.com> add first testapp test using uidriver

Change-Id: I161774c96a78c95671383650c42fe4da39764dca
amples/testapp/Android.mk
amples/testapp/tests/.classpath
amples/testapp/tests/.project
amples/testapp/tests/Android.mk
amples/testapp/tests/AndroidManifest.xml
amples/testapp/tests/proguard-project.txt
amples/testapp/tests/project.properties
amples/testapp/tests/res/values/donottranslate.xml
amples/testapp/tests/src/com/google/android/apps/common/testing/ui/testapp/SendActivityTest.java
1f4047e3512a14f419dd06f1dbfd6ccb8e3e1323 07-Mar-2013 Kevin Jin <kjin@google.com> add Eclipse files for testapp
ActionBarActivity has error finding style:
R.style.Theme_Sherlock
because Eclipse does not support multiple res folders.
We may add Eclipse files to external/actionbarsherlock
to make it a library project. But for now I think we can
live with the one error since we don't use Eclipse to build apk.

Change-Id: I14333aefab9829cb240b85af2a4b74e97513b1a9
amples/testapp/.classpath
amples/testapp/.project
b8a1c608d3095adfbac872b8c620ca5ab9206abd 07-Mar-2013 Kevin Jin <kjin@google.com> add google3/java/com/google/android/apps/common/testing/ui/testapp

To build:
1) under $TOP/external run
$ git clone https://googleplex-android.googlesource.com/platform/external/actionbarsherlock
This is needed because it's not in master repo manifest
2) tapas uidriver.samples.testapp
3) m -j8

Change-Id: I1d8941abcd354644b5ca25732e728fe9e0c4fb2e
ndroid.mk
amples/testapp/Android.mk
amples/testapp/AndroidManifest.xml
amples/testapp/README.android
amples/testapp/project.properties
amples/testapp/res/drawable-hdpi/ic_action_calendar.png
amples/testapp/res/drawable-hdpi/ic_action_key.png
amples/testapp/res/drawable-hdpi/ic_action_lock.png
amples/testapp/res/drawable-hdpi/ic_action_save.png
amples/testapp/res/drawable-hdpi/ic_action_search.png
amples/testapp/res/drawable-hdpi/ic_action_world.png
amples/testapp/res/drawable-hdpi/ic_launcher.png
amples/testapp/res/drawable-ldpi/ic_action_calendar.png
amples/testapp/res/drawable-ldpi/ic_action_key.png
amples/testapp/res/drawable-ldpi/ic_action_lock.png
amples/testapp/res/drawable-ldpi/ic_action_save.png
amples/testapp/res/drawable-ldpi/ic_action_search.png
amples/testapp/res/drawable-ldpi/ic_action_world.png
amples/testapp/res/drawable-ldpi/ic_launcher.png
amples/testapp/res/drawable-mdpi/ic_action_calendar.png
amples/testapp/res/drawable-mdpi/ic_action_key.png
amples/testapp/res/drawable-mdpi/ic_action_lock.png
amples/testapp/res/drawable-mdpi/ic_action_save.png
amples/testapp/res/drawable-mdpi/ic_action_search.png
amples/testapp/res/drawable-mdpi/ic_action_world.png
amples/testapp/res/drawable-mdpi/ic_launcher.png
amples/testapp/res/drawable-xhdpi/ic_action_calendar.png
amples/testapp/res/drawable-xhdpi/ic_action_key.png
amples/testapp/res/drawable-xhdpi/ic_action_lock.png
amples/testapp/res/drawable-xhdpi/ic_action_save.png
amples/testapp/res/drawable-xhdpi/ic_action_search.png
amples/testapp/res/drawable-xhdpi/ic_action_world.png
amples/testapp/res/drawable-xhdpi/ic_launcher.png
amples/testapp/res/layout/actionbar_activity.xml
amples/testapp/res/layout/display_activity.xml
amples/testapp/res/layout/gesture_activity.xml
amples/testapp/res/layout/list_activity.xml
amples/testapp/res/layout/list_item.xml
amples/testapp/res/layout/menu_activity.xml
amples/testapp/res/layout/popup_window.xml
amples/testapp/res/layout/scroll_activity.xml
amples/testapp/res/layout/send_activity.xml
amples/testapp/res/menu/contextmenu.xml
amples/testapp/res/menu/optionsmenu.xml
amples/testapp/res/menu/popup_menu.xml
amples/testapp/res/menu/popupmenu.xml
amples/testapp/res/values/strings.xml
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/ActionBarActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/DisplayActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/GestureActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/LongListActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/MainActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/MenuActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/ScrollActivity.java
amples/testapp/src/com/google/android/apps/common/testing/ui/testapp/SendActivity.java
c1d7e4c7a7c0c4bb1e4c796ca717de9646a0081c 07-Mar-2013 Kevin Jin <kjin@google.com> update Android.mk and Eclipse files

Change-Id: I9b3f91002670e22204808d8370db0db8abb7f53b
classpath
gitignore
project
ndroid.mk
idriver/.classpath
idriver/.project
6d4ff9b2d85642c75cd8cc28463811a50d247ade 07-Mar-2013 Chad Jones <chadj@google.com> Merge uidriver from platform/external/robotium to
8e610ed585685c55e2cfd010b4233eafc7d568c2 06-Mar-2013 Thanh Le <thanhle@google.com> Add a new Action interface and concrete implementations.

Implemented existing actions such as click, setText, and scroll as Action.
This allows users to execute any Action they want to define including
complex gestures. UiElement now expose a perform(Action) method to do this.

Also got rid of Interactions class, and created an InputInjector class.
It's role is too just inject the events into the system.

Change-Id: I6602bc333e19ccdaee3d7a5f2af3f8a0c94f518c
rc/com/google/android/uidriver/InputInjector.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/actions/Action.java
rc/com/google/android/uidriver/actions/ClickAction.java
rc/com/google/android/uidriver/actions/SwipeAction.java
rc/com/google/android/uidriver/actions/TypeAction.java
rc/com/google/android/uidriver/exceptions/ActionException.java
rc/com/google/android/uidriver/uiautomation/Interactions.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
rc/com/google/android/uidriver/uiautomation/UiAutomationInputInjector.java
56d44e4192de3cfbd1a84a57377a3ae4c716c15b 05-Mar-2013 Kevin Jin <kjin@google.com> add Logs utility
add UiAutomationDrivers helper: first to remove "new"

Change-Id: I0b6bcc243750cc0a01e9d5c6e1fafcfb47e2057e
rc/com/google/android/uidriver/Matcher.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDrivers.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
rc/com/google/android/uidriver/util/Logs.java
idriver/.classpath
3635e09c05fad872a1cb575ab89fbef8af183c41 06-Mar-2013 Chad Jones <chadj@google.com> Initial empty repository
f8c31d4e42704ec9f10e05cea86cbcbe56f1041e 01-Mar-2013 Thanh Le <thanhle@google.com> Change scroll to return a boolean.

The boolean will indicate if the scrollable element can be scrolled
further. Change Interactions to listen to accessibility events to
be able to check the scroll indices.

Change-Id: I23d514e060323e30f980641b1f39831e745f4dca
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/uiautomation/Interactions.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
544e68a6af3ef73316b9994bb7a63790c19415b9 01-Mar-2013 Thanh Le <thanhle@google.com> Add new scroll method, and new matcher for by classname.

The scroll method will take an enum dictating the direction the user wants to
scroll. I think it will read more intuitive in cases where you are
dismissing cards by swiping left or right instead of saying scrollForward()
or scrollBackwards().

Change-Id: Ia9365c33269b56e92aa98a41a93f15745f20363f
rc/com/google/android/uidriver/By.java
rc/com/google/android/uidriver/Events.java
rc/com/google/android/uidriver/ScrollDirection.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/uiautomation/Interactions.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
a139d6e587c8b380be518f20779833541bb8fa5f 28-Feb-2013 Thanh Le <thanhle@google.com> Add ElementNotVisibleException.

This exception is thrown when the element is found, but not visible to the
user, so cannot be interacted with such as clicking.

Change-Id: I7a93056a0455a59ae6990e4f0ee8b26696b821e8
rc/com/google/android/uidriver/By.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/exceptions/ElementNotVisibleException.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
31692a4134ef82a4144d25980c0c5f14bbf1bfad 28-Feb-2013 Thanh Le <thanhle@google.com> Add new method waitForElement in SearchContext.

This method will poll and wait for an element to exist before returning.
If element is not found, a TimeoutException will be thrown.

Change-Id: I5a31bf12cc1881c6a905d127362de8e4183fdb48
rc/com/google/android/uidriver/By.java
rc/com/google/android/uidriver/Events.java
rc/com/google/android/uidriver/SearchContext.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/exceptions/TimeoutException.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
idriver/.classpath
9a6b69e1c7f54f98872a9e3fdb4d700e6fc2603a 27-Feb-2013 Thanh Le <thanhle@google.com> Merge "Add find by content description and setText to uidriver"
a793befd4eb754943dd93aa7178606f1c6170824 26-Feb-2013 Thanh Le <thanhle@google.com> Add find by content description and setText to uidriver

UiElement now supports two new operations getContentDesc and setText
setText does not currently clear any existing text. This might change
in the future.

Change-Id: I0f2cf3a7be206e3d3334c9256f5fe0e841d38522
rc/com/google/android/uidriver/By.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/uiautomation/Interactions.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
5e38af90723389b0c2f0e62428216604a148c8c8 26-Feb-2013 Kevin Jin <kjin@google.com> make "make uidriver" work

Change-Id: Ib29b2bf451a5c8c02a4f13cb38de0546029ea973
ndroid.mk
ibs/android-support-v4.jar
57e46577852ffa1dde4662f6018f7fbcfacb6148 22-Feb-2013 Thanh Le <thanhle@google.com> First iteration of UiDriver.

This is a API 18 UiAutomation based UiDriver. It implements very
rudimentary node finding by text and clicking.

Change-Id: Ia5fb58f69ba29b3975976b79c789178abd8aa6ab
ndroid.mk
ibs/android-support-v4.jar
ibs/guava-13.0.jar
roject.properties
rc/com/google/android/uidriver/By.java
rc/com/google/android/uidriver/Events.java
rc/com/google/android/uidriver/Matcher.java
rc/com/google/android/uidriver/SearchContext.java
rc/com/google/android/uidriver/UiDriver.java
rc/com/google/android/uidriver/UiElement.java
rc/com/google/android/uidriver/exceptions/ElementNotFoundException.java
rc/com/google/android/uidriver/exceptions/UiDriverException.java
rc/com/google/android/uidriver/uiautomation/Interactions.java
rc/com/google/android/uidriver/uiautomation/UiAutomationDriver.java
rc/com/google/android/uidriver/uiautomation/UiAutomationElement.java
idriver/.classpath
idriver/.project
0ba5cb4b542aac9b0fe2c1422208603472d6563b 27-Jul-2012 Chad Jones <chadj@google.com> Initial empty repository