@@ -24,6 +24,7 @@ import android.arch.persistence.room.Room
2424import android.net.Uri
2525import android.support.test.InstrumentationRegistry
2626import com.duckduckgo.app.autocomplete.api.AutoCompleteApi
27+ import com.duckduckgo.app.blockingObserve
2728import com.duckduckgo.app.bookmarks.db.BookmarkEntity
2829import com.duckduckgo.app.bookmarks.db.BookmarksDao
2930import com.duckduckgo.app.bookmarks.ui.BookmarksActivity
@@ -45,7 +46,9 @@ import com.duckduckgo.app.settings.db.SettingsDataStore
4546import com.duckduckgo.app.trackerdetection.model.TrackerNetwork
4647import com.duckduckgo.app.trackerdetection.model.TrackerNetworks
4748import com.duckduckgo.app.trackerdetection.model.TrackingEvent
49+ import com.nhaarman.mockito_kotlin.any
4850import com.nhaarman.mockito_kotlin.doReturn
51+ import com.nhaarman.mockito_kotlin.mock
4952import com.nhaarman.mockito_kotlin.whenever
5053import org.junit.After
5154import org.junit.Assert.*
@@ -100,11 +103,7 @@ class BrowserViewModelTest {
100103 private lateinit var db: AppDatabase
101104 private lateinit var appConfigurationDao: AppConfigurationDao
102105
103- private val testOmnibarConverter: OmnibarEntryConverter = object : OmnibarEntryConverter {
104- override fun convertUri (input : String ): String = " duckduckgo.com"
105- override fun isWebUrl (inputQuery : String ): Boolean = true
106- override fun convertQueryToUri (inputQuery : String ): Uri = Uri .parse(" duckduckgo.com" )
107- }
106+ private val mockOmnibarConverter: OmnibarEntryConverter = mock()
108107
109108 private lateinit var testee: BrowserViewModel
110109
@@ -118,7 +117,7 @@ class BrowserViewModelTest {
118117 appConfigurationDao = db.appConfigurationDao()
119118
120119 testee = BrowserViewModel (
121- queryUrlConverter = testOmnibarConverter ,
120+ queryUrlConverter = mockOmnibarConverter ,
122121 duckDuckGoUrlDetector = DuckDuckGoUrlDetector (),
123122 termsOfServiceStore = mockTermsOfServiceStore,
124123 trackerNetworks = TrackerNetworks (),
@@ -132,6 +131,9 @@ class BrowserViewModelTest {
132131
133132 testee.url.observeForever(mockQueryObserver)
134133 testee.command.observeForever(mockNavigationObserver)
134+
135+ whenever(mockOmnibarConverter.convertQueryToUri(any())).thenReturn(Uri .parse(" duckduckgo.com" ))
136+
135137 }
136138
137139 @After
@@ -142,6 +144,13 @@ class BrowserViewModelTest {
142144 testee.command.removeObserver(mockNavigationObserver)
143145 }
144146
147+ @Test
148+ fun whenSubmittedQueryHasWhitespaceItIsTrimmed () {
149+ testee.onUserSubmittedQuery(" nytimes.com " )
150+ verify(mockOmnibarConverter).isWebUrl(" nytimes.com" )
151+ assertEquals(" nytimes.com" , testee.viewState.value!! .omnibarText)
152+ }
153+
145154 @Test
146155 fun whenBookmarksResultCodeIsOpenUrlThenNavigate () {
147156 testee.receivedBookmarksResult(BookmarksActivity .OPEN_URL_RESULT_CODE , " www.example.com" )
0 commit comments