@@ -59,7 +59,12 @@ import com.duckduckgo.app.browser.session.WebViewSessionStorage
5959import com.duckduckgo.app.cta.db.DismissedCtaDao
6060import com.duckduckgo.app.cta.model.CtaId
6161import com.duckduckgo.app.cta.model.DismissedCta
62- import com.duckduckgo.app.cta.ui.*
62+ import com.duckduckgo.app.cta.ui.Cta
63+ import com.duckduckgo.app.cta.ui.CtaViewModel
64+ import com.duckduckgo.app.cta.ui.DaxBubbleCta
65+ import com.duckduckgo.app.cta.ui.DaxDialogCta
66+ import com.duckduckgo.app.cta.ui.HomePanelCta
67+ import com.duckduckgo.app.cta.ui.UseOurAppCta
6368import com.duckduckgo.app.email.EmailManager
6469import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteDao
6570import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteEntity
@@ -109,7 +114,16 @@ import com.duckduckgo.app.trackerdetection.EntityLookup
109114import com.duckduckgo.app.trackerdetection.model.TrackingEvent
110115import com.duckduckgo.app.usage.search.SearchCountDao
111116import com.duckduckgo.app.widget.ui.WidgetCapabilities
112- import com.nhaarman.mockitokotlin2.*
117+ import com.nhaarman.mockitokotlin2.any
118+ import com.nhaarman.mockitokotlin2.anyOrNull
119+ import com.nhaarman.mockitokotlin2.atLeastOnce
120+ import com.nhaarman.mockitokotlin2.doAnswer
121+ import com.nhaarman.mockitokotlin2.doReturn
122+ import com.nhaarman.mockitokotlin2.eq
123+ import com.nhaarman.mockitokotlin2.firstValue
124+ import com.nhaarman.mockitokotlin2.lastValue
125+ import com.nhaarman.mockitokotlin2.mock
126+ import com.nhaarman.mockitokotlin2.whenever
113127import dagger.Lazy
114128import io.reactivex.Observable
115129import io.reactivex.Single
@@ -129,13 +143,17 @@ import org.junit.Assert.*
129143import org.junit.Before
130144import org.junit.Rule
131145import org.junit.Test
132- import org.mockito.*
146+ import org.mockito.ArgumentCaptor
133147import org.mockito.ArgumentMatchers.anyString
148+ import org.mockito.Captor
149+ import org.mockito.Mock
150+ import org.mockito.Mockito
134151import org.mockito.Mockito.never
135152import org.mockito.Mockito.verify
153+ import org.mockito.MockitoAnnotations
136154import org.mockito.internal.util.DefaultMockingDetails
137155import java.io.File
138- import java.util.*
156+ import java.util.Locale
139157import java.util.concurrent.TimeUnit
140158
141159@FlowPreview
@@ -2895,7 +2913,7 @@ class BrowserTabViewModelTest {
28952913 givenOneActiveTabSelected()
28962914 val bitmap: Bitmap = Bitmap .createBitmap(1 , 1 , Bitmap .Config .RGB_565 )
28972915
2898- testee.iconReceived(bitmap)
2916+ testee.iconReceived(" https://example.com " , bitmap)
28992917
29002918 verify(mockFaviconManager).saveToTemp(" TAB_ID" , bitmap, " https://example.com" )
29012919 }
@@ -2907,7 +2925,7 @@ class BrowserTabViewModelTest {
29072925 val file = File (" test" )
29082926 whenever(mockFaviconManager.saveToTemp(any(), any(), any())).thenReturn(file)
29092927
2910- testee.iconReceived(bitmap)
2928+ testee.iconReceived(" https://example.com " , bitmap)
29112929
29122930 verify(mockTabRepository).updateTabFavicon(" TAB_ID" , file.name)
29132931 }
@@ -2918,11 +2936,24 @@ class BrowserTabViewModelTest {
29182936 val bitmap: Bitmap = Bitmap .createBitmap(1 , 1 , Bitmap .Config .RGB_565 )
29192937 whenever(mockFaviconManager.saveToTemp(any(), any(), any())).thenReturn(null )
29202938
2921- testee.iconReceived(bitmap)
2939+ testee.iconReceived(" https://example.com " , bitmap)
29222940
29232941 verify(mockTabRepository, never()).updateTabFavicon(any(), any())
29242942 }
29252943
2944+ @Test
2945+ fun whenIconReceivedFromPreviousUrkThenDontUpdateTabFavicon () = coroutineRule.runBlocking {
2946+ givenOneActiveTabSelected()
2947+ val bitmap: Bitmap = Bitmap .createBitmap(1 , 1 , Bitmap .Config .RGB_565 )
2948+ val file = File (" test" )
2949+ whenever(mockFaviconManager.saveToTemp(any(), any(), any())).thenReturn(file)
2950+
2951+ testee.iconReceived(" https://notexample.com" , bitmap)
2952+
2953+ verify(mockPixel).enqueueFire(AppPixelName .FAVICON_WRONG_URL_ERROR )
2954+ verify(mockTabRepository, never()).updateTabFavicon(" TAB_ID" , file.name)
2955+ }
2956+
29262957 @Test
29272958 fun whenOnSiteLocationPermissionSelectedAndPermissionIsAllowAlwaysThenPersistFavicon () = coroutineRule.runBlocking {
29282959 val url = " http://example.com"
0 commit comments