For an Android Wear app, we use a CircularProgressLayout. Instead of allowing users to cancel their click, we want them to confirm their click within 2 seconds. So, users need to click twice within 2 seconds, to exit the app. We use a nice circular animation, so users can see how much time they have left to confirm their action.
I want to test that users can exit our app using Espresso, so I call click twice.
onView(withId(R.id.exit)).perform(click(), click());
// code to verify app was closed here
Unfortunately, Espresso will:
- execute the 1st click
- wait for 2 seconds
- performs the 2nd click
Resulting in a failing test. I believe, Espresso will wait for the animation to finish, before executing the 2nd click. But in this scenario, I need the click to be executed immediately.
Extra info:
- Animations/Transitions are disabled off course, but that does not stop the CircularProgressLayout from animating.
- I tried
perform(doubleClick());
as well, but even that will wait 2 seconds between the first and the second click. - I also tried abusing
onLongClick()
as a hack to confirm exiting the app. This does work, but it's a hack. I just want espresso to click twice.
Any suggestions how to make Espresso click twice without waiting for the animation?