diff --git a/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt b/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt index 7acaec215..41567f803 100644 --- a/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt @@ -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) -> Unit ) { runBlocking { - val history = this@createSynchronousPagedHistoryProvider.getVisitsPaginated( + val history = getVisitsPaginated( offset, numberOfItems, - listOf( + excludeTypes = listOf( VisitType.NOT_A_VISIT, VisitType.DOWNLOAD, VisitType.REDIRECT_TEMPORARY, diff --git a/app/src/test/java/org/mozilla/fenix/components/history/PagedHistoryProviderTest.kt b/app/src/test/java/org/mozilla/fenix/components/history/PagedHistoryProviderTest.kt new file mode 100644 index 000000000..fe58e9a56 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/components/history/PagedHistoryProviderTest.kt @@ -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(mockk(), mockk()) + val onComplete = mockk<(List) -> 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) } + } +} diff --git a/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt b/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt index 5c69b4bf0..ec53861a2 100644 --- a/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt @@ -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"