-
Svetoslav authored
1. Added infrastructure for writing print tests. Print tests require mocking both the print application and the print services. Therefore, both the app and the services are in the same APK. Using print services requires that they are enabled by the user via the UI which changes a secure setting with the enabled services. The test app cannot change these settings. Therefore, there is a custom host side test driver which sets the enabled services setting before running the tests. The print spooler keeps track of used printers, hence running a test changes the state of the spooler potentially affecting subsequent tests, i.e. the order of runnings tests begins to matter which is fragile as the test runner does not guarantee order of execution. However, the test APK cannot clear the data of another app, i.e the PrintSpooler. To handle this the host side test driver installs and calls a shell Java program which creates a proxy object which has API for clearing an app's user data (the shell user has permissions to do that) and passes this proxy to the instrumentation that contains the tests. Fun! 2. Added tests for the PrintDocumentAdapter lifecycle. Change-Id: Ie9929c2e364a43b262667c5198967e01858f4389
12c82d43