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
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.TestSetup
15 import org.mozilla.fenix.ui.robots.navigationToolbar
16 import java.util.Locale
19 * Tests for verifying basic functionality of browser navigation and page related interactions
23 * - Back and Forward navigation
28 class ComposeNavigationToolbarTest : TestSetup() {
31 AndroidComposeTestRule(
32 HomeActivityTestRule.withDefaultSettingsOverrides(
33 tabsTrayRewriteEnabled = true,
37 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/987326
38 // Swipes the nav bar left/right to switch between tabs
41 fun swipeToSwitchTabTest() {
42 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
43 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
46 }.enterURLAndEnterToBrowser(firstWebPage.url) {
47 }.openComposeTabDrawer(composeTestRule) {
49 }.submitQuery(secondWebPage.url.toString()) {
50 swipeNavBarRight(secondWebPage.url.toString())
51 verifyUrl(firstWebPage.url.toString())
52 swipeNavBarLeft(firstWebPage.url.toString())
53 verifyUrl(secondWebPage.url.toString())
57 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/987327
58 // Because it requires changing system prefs, this test will run only on Debug builds
60 fun swipeToSwitchTabInRTLTest() {
61 val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
62 val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
63 val arabicLocale = Locale("ar", "AR")
65 runWithSystemLocaleChanged(arabicLocale, composeTestRule.activityRule) {
67 }.enterURLAndEnterToBrowser(firstWebPage.url) {
68 }.openComposeTabDrawer(composeTestRule) {
70 }.submitQuery(secondWebPage.url.toString()) {
71 swipeNavBarLeft(secondWebPage.url.toString())
72 verifyUrl(firstWebPage.url.toString())
73 swipeNavBarRight(firstWebPage.url.toString())
74 verifyUrl(secondWebPage.url.toString())