android / android-test

An extensive framework for testing Android apps
https://android.github.io/android-test
Apache License 2.0
1.16k stars 314 forks source link

Espresso ViewActions.swipeRight doesn't work for ViewPager2 on device with API 32+ #2196

Open alecarnevale opened 6 months ago

alecarnevale commented 6 months ago

Description

As the title says, ViewActions.swipeRight doesn't work on devices with API >= 32 when called on ViewPager2.

Calling a swipeRight on a ViewPager2 triggers a back instead of a swiping on the ViewPager2 itself.

Steps to Reproduce

In the sample project linked below you can find a simple activity MainActivity with a ViewPager2, and a MainActivityTest.

The test just swipes on the view pager using Espresso ViewActions: swipeLeft/swipeRight. Launching the test on a device with API <= 31 passes, but fails on devices with API 32 and above.

swipeLeft instead, works in any case.

Expected Results

Performing swiping actions on the view pager.

Demo on emulator device with API 31

https://github.com/android/android-test/assets/43886303/c1ffedd4-4b8d-42d7-9093-532f9a9f5655

Actual Results

Back press.

Demo on emulator device with API 32

https://github.com/android/android-test/assets/43886303/690e5456-5622-4ba3-82be-8170cdbb5e2a

AndroidX Test and Android OS Versions

Link to a public git repo demonstrating the problem:

https://github.com/alecarnevale/EspressoSwipeRightIssue/tree/master

vyguera commented 6 months ago

The same happens to me. Migrating to Compose might be a solution, but I haven't tried it yet.