diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt index 5a4dc7e66..0176c12ff 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt @@ -9,6 +9,7 @@ import org.junit.Test import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityIntentTestRule 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.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 fun swipeToolbarGesturePreferenceOffTest() { val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) @@ -69,8 +94,8 @@ class SettingsCustomizeTest { verifySwipeToolbarGesturePrefState(true) clickSwipeToolbarToSwitchTabToggle() verifySwipeToolbarGesturePrefState(false) - }.goBack { - }.goBack {} + exitMenu() + } navigationToolbar { }.enterURLAndEnterToBrowser(firstWebPage.url) { }.openTabDrawer { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt index 346788f34..7482d234c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt @@ -23,6 +23,8 @@ import androidx.recyclerview.widget.RecyclerView import androidx.test.espresso.Espresso.onView import androidx.test.espresso.action.ViewActions 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.contrib.RecyclerViewActions.actionOnItem import androidx.test.espresso.matcher.RootMatchers @@ -413,6 +415,17 @@ class HomeScreenRobot { 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 { fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuCustomizeRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuCustomizeRobot.kt index bdf750af7..96616f114 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuCustomizeRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuCustomizeRobot.kt @@ -12,9 +12,11 @@ import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.ViewActions import androidx.test.espresso.assertion.ViewAssertions.matches 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.isNotChecked import androidx.test.espresso.matcher.ViewMatchers.withClassName +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import org.hamcrest.CoreMatchers.allOf import org.hamcrest.Matchers.endsWith @@ -46,6 +48,11 @@ class SettingsSubMenuCustomizeRobot { 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 clickPullToRefreshToggle() = pullToRefreshToggle.click()