From 75e861365bcd1415290c8e2e93c14178e7a871cd Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 1 Aug 2023 14:31:43 +0300 Subject: [PATCH] Bug 1846529 - New UI tests that verify the PB state after closing the app --- .../org/mozilla/fenix/helpers/TestHelper.kt | 3 ++ .../fenix/ui/ComposeTabbedBrowsingTest.kt | 52 ++++++++++++++++++- .../mozilla/fenix/ui/TabbedBrowsingTest.kt | 51 +++++++++++++++++- 3 files changed, 102 insertions(+), 4 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 98d67c9cf..64b00a3e9 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt @@ -115,6 +115,9 @@ object TestHelper { } } + fun closeApp(activity: HomeActivityIntentTestRule) = + activity.activity.finishAndRemoveTask() + fun getPermissionAllowID(): String { return when (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTabbedBrowsingTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTabbedBrowsingTest.kt index 330e5eeac..ec115320b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTabbedBrowsingTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTabbedBrowsingTest.kt @@ -13,11 +13,14 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test +import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityTestRule +import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.closeApp +import org.mozilla.fenix.helpers.TestHelper.restartApp import org.mozilla.fenix.helpers.TestHelper.verifyKeyboardVisibility import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.browserScreen @@ -49,7 +52,8 @@ class ComposeTabbedBrowsingTest { @get:Rule(order = 0) val composeTestRule = AndroidComposeTestRule( - HomeActivityTestRule.withDefaultSettingsOverrides( + HomeActivityIntentTestRule.withDefaultSettingsOverrides( + skipOnboarding = true, tabsTrayRewriteEnabled = true, ), ) { it.activity } @@ -388,4 +392,48 @@ class ComposeTabbedBrowsingTest { verifyTurnOnSyncMenu() } } + + @Test + fun privateModeStaysAsDefaultAfterRestartTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.goToHomescreen { + }.togglePrivateBrowsingMode() + + closeApp(composeTestRule.activityRule) + restartApp(composeTestRule.activityRule) + + homeScreen { + verifyPrivateBrowsingHomeScreen() + }.openComposeTabDrawer(composeTestRule) { + }.toggleToNormalTabs { + verifyExistingOpenTabs(defaultWebPage.title) + } + } + + @SmokeTest + @Test + fun privateTabsDoNotPersistAfterClosingAppTest() { + val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) + + homeScreen { + }.togglePrivateBrowsingMode() + + navigationToolbar { + }.enterURLAndEnterToBrowser(firstWebPage.url) { + }.openComposeTabDrawer(composeTestRule) { + }.openNewTab { + }.submitQuery(secondWebPage.url.toString()) { + } + closeApp(composeTestRule.activityRule) + restartApp(composeTestRule.activityRule) + homeScreen { + verifyPrivateBrowsingHomeScreen() + }.openComposeTabDrawer(composeTestRule) { + verifyNoOpenTabsInPrivateBrowsing() + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt index 613a97f4b..e82ea7f2c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt @@ -12,10 +12,13 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test +import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityTestRule +import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.closeApp +import org.mozilla.fenix.helpers.TestHelper.restartApp import org.mozilla.fenix.helpers.TestHelper.verifyKeyboardVisibility import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.homeScreen @@ -44,7 +47,7 @@ class TabbedBrowsingTest { private lateinit var mockWebServer: MockWebServer @get:Rule - val activityTestRule = HomeActivityTestRule.withDefaultSettingsOverrides() + val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true) @Rule @JvmField @@ -377,4 +380,48 @@ class TabbedBrowsingTest { verifyTurnOnSyncMenu() } } + + @Test + fun privateModeStaysAsDefaultAfterRestartTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.goToHomescreen { + }.togglePrivateBrowsingMode() + closeApp(activityTestRule) + restartApp(activityTestRule) + homeScreen { + verifyPrivateBrowsingHomeScreen() + }.openTabDrawer { + }.toggleToNormalTabs { + verifyExistingOpenTabs(defaultWebPage.title) + } + } + + @SmokeTest + @Test + fun privateTabsDoNotPersistAfterClosingAppTest() { + val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) + + homeScreen { + }.togglePrivateBrowsingMode() + + navigationToolbar { + }.enterURLAndEnterToBrowser(firstWebPage.url) { + }.openTabDrawer { + }.openNewTab { + }.submitQuery(secondWebPage.url.toString()) { + } + + closeApp(activityTestRule) + restartApp(activityTestRule) + + homeScreen { + verifyPrivateBrowsingHomeScreen() + }.openTabDrawer { + verifyNoOpenTabsInPrivateBrowsing() + } + } }