From 4a54677c83ce316abd57a8b40e5d1aa6121d9ecf Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Thu, 12 Jan 2023 12:47:53 +0200 Subject: [PATCH] [fenix] Bug 1808880 and 1809645 - Fix flaky useAppWhileTabIsCrashedTest and privateBrowsingUseAppWhileTabIsCrashedTest UI tests --- .../mozilla/fenix/ui/robots/BrowserRobot.kt | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt index 7a5d4341e6..a32380d59a 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -44,6 +44,7 @@ import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.Constants.LONG_CLICK_DURATION import org.mozilla.fenix.helpers.Constants.RETRY_COUNT +import org.mozilla.fenix.helpers.MatcherHelper import org.mozilla.fenix.helpers.SessionLoadedIdlingResource import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeLong @@ -911,22 +912,32 @@ class BrowserRobot { } fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { - mDevice.waitForObjects( - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/mozac_browser_toolbar_browser_actions"), - ), - waitingTime, - ) - - tabsCounter().click() - - mDevice.waitForObjects( - mDevice.findObject( - UiSelector().resourceId("$packageName:id/new_tab_button"), - ), - waitingTime, - ) + for (i in 1..RETRY_COUNT) { + try { + mDevice.waitForObjects( + mDevice.findObject( + UiSelector() + .resourceId("$packageName:id/mozac_browser_toolbar_browser_actions"), + ), + waitingTime, + ) + + tabsCounter().click() + assertTrue( + MatcherHelper.itemWithResId("$packageName:id/new_tab_button") + .waitForExists(waitingTime), + ) + + break + } catch (e: AssertionError) { + if (i == RETRY_COUNT) { + throw e + } else { + mDevice.waitForIdle() + } + } + } + assertTrue(MatcherHelper.itemWithResId("$packageName:id/new_tab_button").waitForExists(waitingTime)) TabDrawerRobot().interact() return TabDrawerRobot.Transition()