diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt index a4a0d86f5..0d611f195 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt @@ -7,18 +7,22 @@ import org.junit.Before import org.junit.Ignore import org.junit.Rule import org.junit.Test +import org.mozilla.fenix.R import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.FeatureSettingsHelper import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.getStringResource import org.mozilla.fenix.ui.robots.homeScreen +import org.mozilla.fenix.ui.robots.mDevice import org.mozilla.fenix.ui.robots.navigationToolbar class CrashReportingTest { private lateinit var mockWebServer: MockWebServer private val featureSettingsHelper = FeatureSettingsHelper() + private val tabCrashMessage = getStringResource(R.string.tab_crash_title_2) @get:Rule val activityTestRule = AndroidComposeTestRule( @@ -72,4 +76,66 @@ class CrashReportingTest { verifyPageContent(website.content) } } + + @SmokeTest + @Test + fun useAppWhileTabIsCrashedTest() { + val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(firstWebPage.url) { + mDevice.waitForIdle() + }.openTabDrawer { + }.openNewTab { + }.submitQuery(secondWebPage.url.toString()) { + waitForPageToLoad() + } + + navigationToolbar { + }.openTabCrashReporter { + verifyPageContent(tabCrashMessage) + }.openTabDrawer { + verifyExistingOpenTabs(firstWebPage.title) + verifyExistingOpenTabs(secondWebPage.title) + }.closeTabDrawer { + }.goToHomescreen { + verifyExistingTopSitesList() + }.openThreeDotMenu { + verifySettingsButton() + } + } + + @SmokeTest + @Test + fun privateBrowsingUseAppWhileTabIsCrashedTest() { + val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) + + homeScreen { + togglePrivateBrowsingModeOnOff() + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(firstWebPage.url) { + mDevice.waitForIdle() + }.openTabDrawer { + }.openNewTab { + }.submitQuery(secondWebPage.url.toString()) { + waitForPageToLoad() + verifyPageContent("Page content: 2") + } + + navigationToolbar { + }.openTabCrashReporter { + verifyPageContent(tabCrashMessage) + }.openTabDrawer { + verifyExistingOpenTabs(firstWebPage.title) + verifyExistingOpenTabs(secondWebPage.title) + }.closeTabDrawer { + }.goToHomescreen { + verifyPrivateSessionMessage() + }.openThreeDotMenu { + verifySettingsButton() + } + } }