From 3fc5d43336812dbc95b1f83e082c83d3e198c719 Mon Sep 17 00:00:00 2001 From: Oana Horvath Date: Fri, 4 Jun 2021 12:51:10 +0300 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/18647: Fixed and re-enabled customTrackingProtectionSettingsTest UI test --- .../java/org/mozilla/fenix/ui/SmokeTest.kt | 10 +++- .../fenix/ui/robots/NavigationToolbarRobot.kt | 57 +++++++++---------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt index 4efe9cd00e..8d59f0663b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt @@ -407,9 +407,9 @@ class SmokeTest { } } - @Ignore("Failing, see https://github.com/mozilla-mobile/fenix/issues/18647") @Test fun customTrackingProtectionSettingsTest() { + val genericWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val trackingPage = TestAssetHelper.getEnhancedTrackingProtectionAsset(mockWebServer) homeScreen { @@ -422,10 +422,14 @@ class SmokeTest { }.goBackToHomeScreen {} navigationToolbar { - }.openTrackingProtectionTestPage(trackingPage.url, true) {} + // browsing a basic page to allow GV to load on a fresh run + }.enterURLAndEnterToBrowser(genericWebPage.url) { + }.openNavigationToolbar { + }.openTrackingProtectionTestPage(trackingPage.url, true) { + dismissTrackingOnboarding() + } enhancedTrackingProtection { - dismissTrackingOnboarding() }.openEnhancedTrackingProtectionSheet { verifyTrackingCookiesBlocked() verifyCryptominersBlocked() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt index c6177bc465..ce5e2ad25b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt @@ -11,7 +11,6 @@ import androidx.recyclerview.widget.RecyclerView import androidx.test.espresso.Espresso.onView import androidx.test.espresso.IdlingRegistry import androidx.test.espresso.IdlingResource -import androidx.test.espresso.IdlingResourceTimeoutException import androidx.test.espresso.action.ViewActions import androidx.test.espresso.action.ViewActions.pressImeActionButton import androidx.test.espresso.action.ViewActions.replaceText @@ -33,6 +32,7 @@ import androidx.test.uiautomator.By import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until +import junit.framework.TestCase.assertTrue import org.hamcrest.CoreMatchers.allOf import org.hamcrest.CoreMatchers.anyOf import org.hamcrest.CoreMatchers.containsString @@ -116,43 +116,40 @@ class NavigationToolbarRobot { return BrowserRobot.Transition() } - fun openTrackingProtectionTestPage(url: Uri, etpEnabled: Boolean, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - sessionLoadedIdlingResource = SessionLoadedIdlingResource() - + fun openTrackingProtectionTestPage( + url: Uri, + etpEnabled: Boolean, + interact: BrowserRobot.() -> Unit + ): BrowserRobot.Transition { openEditURLView() awesomeBar().perform(replaceText(url.toString()), pressImeActionButton()) - runWithIdleRes(sessionLoadedIdlingResource) { - when (etpEnabled) { - true -> - try { - onView(withId(R.id.onboarding_message)) - .check(matches(isDisplayed())) - } catch (e: IdlingResourceTimeoutException) { - openThreeDotMenu { - }.stopPageLoad { - val onboardingDisplayed = - mDevice.findObject(UiSelector().resourceId("$packageName:id/onboarding_message")) - .waitForExists(waitingTime) - - if (!onboardingDisplayed) { - openThreeDotMenu { - }.refreshPage {} + val onboardingMessage = + mDevice.findObject(UiSelector().resourceId("$packageName:id/onboarding_message")) + + val onboardingDisplayed = onboardingMessage.waitForExists(waitingTime) + + when (etpEnabled) { + true -> + try { + assertTrue("Onboarding message not displayed", + onboardingDisplayed + ) + } catch (e: AssertionError) { + openThreeDotMenu { + }.stopPageLoad { + if (!onboardingDisplayed) { + openThreeDotMenu { + }.refreshPage { + assertTrue(onboardingDisplayed) } } } + } - false -> - try { - onView(withResourceName("browserLayout")).check(matches(isDisplayed())) - } catch (e: IdlingResourceTimeoutException) { - openThreeDotMenu { - }.stopPageLoad { - }.openThreeDotMenu { - }.refreshPage {} - } - } + false -> + onView(withResourceName("browserLayout")).check(matches(isDisplayed())) } BrowserRobot().interact()