@@ -44,7 +44,7 @@ import com.duckduckgo.app.bookmarks.model.SavedSite
4444import com.duckduckgo.app.bookmarks.model.SavedSite.Favorite
4545import com.duckduckgo.app.browser.BrowserTabViewModel.Command
4646import com.duckduckgo.app.browser.BrowserTabViewModel.Command.Navigate
47- import com.duckduckgo.app.browser.BrowserTabViewModel.FireButton
47+ import com.duckduckgo.app.browser.BrowserTabViewModel.HighlightableButton
4848import com.duckduckgo.app.browser.LongPressHandler.RequiredAction.DownloadFile
4949import com.duckduckgo.app.browser.LongPressHandler.RequiredAction.OpenInNewTab
5050import com.duckduckgo.app.browser.addtohome.AddToHomeCapabilityDetector
@@ -382,7 +382,7 @@ class BrowserTabViewModelTest {
382382 temporaryTrackingWhitelistDao = mockTemporaryTrackingWhitelistDao
383383 )
384384
385- testee.loadData(" abc" , null , false )
385+ testee.loadData(" abc" , null , false , false )
386386 testee.command.observeForever(mockCommandObserver)
387387 }
388388
@@ -504,21 +504,21 @@ class BrowserTabViewModelTest {
504504 fun whenBrowsingAndUrlPresentThenAddBookmarkFavoriteButtonsEnabled () {
505505 loadUrl(" www.example.com" , isBrowserShowing = true )
506506 assertTrue(browserViewState().canAddBookmarks)
507- assertTrue(browserViewState().canAddFavorite )
507+ assertTrue(browserViewState().addFavorite.isEnabled() )
508508 }
509509
510510 @Test
511511 fun whenBrowsingAndNoUrlThenAddBookmarkFavoriteButtonsDisabled () {
512512 loadUrl(null , isBrowserShowing = true )
513513 assertFalse(browserViewState().canAddBookmarks)
514- assertFalse(browserViewState().canAddFavorite )
514+ assertFalse(browserViewState().addFavorite.isEnabled() )
515515 }
516516
517517 @Test
518518 fun whenNotBrowsingAndUrlPresentThenAddBookmarkFavoriteButtonsDisabled () {
519519 loadUrl(" www.example.com" , isBrowserShowing = false )
520520 assertFalse(browserViewState().canAddBookmarks)
521- assertFalse(browserViewState().canAddFavorite )
521+ assertFalse(browserViewState().addFavorite.isEnabled() )
522522 }
523523
524524 @Test
@@ -973,31 +973,31 @@ class BrowserTabViewModelTest {
973973
974974 @Test
975975 fun whenInitialisedThenFireButtonIsShown () {
976- assertTrue(browserViewState().fireButton is FireButton .Visible )
976+ assertTrue(browserViewState().fireButton is HighlightableButton .Visible )
977977 }
978978
979979 @Test
980980 fun whenOmnibarInputDoesNotHaveFocusAndHasQueryThenFireButtonIsShown () {
981981 testee.onOmnibarInputStateChanged(" query" , false , hasQueryChanged = false )
982- assertTrue(browserViewState().fireButton is FireButton .Visible )
982+ assertTrue(browserViewState().fireButton is HighlightableButton .Visible )
983983 }
984984
985985 @Test
986986 fun whenOmnibarInputDoesNotHaveFocusOrQueryThenFireButtonIsShown () {
987987 testee.onOmnibarInputStateChanged(" " , false , hasQueryChanged = false )
988- assertTrue(browserViewState().fireButton is FireButton .Visible )
988+ assertTrue(browserViewState().fireButton is HighlightableButton .Visible )
989989 }
990990
991991 @Test
992992 fun whenOmnibarInputHasFocusAndNoQueryThenFireButtonIsShown () {
993993 testee.onOmnibarInputStateChanged(" " , true , hasQueryChanged = false )
994- assertTrue(browserViewState().fireButton is FireButton .Visible )
994+ assertTrue(browserViewState().fireButton is HighlightableButton .Visible )
995995 }
996996
997997 @Test
998998 fun whenOmnibarInputHasFocusAndQueryThenFireButtonIsHidden () {
999999 testee.onOmnibarInputStateChanged(" query" , true , hasQueryChanged = false )
1000- assertTrue(browserViewState().fireButton is FireButton .Gone )
1000+ assertTrue(browserViewState().fireButton is HighlightableButton .Gone )
10011001 }
10021002
10031003 @Test
@@ -1031,31 +1031,31 @@ class BrowserTabViewModelTest {
10311031
10321032 @Test
10331033 fun whenInitialisedThenMenuButtonIsShown () {
1034- assertTrue(browserViewState().showMenuButton)
1034+ assertTrue(browserViewState().showMenuButton.isEnabled() )
10351035 }
10361036
10371037 @Test
10381038 fun whenOmnibarInputDoesNotHaveFocusOrQueryThenMenuButtonIsShown () {
10391039 testee.onOmnibarInputStateChanged(" " , false , hasQueryChanged = false )
1040- assertTrue(browserViewState().showMenuButton)
1040+ assertTrue(browserViewState().showMenuButton.isEnabled() )
10411041 }
10421042
10431043 @Test
10441044 fun whenOmnibarInputDoesNotHaveFocusAndHasQueryThenMenuButtonIsShown () {
10451045 testee.onOmnibarInputStateChanged(" query" , false , hasQueryChanged = false )
1046- assertTrue(browserViewState().showMenuButton)
1046+ assertTrue(browserViewState().showMenuButton.isEnabled() )
10471047 }
10481048
10491049 @Test
10501050 fun whenOmnibarInputHasFocusAndNoQueryThenMenuButtonIsShown () {
10511051 testee.onOmnibarInputStateChanged(" " , true , hasQueryChanged = false )
1052- assertTrue(browserViewState().showMenuButton)
1052+ assertTrue(browserViewState().showMenuButton.isEnabled() )
10531053 }
10541054
10551055 @Test
10561056 fun whenOmnibarInputHasFocusAndQueryThenMenuButtonIsHidden () {
10571057 testee.onOmnibarInputStateChanged(" query" , true , hasQueryChanged = false )
1058- assertFalse(browserViewState().showMenuButton)
1058+ assertFalse(browserViewState().showMenuButton.isEnabled() )
10591059 }
10601060
10611061 @Test
@@ -1569,25 +1569,64 @@ class BrowserTabViewModelTest {
15691569
15701570 @Test
15711571 fun whenUrlNullThenSetBrowserNotShowing () = coroutineRule.runBlocking {
1572- testee.loadData(" id" , null , false )
1572+ testee.loadData(" id" , null , false , false )
15731573 testee.determineShowBrowser()
15741574 assertEquals(false , testee.browserViewState.value?.browserShowing)
15751575 }
15761576
15771577 @Test
15781578 fun whenUrlBlankThenSetBrowserNotShowing () = coroutineRule.runBlocking {
1579- testee.loadData(" id" , " " , false )
1579+ testee.loadData(" id" , " " , false , false )
15801580 testee.determineShowBrowser()
15811581 assertEquals(false , testee.browserViewState.value?.browserShowing)
15821582 }
15831583
15841584 @Test
15851585 fun whenUrlPresentThenSetBrowserShowing () = coroutineRule.runBlocking {
1586- testee.loadData(" id" , " https://example.com" , false )
1586+ testee.loadData(" id" , " https://example.com" , false , false )
15871587 testee.determineShowBrowser()
15881588 assertEquals(true , testee.browserViewState.value?.browserShowing)
15891589 }
15901590
1591+ @Test
1592+ fun whenFavoritesOnboardingAndSiteLoadedThenHighglightMenuButton () = coroutineRule.runBlocking {
1593+ testee.loadData(" id" , " https://example.com" , false , true )
1594+ testee.determineShowBrowser()
1595+ assertEquals(true , testee.browserViewState.value?.showMenuButton?.isHighlighted())
1596+ }
1597+
1598+ @Test
1599+ fun whenFavoritesOnboardingAndUserOpensOptionsMenuThenHighglightAddFavoriteOption () = coroutineRule.runBlocking {
1600+ testee.loadData(" id" , " https://example.com" , false , true )
1601+ testee.determineShowBrowser()
1602+
1603+ testee.onBrowserMenuClicked()
1604+
1605+ assertEquals(true , testee.browserViewState.value?.addFavorite?.isHighlighted())
1606+ }
1607+
1608+ @Test
1609+ fun whenFavoritesOnboardingAndUserClosesOptionsMenuThenMenuButtonNotHighlighted () = coroutineRule.runBlocking {
1610+ testee.loadData(" id" , " https://example.com" , false , true )
1611+ testee.determineShowBrowser()
1612+
1613+ testee.onBrowserMenuClosed()
1614+
1615+ assertEquals(false , testee.browserViewState.value?.addFavorite?.isHighlighted())
1616+ }
1617+
1618+ @Test
1619+ fun whenFavoritesOnboardingAndUserClosesOptionsMenuThenLoadingNewSiteDoesNotHighlightMenuOption () = coroutineRule.runBlocking {
1620+ testee.loadData(" id" , " https://example.com" , false , true )
1621+ testee.determineShowBrowser()
1622+ testee.onBrowserMenuClicked()
1623+ testee.onBrowserMenuClosed()
1624+
1625+ testee.determineShowBrowser()
1626+
1627+ assertEquals(false , testee.browserViewState.value?.addFavorite?.isHighlighted())
1628+ }
1629+
15911630 @Test
15921631 fun whenRecoveringFromProcessGoneThenShowErrorWithAction () {
15931632 testee.recoverFromRenderProcessGone()
@@ -2231,7 +2270,7 @@ class BrowserTabViewModelTest {
22312270 setupNavigation(skipHome = false , isBrowsing = true , canGoBack = false )
22322271 assertTrue(testee.onUserPressedBack())
22332272 assertFalse(browserViewState().canAddBookmarks)
2234- assertFalse(browserViewState().canAddFavorite )
2273+ assertFalse(browserViewState().addFavorite.isEnabled() )
22352274 }
22362275
22372276 @Test
@@ -2289,7 +2328,7 @@ class BrowserTabViewModelTest {
22892328 testee.onUserPressedBack()
22902329 testee.onUserPressedForward()
22912330 assertTrue(browserViewState().canAddBookmarks)
2292- assertTrue(browserViewState().canAddFavorite )
2331+ assertTrue(browserViewState().addFavorite.isEnabled() )
22932332 }
22942333
22952334 @Test
@@ -3345,7 +3384,7 @@ class BrowserTabViewModelTest {
33453384
33463385 private fun givenOneActiveTabSelected () {
33473386 selectedTabLiveData.value = TabEntity (" TAB_ID" , " https://example.com" , " " , skipHome = false , viewed = true , position = 0 )
3348- testee.loadData(" TAB_ID" , " https://example.com" , false )
3387+ testee.loadData(" TAB_ID" , " https://example.com" , false , false )
33493388 }
33503389
33513390 private fun givenFireproofWebsiteDomain (vararg fireproofWebsitesDomain : String ) {
@@ -3363,7 +3402,7 @@ class BrowserTabViewModelTest {
33633402 val siteLiveData = MutableLiveData <Site >()
33643403 siteLiveData.value = site
33653404 whenever(mockTabRepository.retrieveSiteData(" TAB_ID" )).thenReturn(siteLiveData)
3366- testee.loadData(" TAB_ID" , domain, false )
3405+ testee.loadData(" TAB_ID" , domain, false , false )
33673406 }
33683407
33693408 private fun setBrowserShowing (isBrowsing : Boolean ) {
0 commit comments