For #18027 - Also fix the bottom toolbar in place when a11y is enabled

We previously only set the top toolbar as fixed if an a11y service was running.
upstream-sync
Mugurell 3 years ago
parent 8c51e06965
commit 0a0f75d2ab

@ -822,12 +822,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
internal fun initializeEngineView(toolbarHeight: Int) {
val context = requireContext()
// If there is an a11y service enabled and the user hasn't explicitly set bottom toolbar
val isTopToolbarForced =
!context.settings().shouldUseBottomToolbar &&
context.settings().shouldUseFixedTopToolbar
if (!isTopToolbarForced && context.settings().isDynamicToolbarEnabled) {
if (!context.settings().shouldUseFixedTopToolbar && context.settings().isDynamicToolbarEnabled) {
getEngineView().setDynamicToolbarMaxHeight(toolbarHeight)
val toolbarPosition = if (context.settings().shouldUseBottomToolbar) {

@ -245,7 +245,7 @@ class BrowserToolbarView(
fun setToolbarBehavior(shouldDisableScroll: Boolean = false) {
when (settings.toolbarPosition) {
ToolbarPosition.BOTTOM -> {
if (settings.isDynamicToolbarEnabled && !isPwaTabOrTwaTab) {
if (settings.isDynamicToolbarEnabled && !isPwaTabOrTwaTab && !settings.shouldUseFixedTopToolbar) {
setDynamicToolbarBehavior(MozacToolbarPosition.BOTTOM)
} else {
expandToolbarAndMakeItFixed()

@ -60,6 +60,16 @@ class BaseBrowserFragmentTest {
verify { engineView.setDynamicToolbarMaxHeight(0) }
}
@Test
fun `initializeEngineView should setDynamicToolbarMaxHeight to 0 if bottom toolbar is forced for a11y`() {
every { testContext.settings().shouldUseBottomToolbar } returns true
every { testContext.settings().shouldUseFixedTopToolbar } returns true
fragment.initializeEngineView(13)
verify { engineView.setDynamicToolbarMaxHeight(0) }
}
@Test
fun `initializeEngineView should setDynamicToolbarMaxHeight to toolbar height if dynamic toolbar is enabled`() {
every { testContext.settings().shouldUseFixedTopToolbar } returns false
@ -116,6 +126,16 @@ class BaseBrowserFragmentTest {
verify { (swipeRefreshLayout.layoutParams as CoordinatorLayout.LayoutParams).bottomMargin = 13 }
}
@Test
fun `initializeEngineView should set toolbar height as EngineView parent's bottom margin if bottom toolbar is forced for a11y`() {
every { testContext.settings().shouldUseBottomToolbar } returns true
every { testContext.settings().shouldUseFixedTopToolbar } returns true
fragment.initializeEngineView(13)
verify { (swipeRefreshLayout.layoutParams as CoordinatorLayout.LayoutParams).bottomMargin = 13 }
}
@Test
fun `WHEN status is equals to FAILED or COMPLETED and it is the same tab then shouldShowCompletedDownloadDialog will be true`() {
every { fragment.getCurrentTab() } returns createTab(id = "1", url = "")

@ -50,11 +50,12 @@ class BrowserToolbarViewTest {
}
@Test
fun `setToolbarBehavior(false) should setDynamicToolbarBehavior if bottom toolbar is dynamic and the tab is not for a PWA or TWA`() {
fun `setToolbarBehavior(false) should setDynamicToolbarBehavior if no a11y, bottom toolbar is dynamic and the tab is not for a PWA or TWA`() {
val toolbarViewSpy = spyk(toolbarView)
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns true
every { toolbarViewSpy.isPwaTabOrTwaTab } returns false
every { testContext.settings().shouldUseFixedTopToolbar } returns false
toolbarViewSpy.setToolbarBehavior(false)
@ -66,6 +67,8 @@ class BrowserToolbarViewTest {
val toolbarViewSpy = spyk(toolbarView)
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns false
every { toolbarViewSpy.isPwaTabOrTwaTab } returns false
every { testContext.settings().shouldUseFixedTopToolbar } returns false
toolbarViewSpy.setToolbarBehavior(false)
@ -78,6 +81,20 @@ class BrowserToolbarViewTest {
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns true
every { toolbarViewSpy.isPwaTabOrTwaTab } returns true
every { testContext.settings().shouldUseFixedTopToolbar } returns false
toolbarViewSpy.setToolbarBehavior(false)
verify { toolbarViewSpy.expandToolbarAndMakeItFixed() }
}
@Test
fun `setToolbarBehavior(false) should expandToolbarAndMakeItFixed if bottom toolbar is dynamic tab is not for a PWA or TWA but a11y is enabled`() {
val toolbarViewSpy = spyk(toolbarView)
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns true
every { toolbarViewSpy.isPwaTabOrTwaTab } returns false
every { testContext.settings().shouldUseFixedTopToolbar } returns true
toolbarViewSpy.setToolbarBehavior(false)
@ -85,11 +102,14 @@ class BrowserToolbarViewTest {
}
@Test
fun `setToolbarBehavior(true) should setDynamicToolbarBehavior if bottom toolbar is dynamic and the tab is not for a PWA or TWA`() {
fun `setToolbarBehavior(true) should expandToolbarAndMakeItFixed bottom toolbar is dynamic, the tab is not for a PWA or TWA and a11y is disabled`() {
// All intrinsic checks are met but the method was called with `shouldDisableScroll` = true
val toolbarViewSpy = spyk(toolbarView)
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns true
every { toolbarViewSpy.isPwaTabOrTwaTab } returns false
every { testContext.settings().shouldUseFixedTopToolbar } returns false
toolbarViewSpy.setToolbarBehavior(false)
@ -101,6 +121,8 @@ class BrowserToolbarViewTest {
val toolbarViewSpy = spyk(toolbarView)
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns false
every { toolbarViewSpy.isPwaTabOrTwaTab } returns false
every { testContext.settings().shouldUseFixedTopToolbar } returns false
toolbarViewSpy.setToolbarBehavior(false)
@ -113,6 +135,20 @@ class BrowserToolbarViewTest {
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns true
every { toolbarViewSpy.isPwaTabOrTwaTab } returns true
every { testContext.settings().shouldUseFixedTopToolbar } returns false
toolbarViewSpy.setToolbarBehavior(false)
verify { toolbarViewSpy.expandToolbarAndMakeItFixed() }
}
@Test
fun `setToolbarBehavior(true) should expandToolbarAndMakeItFixed if bottom toolbar is dynamic, the tab is for a PWA or TWA and a11 is enabled`() {
val toolbarViewSpy = spyk(toolbarView)
every { testContext.settings().toolbarPosition } returns ToolbarPosition.BOTTOM
every { testContext.settings().isDynamicToolbarEnabled } returns true
every { toolbarViewSpy.isPwaTabOrTwaTab } returns false
every { testContext.settings().shouldUseFixedTopToolbar } returns true
toolbarViewSpy.setToolbarBehavior(false)

Loading…
Cancel
Save