@@ -4,6 +4,8 @@ import android.content.Intent
44import androidx.arch.core.executor.testing.InstantTaskExecutorRule
55import androidx.test.ext.junit.runners.AndroidJUnit4
66import app.cash.turbine.test
7+ import com.duckduckgo.app.browser.api.OmnibarRepository
8+ import com.duckduckgo.app.browser.omnibar.OmnibarType
79import com.duckduckgo.app.statistics.pixels.Pixel
810import com.duckduckgo.app.statistics.pixels.Pixel.PixelType.Count
911import com.duckduckgo.app.statistics.pixels.Pixel.PixelType.Daily
@@ -82,6 +84,7 @@ class InputScreenViewModelTest {
8284 private val inputScreenDiscoveryFunnel: InputScreenDiscoveryFunnel = mock()
8385 private val inputScreenSessionUsageMetric: InputScreenSessionUsageMetric = mock()
8486 private val inputScreenConfigResolver: InputScreenConfigResolver = mock()
87+ private val omnibarRepository: OmnibarRepository = mock()
8588
8689 @Before
8790 fun setup () =
@@ -94,6 +97,7 @@ class InputScreenViewModelTest {
9497 whenever(duckChat.wasOpenedBefore()).thenReturn(false )
9598 whenever(inputScreenConfigResolver.useTopBar()).thenReturn(true )
9699 whenever(voiceSearchAvailability.isVoiceSearchAvailable).thenReturn(true )
100+ whenever(omnibarRepository.omnibarType).thenReturn(OmnibarType .SINGLE_TOP )
97101 }
98102
99103 private fun createViewModel (currentOmnibarText : String = ""): InputScreenViewModel =
@@ -111,6 +115,7 @@ class InputScreenViewModelTest {
111115 inputScreenDiscoveryFunnel = inputScreenDiscoveryFunnel,
112116 inputScreenSessionUsageMetric = inputScreenSessionUsageMetric,
113117 inputScreenConfigResolver = inputScreenConfigResolver,
118+ omnibarRepository = omnibarRepository,
114119 )
115120
116121 @Test
@@ -1970,4 +1975,29 @@ class InputScreenViewModelTest {
19701975
19711976 verify(autoComplete).fireAutocompletePixel(suggestions, deviceAppSuggestion, experimentalInputScreen = true )
19721977 }
1978+
1979+ @Test
1980+ fun `when using split omnibar and search mode selected with empty text then mainButtonsVisible is false` () =
1981+ runTest {
1982+ whenever(inputScreenConfigResolver.mainButtonsEnabled()).thenReturn(true )
1983+ whenever(omnibarRepository.omnibarType).thenReturn(OmnibarType .SPLIT )
1984+ val viewModel = createViewModel(" " )
1985+
1986+ viewModel.onSearchSelected()
1987+
1988+ assertFalse(viewModel.visibilityState.value.mainButtonsVisible)
1989+ }
1990+
1991+ @Test
1992+ fun `when user deletes all text in search mode and omnibar is SPLIT then buttons are not visible` () =
1993+ runTest {
1994+ whenever(inputScreenConfigResolver.mainButtonsEnabled()).thenReturn(true )
1995+ whenever(omnibarRepository.omnibarType).thenReturn(OmnibarType .SPLIT )
1996+ val viewModel = createViewModel(" " )
1997+ viewModel.onSearchSelected()
1998+
1999+ viewModel.onSearchInputTextChanged(" " )
2000+
2001+ assertFalse(viewModel.visibilityState.value.mainButtonsVisible)
2002+ }
19732003}
0 commit comments