Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Commit

Permalink
Adds tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sblatz authored and pocmo committed Mar 26, 2019
1 parent 416144e commit dc49785
Showing 1 changed file with 58 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ import mozilla.components.browser.search.SearchEngine
import mozilla.components.browser.search.SearchEngineManager
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.feature.awesomebar.R
import mozilla.components.feature.search.SearchUseCases
import mozilla.components.lib.fetch.httpurlconnection.HttpURLConnectionClient
import mozilla.components.support.ktx.android.graphics.drawable.toBitmap
import mozilla.components.support.test.any
import mozilla.components.support.test.eq
import mozilla.components.support.test.mock
Expand Down Expand Up @@ -248,6 +250,62 @@ class SearchSuggestionProviderTest {
}
}

@Test
fun `Provider should use engine icon by default`() {
runBlocking {
val server = MockWebServer()
server.enqueue(MockResponse().setBody(GOOGLE_MOCK_RESPONSE))
server.start()

val searchEngine: SearchEngine = mock()
val engineIcon = context.getDrawable(R.drawable.mozac_ic_device_desktop)!!.toBitmap()

doReturn(engineIcon).`when`(searchEngine).icon
doReturn("/").`when`(searchEngine).buildSuggestionsURL("fire")
doReturn(true).`when`(searchEngine).canProvideSearchSuggestions
doReturn("google").`when`(searchEngine).name

val provider = SearchSuggestionProvider(searchEngine, mock(), HttpURLConnectionClient())
try {
val suggestions = provider.onInputChanged("fire")
assertEquals(1, suggestions.size)
assertTrue(suggestions[0].icon?.invoke(20, 20)?.sameAs(engineIcon)!!)
} finally {
server.shutdown()
}
}
}

@Test
fun `Provider should use icon parameter when available`() {
runBlocking {
val server = MockWebServer()
server.enqueue(MockResponse().setBody(GOOGLE_MOCK_RESPONSE))
server.start()

val searchEngine: SearchEngine = mock()
val engineIcon = context.getDrawable(R.drawable.mozac_ic_device_desktop)!!.toBitmap()

doReturn(engineIcon).`when`(searchEngine).icon
doReturn("/").`when`(searchEngine).buildSuggestionsURL("fire")
doReturn(true).`when`(searchEngine).canProvideSearchSuggestions
doReturn("google").`when`(searchEngine).name

val paramIcon = context.getDrawable(R.drawable.mozac_ic_search)!!.toBitmap()

val provider = SearchSuggestionProvider(searchEngine, mock(), HttpURLConnectionClient(),
icon = paramIcon)

try {
val suggestions = provider.onInputChanged("fire")
assertEquals(1, suggestions.size)
assertTrue(suggestions[0].icon?.invoke(20, 20)?.sameAs(paramIcon)!!)
} finally {
server.shutdown()
}
}
}

@Test
fun `Provider should not clear suggestions`() {
val provider = SearchSuggestionProvider(mock(), mock(), mock())
Expand Down

0 comments on commit dc49785

Please sign in to comment.