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.core.net.toUri
10 import org.mozilla.fenix.customannotations.SmokeTest
11 import org.mozilla.fenix.helpers.AppAndSystemHelper.runWithSystemLocaleChanged
12 import org.mozilla.fenix.helpers.HomeActivityTestRule
13 import org.mozilla.fenix.helpers.TestAssetHelper
14 import org.mozilla.fenix.helpers.TestHelper.mDevice
15 import org.mozilla.fenix.helpers.TestSetup
16 import org.mozilla.fenix.ui.robots.homeScreen
17 import org.mozilla.fenix.ui.robots.navigationToolbar
18 import java.util.Locale
21 * Tests for verifying basic functionality of browser navigation and page related interactions
25 * - Back and Forward navigation
30 class NavigationToolbarTest : TestSetup() {
32 val activityTestRule = HomeActivityTestRule.withDefaultSettingsOverrides()
34 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/987326
35 // Swipes the nav bar left/right to switch between tabs
38 fun swipeToSwitchTabTest() {
39 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
40 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
43 }.enterURLAndEnterToBrowser(firstWebPage.url) {
46 }.submitQuery(secondWebPage.url.toString()) {
47 swipeNavBarRight(secondWebPage.url.toString())
48 verifyUrl(firstWebPage.url.toString())
49 swipeNavBarLeft(firstWebPage.url.toString())
50 verifyUrl(secondWebPage.url.toString())
54 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/987327
55 // Because it requires changing system prefs, this test will run only on Debug builds
57 fun swipeToSwitchTabInRTLTest() {
58 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
59 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
60 val arabicLocale = Locale("ar", "AR")
62 runWithSystemLocaleChanged(arabicLocale, activityTestRule) {
64 }.enterURLAndEnterToBrowser(firstWebPage.url) {
67 }.submitQuery(secondWebPage.url.toString()) {
68 swipeNavBarLeft(secondWebPage.url.toString())
69 verifyUrl(firstWebPage.url.toString())
70 swipeNavBarRight(firstWebPage.url.toString())
71 verifyUrl(secondWebPage.url.toString())
76 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2265279
79 fun verifySecurePageSecuritySubMenuTest() {
80 val defaultWebPage = "https://mozilla-mobile.github.io/testapp/loginForm"
81 val defaultWebPageTitle = "Login_form"
84 }.enterURLAndEnterToBrowser(defaultWebPage.toUri()) {
86 }.openSiteSecuritySheet {
87 verifyQuickActionSheet(defaultWebPage, true)
88 openSecureConnectionSubMenu(true)
89 verifySecureConnectionSubMenu(defaultWebPageTitle, defaultWebPage, true)
93 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2265280
96 fun verifyInsecurePageSecuritySubMenuTest() {
97 val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
100 }.enterURLAndEnterToBrowser(defaultWebPage.url) {
102 }.openSiteSecuritySheet {
103 verifyQuickActionSheet(defaultWebPage.url.toString(), false)
104 openSecureConnectionSubMenu(false)
105 verifySecureConnectionSubMenu(defaultWebPage.title, defaultWebPage.url.toString(), false)
109 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1661318
112 fun verifyClearCookiesFromQuickSettingsTest() {
113 val helpPageUrl = "mozilla.org"
118 }.openSiteSecuritySheet {
119 clickQuickActionSheetClearSiteData()
120 verifyClearSiteDataPrompt(helpPageUrl)
124 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1360555
127 fun goToHomeScreenTest() {
128 val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
131 }.enterURLAndEnterToBrowser(genericURL.url) {
132 mDevice.waitForIdle()
138 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2256552
141 fun goToHomeScreenInPrivateModeTest() {
142 val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
145 togglePrivateBrowsingModeOnOff()
149 }.enterURLAndEnterToBrowser(genericURL.url) {
150 mDevice.waitForIdle()