1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 package org.mozilla.fenix.ui
7 import androidx.compose.ui.test.junit4.AndroidComposeTestRule
8 import org.junit.Ignore
11 import org.mozilla.fenix.R
12 import org.mozilla.fenix.customannotations.SmokeTest
13 import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource
14 import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
15 import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId
16 import org.mozilla.fenix.helpers.TestAssetHelper
17 import org.mozilla.fenix.helpers.TestHelper.mDevice
18 import org.mozilla.fenix.helpers.TestHelper.packageName
19 import org.mozilla.fenix.helpers.TestSetup
20 import org.mozilla.fenix.ui.robots.clickPageObject
21 import org.mozilla.fenix.ui.robots.homeScreen
22 import org.mozilla.fenix.ui.robots.navigationToolbar
24 class CrashReportingTest : TestSetup() {
25 private val tabCrashMessage = getStringResource(R.string.tab_crash_title_2)
28 val activityTestRule = AndroidComposeTestRule(
29 HomeActivityIntentTestRule(
30 isPocketEnabled = false,
31 isJumpBackInCFREnabled = false,
32 isWallpaperOnboardingEnabled = false,
33 isTCPCFREnabled = false,
37 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/308906
39 fun closeTabFromCrashedTabReporterTest() {
41 }.openNavigationToolbar {
42 }.openTabCrashReporter {
43 }.clickTabCrashedCloseButton {
45 verifyNoOpenTabsInNormalBrowsing()
49 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2336134
50 @Ignore("Test failure caused by: https://github.com/mozilla-mobile/fenix/issues/19964")
52 fun restoreTabFromTabCrashedReporterTest() {
53 val website = TestAssetHelper.getGenericAsset(mockWebServer, 1)
56 }.openNavigationToolbar {
57 }.enterURLAndEnterToBrowser(website.url) {}
60 }.openTabCrashReporter {
61 clickPageObject(itemWithResId("$packageName:id/restoreTabButton"))
62 verifyPageContent(website.content)
66 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1681928
69 fun useAppWhileTabIsCrashedTest() {
70 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
71 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
74 }.openNavigationToolbar {
75 }.enterURLAndEnterToBrowser(firstWebPage.url) {
79 }.submitQuery(secondWebPage.url.toString()) {
84 }.openTabCrashReporter {
85 verifyPageContent(tabCrashMessage)
87 verifyExistingOpenTabs(firstWebPage.title)
88 verifyExistingOpenTabs("about:crashcontent")
91 verifyExistingTopSitesList()
93 verifySettingsButton()