From 76e0278163f891de5317ea872a93048f49ca298b Mon Sep 17 00:00:00 2001 From: Nick Chameyev Date: Wed, 21 Dec 2022 15:58:32 +0000 Subject: [Chooser/ResolverActivity] Fix flakiness in work profile tests Sometimes work profile tests were failing because work profile tab button click was not handled. Most likely it is related to the opening animation of the drawer layout. Added retry mechanism to click on the button again if the tab was not selected. Test: repeated run of ResolverActivityWorkProfileTest Test: atest com.android.internal.app.ChooserActivityWorkProfileTest Test: atest com.android.internal.app.ResolverActivityWorkProfileTest Test: atest com.android.intentresolve.UnbundledChooserActivityWorkProfileTest Bug: 262018267 Change-Id: I89960ede6093aa3b32701fe012748d021362b2b8 --- .../UnbundledChooserActivityWorkProfileTest.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'java') diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java index b7eecb3f..5a65ec1e 100644 --- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java +++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java @@ -16,11 +16,14 @@ package com.android.intentresolver; +import static android.testing.PollingCheck.waitFor; + import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.action.ViewActions.swipeUp; import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.isSelected; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; @@ -49,6 +52,8 @@ import com.android.internal.R; import com.android.intentresolver.ResolverActivity.ResolvedComponentInfo; import com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.Tab; +import junit.framework.AssertionFailedError; + import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -336,8 +341,17 @@ public class UnbundledChooserActivityWorkProfileTest { final int stringId = tab == Tab.WORK ? R.string.resolver_work_tab : R.string.resolver_personal_tab; - onView(withText(stringId)).perform(click()); - waitForIdle(); + waitFor(() -> { + onView(withText(stringId)).perform(click()); + waitForIdle(); + + try { + onView(withText(stringId)).check(matches(isSelected())); + return true; + } catch (AssertionFailedError e) { + return false; + } + }); onView(withId(R.id.contentPanel)) .perform(swipeUp()); -- cgit v1.2.3-59-g8ed1b