Files
Daniel Akinola 6bbe3c84fb Reduce flakes in MediaProjection flicker tests
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
2025-09-10 13:39:45 +00:00
..
…
…
…

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.