From 51044beb79093b714b30766397c9b5e4c6300f99 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 7 Jun 2022 15:38:23 +0300 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/24092 and https://github.com/mozilla-mobile/fenix/issues/25077 fix flaky emailLinkPWATest and telephoneLinkPWATest UI tests --- .../java/org/mozilla/fenix/helpers/TestHelper.kt | 11 +++-------- .../androidTest/java/org/mozilla/fenix/ui/PwaTest.kt | 2 ++ .../java/org/mozilla/fenix/ui/robots/BrowserRobot.kt | 3 ++- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt index b01320ecf4..2f041adffd 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt @@ -14,7 +14,6 @@ import android.graphics.Canvas import android.graphics.Color import android.net.Uri import android.os.Build -import android.util.Log import android.view.View import androidx.browser.customtabs.CustomTabsIntent import androidx.test.espresso.Espresso @@ -37,7 +36,6 @@ import androidx.test.uiautomator.UiObjectNotFoundException import androidx.test.uiautomator.UiScrollable import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until -import java.util.regex.Pattern import junit.framework.AssertionFailedError import mozilla.components.browser.state.search.SearchEngine import mozilla.components.support.ktx.android.content.appName @@ -55,6 +53,7 @@ import org.mozilla.fenix.helpers.idlingresource.NetworkConnectionIdlingResource import org.mozilla.fenix.ui.robots.BrowserRobot import org.mozilla.fenix.ui.robots.mDevice import org.mozilla.fenix.utils.IntentUtils +import java.util.regex.Pattern object TestHelper { @@ -229,12 +228,8 @@ object TestHelper { fun assertNativeAppOpens(appPackageName: String, url: String) { if (isPackageInstalled(appPackageName)) { - try { - intended(toPackage(appPackageName)) - } catch (e: AssertionFailedError) { - e.printStackTrace() - Log.e("TestLog", "intent to $appPackageName not sent or doesn't match") - } + mDevice.waitForIdle(waitingTimeShort) + intended(toPackage(appPackageName)) } else { BrowserRobot().verifyUrl(url) } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/PwaTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/PwaTest.kt index 9d28f62144..9460e7a08c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/PwaTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/PwaTest.kt @@ -62,6 +62,7 @@ class PwaTest { navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPWAPage.toUri()) { + waitForPageToLoad() }.openThreeDotMenu { }.clickInstall { clickAddAutomaticallyButton() @@ -77,6 +78,7 @@ class PwaTest { navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPWAPage.toUri()) { + waitForPageToLoad() }.openThreeDotMenu { }.clickInstall { clickAddAutomaticallyButton() 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 a4a5d3f71d..18ddb028fa 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 @@ -43,6 +43,7 @@ import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.Constants.LONG_CLICK_DURATION import org.mozilla.fenix.helpers.SessionLoadedIdlingResource import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime +import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeLong import org.mozilla.fenix.helpers.TestHelper.packageName import org.mozilla.fenix.helpers.TestHelper.waitForObjects import org.mozilla.fenix.helpers.click @@ -313,7 +314,7 @@ class BrowserRobot { fun clickLinkMatchingText(expectedText: String) { mDevice.findObject(UiSelector().resourceId("$packageName:id/engineView")) .waitForExists(waitingTime) - mDevice.findObject(UiSelector().textContains(expectedText)).waitForExists(waitingTime) + mDevice.findObject(UiSelector().textContains(expectedText)).waitForExists(waitingTimeLong) val element = mDevice.findObject(UiSelector().textContains(expectedText)) element.click()