Commit Graph

20 Commits

Author SHA1 Message Date
quddusc
e8df6f4d53 docs: Fixed typo in InstrumentationTestRunner page.
Bug: 11386360

Change-Id: I7626fe6fe1a22e223a8929ed3e5178c8df8966c9
2014-01-14 12:47:34 -08:00
Svetoslav
3a34d17412 Fixing the build
Change-Id: Ief7654775307c829a60e65217ae821aa6801303c
2013-01-28 19:55:35 -08:00
Svetoslav Ganov
80943d8daa Adding UI test automation APIs.
This change adds APIs support for implementing UI tests. Such tests do
not rely on internal application structure and can span across application
boundaries. UI automation APIs are encapsulated in the UiAutomation object
that is provided by an Instrumentation object. It is initialized by the
system and can be used for both introspecting the screen and performing
interactions simulating a user. UI test are normal instrumentation tests
and are executed on the device.

UiAutomation uses the accessibility APIs to introspect the screen and
a special delegate object to perform privileged operations such as
injecting input events. Since instrumentation tests are invoked by a shell
command, the shell program launching the tests creates a delegate object and
passes it as an argument to started instrumentation. This delegate
allows the APK that runs the tests to access some privileged operations
protected by a signature level permissions which are explicitly granted
to the shell user.

The UiAutomation object also supports running tests in the legacy way
where the tests are run as a Java shell program. This enables existing
UiAutomator tests to keep working while the new ones should be implemented
using the new APIs. The UiAutomation object exposes lower level APIs which
allow simulation of arbitrary user interactions and writing complete UI test
cases. Clients, such as UiAutomator, are encouraged to implement higher-
level APIs which minimize development effort and can be used as a helper
library by the test developer.

The benefit of this change is decoupling UiAutomator from the system
since the former was calling hidden APIs which required that it is
bundled in the system image. This prevented UiAutomator from being
evolved separately from the system. Also UiAutomator was creating
additional API surface in the system image. Another benefit of the new
design is that now test cases have access to a context and can use
public platform APIs in addition to the UiAutomator ones. Further,
third-parties can develop their own higher level test APIs on top
of the lower level ones exposes by UiAutomation.

bug:8028258

Also this change adds the fully qualified resource name of the view's
id in the emitted AccessibilityNodeInfo if a special flag is set while
configuring the accessibility service. Also added is API for looking
up node infos by this id. The id resource name is relatively more stable
compared to the generaed id number which may change from one build to
another. This API facilitate reuing the already defined ids for UI
automation.

bug:7678973

Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
2013-01-22 17:56:53 -08:00
Brett Chabot
41e173d4cb Remove erroneous override of package-private method.
Change-Id: I8d473c1eb32f2513d01b3f7f14f0001286a6a9ca
2012-10-24 14:51:21 -07:00
David Hu
0df0ed5814 Merge "BandwidthTestRunner" 2012-01-05 14:39:45 -08:00
Joe Fernandez
3aef8e1d1b docs: Add developer guide cross-references, Project ACRE, round 4
Change-Id: I1b43414aaec8ea217b39a0d780c80a25409d0991
2011-12-22 15:08:23 -08:00
David Hu
8cc9a8e132 BandwidthTestRunner
Added BandwidthTest annotation and BandwidthTestRunner to start
and stop the network traffic profiler

Change-Id: Id29ac21ab99ff36bd864121276db59b61eb6e154
2011-12-14 22:43:58 -08:00
David Hu
cbc584d7eb Return the bundle object
Added the ability for the test runner to return the bundle object
so the tests can get access to input arguments

Change-Id: I73a704bb2279238bd91a376aacecbe5f607af649
2011-09-19 11:33:45 -07:00
Jesse Wilson
f48e94005b Remove an obsolete import for performance tests.
Change-Id: Ifc76ef821f71ea7469b4044b15071f5d2a7418fd
2010-12-21 12:58:40 -08:00
Jesse Wilson
bd1c5da28d Remove unused performance tests.
Change-Id: I5a252e314831716f99ce5fbb32d983c7473ee787
2010-12-21 10:23:28 -08:00
Brian Muramatsu
48983959a3 Fix NPE in InstrumentationTestRunner
This fixes a problem where the test runner would die when a
test case has tests that are not methods of the test class.

Change-Id: I5adc464bb4a0c8d282428895e422a47dcb6bfe1f
2010-11-17 12:28:51 -08:00
Jack Wang
3fc03e619f Added RepetitiveTest annotation and test runner support
Change-Id: I7bf0871ede6dd69512c6b6ea3484693ba5b78e89
2010-10-19 18:23:18 -07:00
Brett Chabot
31e7ce762c Improve InstrumentationTestRunner exception handling.
This commit fixes two somewhat related problems:
  - Attempting to run a method which does not exist caused a runtime
exception which stopped the test run. Change this so the runner reports
an individual test failure instead
  - A runtime exception during the test run would cause it to stop
completely, with no information dumped to the logcat or stdout. Now
exceptions are trapped and reported to stdout.

Also added associated unit tests to test these two conditions.

Related bug 2812262.

Change-Id: I383f9b9bad99f14cb51071800fa9bdbf6a6a1119
2010-07-07 17:33:22 -07:00
Brett Chabot
89c0ef4aba Add -e package description to InstrumentationTestRunner javadoc.
Bug 2528316

Change-Id: Ic707115e40a18521e0d57ee12f43df96be7033f2
2010-03-19 11:40:50 -07:00
Doug Zongker
0375fa12c7 fix error in javadoc
The "@link LargeTest" is broken since it doesn't know where that class is.

Change-Id: Ie15e40bac8a1965427e351926b2208775e79cb13
2010-02-23 12:36:06 -08:00
Brett Chabot
88e03a9736 Add ability to run tests restricted to given annotation.
And ability to exclude tests with given annotation.

Also fix class cast compile warning in emma output method.

Bug 2239240

Change-Id: I56273a51a8c58a690680bdb612615fab69e6e13f
2010-02-22 18:08:35 -08:00
Brett Chabot
08d13c3cbb Fix code coverage output message when running tests in non-raw mode.
Bug 2082804
2010-02-20 18:38:30 -08:00
Brett Chabot
e70f61b116 Retry test-runner tests move.
This time change the frameworks makefile so it only includes test-runner/src
in the public API.
2010-02-20 17:29:05 -08:00
Brett Chabot
c1ca8c51c6 Revert "Move framework test-runner unit tests to be closer to their source."
This reverts commit 12093976a4.
2010-02-19 10:31:05 -08:00
Brett Chabot
12093976a4 Move framework test-runner unit tests to be closer to their source.
Move the test-runner source into a separate src folder to accommodate the test
move.
2010-02-19 09:58:29 -08:00