Bug 1807268 - Re-enable verifyShowClipboardSuggestionsToggleTest UI test r=jajohnson
[gecko.git] / mobile / android / fenix / app / src / androidTest / java / org / mozilla / fenix / ui / SettingsCustomizeTest.kt
blobf20ff14182e22bd1fc1428abd221a386d788960a
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 android.content.res.Configuration
8 import org.junit.Rule
9 import org.junit.Test
10 import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
11 import org.mozilla.fenix.helpers.TestAssetHelper
12 import org.mozilla.fenix.helpers.TestHelper.exitMenu
13 import org.mozilla.fenix.helpers.TestHelper.verifyDarkThemeApplied
14 import org.mozilla.fenix.helpers.TestHelper.verifyLightThemeApplied
15 import org.mozilla.fenix.helpers.TestSetup
16 import org.mozilla.fenix.ui.robots.homeScreen
17 import org.mozilla.fenix.ui.robots.navigationToolbar
19 class SettingsCustomizeTest : TestSetup() {
20     @get:Rule
21     val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides()
23     private fun getUiTheme(): Boolean {
24         val mode =
25             activityIntentTestRule.activity.resources?.configuration?.uiMode?.and(Configuration.UI_MODE_NIGHT_MASK)
27         return when (mode) {
28             Configuration.UI_MODE_NIGHT_YES -> true // dark theme is set
29             Configuration.UI_MODE_NIGHT_NO -> false // dark theme is not set, using light theme
30             else -> false // default option is light theme
31         }
32     }
34     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/344212
35     @Test
36     fun changeThemeOfTheAppTest() {
37         // Goes through the settings and changes the default search engine, then verifies it changes.
38         homeScreen {
39         }.openThreeDotMenu {
40         }.openSettings {
41         }.openCustomizeSubMenu {
42             verifyThemes()
43             selectDarkMode()
44             verifyDarkThemeApplied(getUiTheme())
45             selectLightMode()
46             verifyLightThemeApplied(getUiTheme())
47         }
48     }
50     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/466571
51     @Test
52     fun setToolbarPositionTest() {
53         homeScreen {
54         }.openThreeDotMenu {
55         }.openSettings {
56         }.openCustomizeSubMenu {
57             verifyToolbarPositionPreference("Bottom")
58             clickTopToolbarToggle()
59             verifyToolbarPositionPreference("Top")
60         }.goBack {
61         }.goBack {
62             verifyToolbarPosition(defaultPosition = false)
63         }.openThreeDotMenu {
64         }.openSettings {
65         }.openCustomizeSubMenu {
66             clickBottomToolbarToggle()
67             verifyToolbarPositionPreference("Bottom")
68             exitMenu()
69         }
70         homeScreen {
71             verifyToolbarPosition(defaultPosition = true)
72         }
73     }
75     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1058682
76     @Test
77     fun turnOffSwipeToSwitchTabsPreferenceTest() {
78         val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
79         val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
81         homeScreen {
82         }.openThreeDotMenu {
83         }.openSettings {
84         }.openCustomizeSubMenu {
85             verifySwipeToolbarGesturePrefState(true)
86             clickSwipeToolbarToSwitchTabToggle()
87             verifySwipeToolbarGesturePrefState(false)
88             exitMenu()
89         }
90         navigationToolbar {
91         }.enterURLAndEnterToBrowser(firstWebPage.url) {
92         }.openTabDrawer {
93         }.openNewTab {
94         }.submitQuery(secondWebPage.url.toString()) {
95             swipeNavBarRight(secondWebPage.url.toString())
96             verifyUrl(secondWebPage.url.toString())
97             swipeNavBarLeft(secondWebPage.url.toString())
98             verifyUrl(secondWebPage.url.toString())
99         }
100     }
102     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1992289
103     @Test
104     fun pullToRefreshPreferenceTest() {
105         homeScreen {
106         }.openThreeDotMenu {
107         }.openSettings {
108         }.openCustomizeSubMenu {
109             verifyPullToRefreshGesturePrefState(isEnabled = true)
110             clickPullToRefreshToggle()
111             verifyPullToRefreshGesturePrefState(isEnabled = false)
112         }
113     }