Bug 1893120 - Allow minimumConfidenceScoreForUrl to be set in unit tests. r=android-reviewers,boek

Differential Revision: https://phabricator.services.mozilla.com/D209641
This commit is contained in:
mcarare 2024-05-14 13:00:48 +00:00
parent dfbdcf60f9
commit 677a7b463f

View file

@ -5,9 +5,11 @@
package mozilla.components.feature.awesomebar.provider package mozilla.components.feature.awesomebar.provider
import android.content.ClipData import android.content.ClipData
import android.content.ClipDescription
import android.content.ClipboardManager import android.content.ClipboardManager
import android.content.Context import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
import android.view.textclassifier.TextClassifier
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import mozilla.components.concept.awesomebar.AwesomeBar import mozilla.components.concept.awesomebar.AwesomeBar
@ -27,7 +29,9 @@ import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyString import org.mockito.ArgumentMatchers.anyString
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.never import org.mockito.Mockito.never
import org.mockito.Mockito.spy
import org.mockito.Mockito.times import org.mockito.Mockito.times
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
@ -114,7 +118,7 @@ class ClipboardSuggestionProviderTest {
@Test @Test
fun `provider return suggestion on input start`() = runTestOnMain { fun `provider return suggestion on input start`() = runTestOnMain {
clipboardManager.setPrimaryClip(ClipData.newPlainText("Test label", "https://www.mozilla.org")) getSuggestionWithClipboard("https://www.mozilla.org")
val provider = ClipboardSuggestionProvider(testContext, mock()) val provider = ClipboardSuggestionProvider(testContext, mock())
val suggestions = provider.onInputStarted() val suggestions = provider.onInputStarted()
@ -136,7 +140,7 @@ class ClipboardSuggestionProviderTest {
@Test @Test
fun `provider should allow customization of title and icon on suggestion`() = runTestOnMain { fun `provider should allow customization of title and icon on suggestion`() = runTestOnMain {
clipboardManager.setPrimaryClip(ClipData.newPlainText("Test label", "http://mozilla.org")) getSuggestionWithClipboard("https://www.mozilla.org")
val bitmap = Bitmap.createBitmap(2, 2, Bitmap.Config.ARGB_8888) val bitmap = Bitmap.createBitmap(2, 2, Bitmap.Config.ARGB_8888)
val provider = ClipboardSuggestionProvider( val provider = ClipboardSuggestionProvider(
testContext, testContext,
@ -159,12 +163,7 @@ class ClipboardSuggestionProviderTest {
@Test @Test
fun `clicking suggestion loads url`() = runTestOnMain { fun `clicking suggestion loads url`() = runTestOnMain {
clipboardManager.setPrimaryClip( getSuggestionWithClipboard("Hello Mozilla, https://www.mozilla.org")
ClipData.newPlainText(
"Label",
"Hello Mozilla, https://www.mozilla.org",
),
)
val useCase: SessionUseCases.LoadUrlUseCase = mock() val useCase: SessionUseCases.LoadUrlUseCase = mock()
@ -206,7 +205,7 @@ class ClipboardSuggestionProviderTest {
assertTrue(suggestions.isEmpty()) assertTrue(suggestions.isEmpty())
verify(engine, never()).speculativeConnect(anyString()) verify(engine, never()).speculativeConnect(anyString())
clipboardManager.setPrimaryClip(ClipData.newPlainText("Test label", "https://www.mozilla.org")) getSuggestionWithClipboard("https://www.mozilla.org")
suggestions = provider.onInputStarted() suggestions = provider.onInputStarted()
assertEquals(1, suggestions.size) assertEquals(1, suggestions.size)
verify(engine, times(1)).speculativeConnect(eq("https://www.mozilla.org")) verify(engine, times(1)).speculativeConnect(eq("https://www.mozilla.org"))
@ -230,7 +229,14 @@ class ClipboardSuggestionProviderTest {
} }
private suspend fun getSuggestionWithClipboard(text: String): AwesomeBar.Suggestion? { private suspend fun getSuggestionWithClipboard(text: String): AwesomeBar.Suggestion? {
clipboardManager.setPrimaryClip(ClipData.newPlainText("Test label", text)) val clipData = spy(ClipData.newPlainText("Test label", text))
val description: ClipDescription = mock()
doReturn(description).`when`(clipData).description
doReturn(0.7F).`when`(description).getConfidenceScore(TextClassifier.TYPE_URL)
doReturn(true).`when`(description).hasMimeType("text/plain")
clipboardManager.setPrimaryClip(clipData)
return getSuggestion() return getSuggestion()
} }