New UI test coverage for Toolbar position preference

fork
oana.horvath 2 years ago committed by mergify[bot]
parent 49ac79df65
commit 61d052b9d6

@ -9,6 +9,7 @@ import org.junit.Test
import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestHelper.exitMenu
import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.homeScreen
import org.mozilla.fenix.ui.robots.navigationToolbar import org.mozilla.fenix.ui.robots.navigationToolbar
@ -57,6 +58,30 @@ class SettingsCustomizeTest {
} }
} }
@Test
fun setToolbarPositionTest() {
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openCustomizeSubMenu {
verifyToolbarPositionPreference("Bottom")
clickTopToolbarToggle()
verifyToolbarPositionPreference("Top")
}.goBack {
}.goBack {
verifyToolbarPosition(defaultPosition = false)
}.openThreeDotMenu {
}.openSettings {
}.openCustomizeSubMenu {
clickBottomToolbarToggle()
verifyToolbarPositionPreference("Bottom")
exitMenu()
}
homeScreen {
verifyToolbarPosition(defaultPosition = true)
}
}
@Test @Test
fun swipeToolbarGesturePreferenceOffTest() { fun swipeToolbarGesturePreferenceOffTest() {
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
@ -69,8 +94,8 @@ class SettingsCustomizeTest {
verifySwipeToolbarGesturePrefState(true) verifySwipeToolbarGesturePrefState(true)
clickSwipeToolbarToSwitchTabToggle() clickSwipeToolbarToSwitchTabToggle()
verifySwipeToolbarGesturePrefState(false) verifySwipeToolbarGesturePrefState(false)
}.goBack { exitMenu()
}.goBack {} }
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) { }.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openTabDrawer { }.openTabDrawer {

@ -23,6 +23,8 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.test.espresso.Espresso.onView import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.PositionAssertions.isCompletelyAbove
import androidx.test.espresso.assertion.PositionAssertions.isPartiallyBelow
import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem
import androidx.test.espresso.matcher.RootMatchers import androidx.test.espresso.matcher.RootMatchers
@ -413,6 +415,17 @@ class HomeScreenRobot {
return publisher return publisher
} }
fun verifyToolbarPosition(defaultPosition: Boolean) {
onView(withId(R.id.toolbarLayout))
.check(
if (defaultPosition) {
isPartiallyBelow(withId(R.id.sessionControlRecyclerView))
} else {
isCompletelyAbove(withId(R.id.homeAppBar))
},
)
}
class Transition { class Transition {
fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition {

@ -12,9 +12,11 @@ import androidx.test.espresso.ViewInteraction
import androidx.test.espresso.action.ViewActions import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.hasSibling
import androidx.test.espresso.matcher.ViewMatchers.isChecked import androidx.test.espresso.matcher.ViewMatchers.isChecked
import androidx.test.espresso.matcher.ViewMatchers.isNotChecked import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
import androidx.test.espresso.matcher.ViewMatchers.withClassName import androidx.test.espresso.matcher.ViewMatchers.withClassName
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.espresso.matcher.ViewMatchers.withText
import org.hamcrest.CoreMatchers.allOf import org.hamcrest.CoreMatchers.allOf
import org.hamcrest.Matchers.endsWith import org.hamcrest.Matchers.endsWith
@ -46,6 +48,11 @@ class SettingsSubMenuCustomizeRobot {
fun clickBottomToolbarToggle() = bottomToolbarToggle().click() fun clickBottomToolbarToggle() = bottomToolbarToggle().click()
fun verifyToolbarPositionPreference(selectedPosition: String) {
onView(withText(selectedPosition))
.check(matches(hasSibling(allOf(withId(R.id.radio_button), isChecked()))))
}
fun clickSwipeToolbarToSwitchTabToggle() = swipeToolbarToggle.click() fun clickSwipeToolbarToSwitchTabToggle() = swipeToolbarToggle.click()
fun clickPullToRefreshToggle() = pullToRefreshToggle.click() fun clickPullToRefreshToggle() = pullToRefreshToggle.click()

Loading…
Cancel
Save