Test paged history provider
This commit is contained in:
parent
239e3de5e9
commit
8d1bd10e6b
|
@ -26,16 +26,17 @@ interface PagedHistoryProvider {
|
|||
// If we run this in our own coroutineScope it breaks the PagedList
|
||||
fun HistoryStorage.createSynchronousPagedHistoryProvider(): PagedHistoryProvider {
|
||||
return object : PagedHistoryProvider {
|
||||
|
||||
override fun getHistory(
|
||||
offset: Long,
|
||||
numberOfItems: Long,
|
||||
onComplete: (List<VisitInfo>) -> Unit
|
||||
) {
|
||||
runBlocking {
|
||||
val history = this@createSynchronousPagedHistoryProvider.getVisitsPaginated(
|
||||
val history = getVisitsPaginated(
|
||||
offset,
|
||||
numberOfItems,
|
||||
listOf(
|
||||
excludeTypes = listOf(
|
||||
VisitType.NOT_A_VISIT,
|
||||
VisitType.DOWNLOAD,
|
||||
VisitType.REDIRECT_TEMPORARY,
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.fenix.components.history
|
||||
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import mozilla.components.concept.storage.HistoryStorage
|
||||
import mozilla.components.concept.storage.VisitInfo
|
||||
import mozilla.components.concept.storage.VisitType
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class PagedHistoryProviderTest {
|
||||
|
||||
private lateinit var storage: HistoryStorage
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
storage = mockk()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `getHistory uses getVisitsPaginated`() {
|
||||
val provider = storage.createSynchronousPagedHistoryProvider()
|
||||
val results = listOf<VisitInfo>(mockk(), mockk())
|
||||
val onComplete = mockk<(List<VisitInfo>) -> Unit>(relaxed = true)
|
||||
|
||||
coEvery { storage.getVisitsPaginated(any(), any(), any()) } returns results
|
||||
|
||||
provider.getHistory(10L, 5, onComplete)
|
||||
|
||||
coVerify {
|
||||
storage.getVisitsPaginated(
|
||||
offset = 10L,
|
||||
count = 5,
|
||||
excludeTypes = listOf(
|
||||
VisitType.NOT_A_VISIT,
|
||||
VisitType.DOWNLOAD,
|
||||
VisitType.REDIRECT_TEMPORARY,
|
||||
VisitType.RELOAD,
|
||||
VisitType.EMBED,
|
||||
VisitType.FRAMED_LINK,
|
||||
VisitType.REDIRECT_PERMANENT
|
||||
)
|
||||
)
|
||||
}
|
||||
verify { onComplete(results) }
|
||||
}
|
||||
}
|
|
@ -66,7 +66,6 @@ import org.mozilla.fenix.ext.components
|
|||
import org.mozilla.fenix.ext.directionsEq
|
||||
import org.mozilla.fenix.ext.nav
|
||||
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
||||
import org.mozilla.fenix.home.Tab
|
||||
import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
|
@ -88,7 +87,6 @@ class DefaultBrowserToolbarControllerTest {
|
|||
@RelaxedMockK private lateinit var engineView: EngineView
|
||||
@RelaxedMockK private lateinit var currentSession: Session
|
||||
@RelaxedMockK private lateinit var openInFenixIntent: Intent
|
||||
@RelaxedMockK private lateinit var currentSessionAsTab: Tab
|
||||
@RelaxedMockK private lateinit var metrics: MetricController
|
||||
@RelaxedMockK private lateinit var searchUseCases: SearchUseCases
|
||||
@RelaxedMockK private lateinit var sessionUseCases: SessionUseCases
|
||||
|
@ -185,6 +183,22 @@ class DefaultBrowserToolbarControllerTest {
|
|||
verify { onTabCounterClicked() }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `handle reader mode enabled`() = runBlockingTest {
|
||||
val controller = createController(scope = this)
|
||||
controller.handleReaderModePressed(enabled = true)
|
||||
|
||||
verify { readerModeController.showReaderView() }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `handle reader mode disabled`() = runBlockingTest {
|
||||
val controller = createController(scope = this)
|
||||
controller.handleReaderModePressed(enabled = false)
|
||||
|
||||
verify { readerModeController.hideReaderView() }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun handleToolbarClick() = runBlockingTest {
|
||||
every { currentSession.id } returns "1"
|
||||
|
|
Loading…
Reference in New Issue
Block a user