From 66862fa99254c7a6b1514c469fdf262fbd477096 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Thu, 28 Oct 2021 15:28:56 +0300 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/18421 re-enable verifyContextOpenImageNewTab, verifyContextOpenLinkNewTab & verifyContextOpenLinkPrivateTab UI tests --- .../org/mozilla/fenix/ui/ContextMenusTest.kt | 10 +++----- .../mozilla/fenix/ui/robots/BrowserRobot.kt | 24 ++++++++++++------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt index 923bd08d6..efb78f9b2 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt @@ -9,7 +9,6 @@ import androidx.test.uiautomator.UiDevice import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before -import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.ext.settings @@ -54,7 +53,6 @@ class ContextMenusTest { mockWebServer.shutdown() } - @Ignore("Test failures: https://github.com/mozilla-mobile/fenix/issues/18421") @Test fun verifyContextOpenLinkNewTab() { val pageLinks = @@ -69,7 +67,7 @@ class ContextMenusTest { verifyLinkContextMenuItems(genericURL.url) clickContextOpenLinkInNewTab() verifySnackBarText("New tab opened") - snackBarButtonClick("Switch") + snackBarButtonClick() verifyUrl(genericURL.url.toString()) }.openTabDrawer { verifyNormalModeSelected() @@ -78,7 +76,6 @@ class ContextMenusTest { } } - @Ignore("Test failures: https://github.com/mozilla-mobile/fenix/issues/18421") @Test fun verifyContextOpenLinkPrivateTab() { val pageLinks = @@ -93,7 +90,7 @@ class ContextMenusTest { verifyLinkContextMenuItems(genericURL.url) clickContextOpenLinkInPrivateTab() verifySnackBarText("New private tab opened") - snackBarButtonClick("Switch") + snackBarButtonClick() verifyUrl(genericURL.url.toString()) }.openTabDrawer { verifyPrivateModeSelected() @@ -137,7 +134,6 @@ class ContextMenusTest { } } - @Ignore("Intermittent: https://github.com/mozilla-mobile/fenix/issues/12367") @Test fun verifyContextOpenImageNewTab() { val pageLinks = @@ -152,7 +148,7 @@ class ContextMenusTest { verifyLinkImageContextMenuItems(imageResource.url) clickContextOpenImageNewTab() verifySnackBarText("New tab opened") - snackBarButtonClick("Switch") + snackBarButtonClick() verifyUrl(imageResource.url.toString()) } } 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 d242c6fb2..480db90a9 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 @@ -20,7 +20,6 @@ import androidx.test.espresso.intent.matcher.IntentMatchers import androidx.test.espresso.matcher.RootMatchers.isDialog import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.Visibility -import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility @@ -45,6 +44,7 @@ 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.TestHelper.packageName +import org.mozilla.fenix.helpers.TestHelper.waitForObjects import org.mozilla.fenix.helpers.click import org.mozilla.fenix.helpers.ext.waitNotNull @@ -112,11 +112,13 @@ class BrowserRobot { } fun verifySnackBarText(expectedText: String) { - val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mDevice.waitNotNull(Until.findObject(text(expectedText)), waitingTime) + mDevice.waitForObjects(mDevice.findObject(UiSelector().textContains(expectedText))) - onView(withText(expectedText)).check( - matches(isCompletelyDisplayed()) + assertTrue( + mDevice.findObject( + UiSelector() + .textContains(expectedText) + ).waitForExists(waitingTime) ) } @@ -401,10 +403,14 @@ class BrowserRobot { } } - fun snackBarButtonClick(expectedText: String) { - onView(allOf(withId(R.id.snackbar_btn), withText(expectedText))).check( - matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)) - ).perform(ViewActions.click()) + fun snackBarButtonClick() { + val switchButton = + mDevice.findObject( + UiSelector() + .resourceId("$packageName:id/snackbar_btn") + ) + switchButton.waitForExists(waitingTime) + switchButton.clickAndWaitForNewWindow(waitingTime) } fun verifySaveLoginPromptIsShown() {