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 androidx.core.net.toUri
11 import org.mozilla.fenix.customannotations.SmokeTest
12 import org.mozilla.fenix.helpers.AppAndSystemHelper.runWithSystemLocaleChanged
13 import org.mozilla.fenix.helpers.HomeActivityTestRule
14 import org.mozilla.fenix.helpers.TestAssetHelper
15 import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeLong
16 import org.mozilla.fenix.helpers.TestHelper.mDevice
17 import org.mozilla.fenix.helpers.TestSetup
18 import org.mozilla.fenix.ui.robots.homeScreen
19 import org.mozilla.fenix.ui.robots.navigationToolbar
20 import java.util.Locale
23 * Tests for verifying basic functionality of browser navigation and page related interactions
27 * - Back and Forward navigation
32 class NavigationToolbarTest : TestSetup() {
35 AndroidComposeTestRule(
36 HomeActivityTestRule.withDefaultSettingsOverrides(),
39 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/987326
40 // Swipes the nav bar left/right to switch between tabs
43 fun swipeToSwitchTabTest() {
44 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
45 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
48 }.enterURLAndEnterToBrowser(firstWebPage.url) {
49 }.openTabDrawer(composeTestRule) {
51 }.submitQuery(secondWebPage.url.toString()) {
52 swipeNavBarRight(secondWebPage.url.toString())
53 verifyUrl(firstWebPage.url.toString())
54 swipeNavBarLeft(firstWebPage.url.toString())
55 verifyUrl(secondWebPage.url.toString())
59 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/987327
60 // Because it requires changing system prefs, this test will run only on Debug builds
62 fun swipeToSwitchTabInRTLTest() {
63 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
64 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
65 val arabicLocale = Locale("ar", "AR")
67 runWithSystemLocaleChanged(arabicLocale, composeTestRule.activityRule) {
69 }.enterURLAndEnterToBrowser(firstWebPage.url) {
70 }.openTabDrawer(composeTestRule) {
72 }.submitQuery(secondWebPage.url.toString()) {
73 swipeNavBarLeft(secondWebPage.url.toString())
74 verifyUrl(firstWebPage.url.toString())
75 swipeNavBarRight(firstWebPage.url.toString())
76 verifyUrl(secondWebPage.url.toString())
81 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/2265279
84 fun verifySecurePageSecuritySubMenuTest() {
85 val defaultWebPage = "https://mozilla-mobile.github.io/testapp/loginForm"
86 val defaultWebPageTitle = "Login_form"
89 }.enterURLAndEnterToBrowser(defaultWebPage.toUri()) {
90 waitForPageToLoad(pageLoadWaitingTime = waitingTimeLong)
91 }.openSiteSecuritySheet {
92 verifyQuickActionSheet(defaultWebPage, true)
93 openSecureConnectionSubMenu(true)
94 verifySecureConnectionSubMenu(defaultWebPageTitle, defaultWebPage, true)
98 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/2265280
101 fun verifyInsecurePageSecuritySubMenuTest() {
102 val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
105 }.enterURLAndEnterToBrowser(defaultWebPage.url) {
107 }.openSiteSecuritySheet {
108 verifyQuickActionSheet(defaultWebPage.url.toString(), false)
109 openSecureConnectionSubMenu(false)
110 verifySecureConnectionSubMenu(defaultWebPage.title, defaultWebPage.url.toString(), false)
114 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/1661318
117 fun verifyClearCookiesFromQuickSettingsTest() {
118 val helpPageUrl = "mozilla.org"
123 }.openSiteSecuritySheet {
124 clickQuickActionSheetClearSiteData()
125 verifyClearSiteDataPrompt(helpPageUrl)
129 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/1360555
132 fun goToHomeScreenTest() {
133 val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
136 }.enterURLAndEnterToBrowser(genericURL.url) {
137 mDevice.waitForIdle()
143 // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/2256552
146 fun goToHomeScreenInPrivateModeTest() {
147 val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
150 togglePrivateBrowsingModeOnOff()
154 }.enterURLAndEnterToBrowser(genericURL.url) {
155 mDevice.waitForIdle()