MediaProjection flicker tests sometimes flake or outright fail due to a StaleObjectException when trying to click on a popup menu. The exact cause of this exception isn't known, possibly related to transitions, but to resolve it, we are simply going to retry a set number of times to see if it is possible to click the desired UI item. THis should resolve the flakes, while still failing properly if something is actually wrong with the scenario Bug: 434632075 Bug: 435896354 Test: StartAppMediaProjectionResizeAndDrag Test: StartAppMediaProjecitonWithMaxDesktopWindows Test: StartScreenMediaProjectionWithMaxDesktopWindows Flag: TEST_ONLY Change-Id: Ic1280d96aaf66ff953b2c5728c829bb776a42cfa
Flicker Test Library
Motivation
This set of tests use the flickerlib from platform_testing/libraries/flicker to execute a set of common UI transitions to detect discontinuous or unpredictable behavior.
The tests are organized in packages according to the transitions they test (e.g., rotation, splitscreen).
Adding a Test
By default, tests should inherit from TestBase and override the variable transition (Kotlin) or the function getTransition() (Java).
Inheriting from this class ensures the common assertions will be executed, namely:
- all regions on the screen are covered
- status bar is always visible
- status bar is at the correct position at the start and end of the transition
- nav bar is always visible
- nav bar is at the correct position at the start and end of the transition
The default tests can be disabled by overriding the respective methods and including an @Ignore annotation.
For more examples of how a test looks like check ChangeAppRotationTest within the Rotation subdirectory.