258 lines
7.4 KiB
Kotlin
258 lines
7.4 KiB
Kotlin
package org.mozilla.fenix.components.toolbar
|
|
|
|
import android.content.Context
|
|
import io.mockk.Runs
|
|
import io.mockk.every
|
|
import io.mockk.just
|
|
import io.mockk.mockk
|
|
import io.mockk.verify
|
|
import mozilla.components.browser.session.Session
|
|
import org.junit.Test
|
|
|
|
import org.mozilla.fenix.browser.readermode.ReaderModeController
|
|
import org.mozilla.fenix.components.metrics.Event
|
|
import org.mozilla.fenix.components.metrics.MetricController
|
|
import org.mozilla.fenix.ext.components
|
|
import org.mozilla.fenix.ext.metrics
|
|
import org.mozilla.fenix.quickactionsheet.QuickActionSheetController
|
|
|
|
class BrowserInteractorTest {
|
|
|
|
@Test
|
|
fun onBrowserToolbarClicked() {
|
|
val context: Context = mockk()
|
|
val browserToolbarController: BrowserToolbarController = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
browserToolbarController,
|
|
mockk(),
|
|
mockk(),
|
|
mockk()
|
|
)
|
|
|
|
interactor.onBrowserToolbarClicked()
|
|
|
|
verify { browserToolbarController.handleToolbarClick() }
|
|
}
|
|
|
|
@Test
|
|
fun onBrowserToolbarMenuItemTapped() {
|
|
val context: Context = mockk()
|
|
val browserToolbarController: BrowserToolbarController = mockk(relaxed = true)
|
|
val item: ToolbarMenu.Item = mockk()
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
browserToolbarController,
|
|
mockk(),
|
|
mockk(),
|
|
mockk()
|
|
)
|
|
|
|
interactor.onBrowserToolbarMenuItemTapped(item)
|
|
|
|
verify { browserToolbarController.handleToolbarItemInteraction(item) }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetOpened() {
|
|
val context: Context = mockk()
|
|
val metrics: MetricController = mockk()
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
mockk(),
|
|
mockk(),
|
|
mockk()
|
|
)
|
|
|
|
every { context.metrics } returns metrics
|
|
every { metrics.track(Event.QuickActionSheetOpened) } just Runs
|
|
|
|
interactor.onQuickActionSheetOpened()
|
|
|
|
verify { metrics.track(Event.QuickActionSheetOpened) }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetClosed() {
|
|
val context: Context = mockk()
|
|
val metrics: MetricController = mockk()
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
mockk(),
|
|
mockk(),
|
|
mockk()
|
|
)
|
|
|
|
every { context.metrics } returns metrics
|
|
every { metrics.track(Event.QuickActionSheetClosed) } just Runs
|
|
|
|
interactor.onQuickActionSheetClosed()
|
|
|
|
verify { metrics.track(Event.QuickActionSheetClosed) }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetSharePressed() {
|
|
val context: Context = mockk()
|
|
val session: Session = mockk()
|
|
val quickActionSheetController: QuickActionSheetController = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
quickActionSheetController,
|
|
mockk(),
|
|
session
|
|
)
|
|
|
|
interactor.onQuickActionSheetSharePressed()
|
|
|
|
verify { quickActionSheetController.handleShare() }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetDownloadPressed() {
|
|
val context: Context = mockk()
|
|
val metrics: MetricController = mockk()
|
|
val quickActionSheetController: QuickActionSheetController = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
quickActionSheetController,
|
|
mockk(),
|
|
mockk()
|
|
)
|
|
|
|
every { context.metrics } returns metrics
|
|
every { metrics.track(Event.QuickActionSheetDownloadTapped) } just Runs
|
|
|
|
interactor.onQuickActionSheetDownloadPressed()
|
|
|
|
verify { quickActionSheetController.handleDownload() }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetBookmarkPressed() {
|
|
val context: Context = mockk()
|
|
val session: Session = mockk()
|
|
val quickActionSheetController: QuickActionSheetController = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
quickActionSheetController,
|
|
mockk(),
|
|
session
|
|
)
|
|
|
|
interactor.onQuickActionSheetBookmarkPressed()
|
|
|
|
verify { quickActionSheetController.handleBookmark() }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetReadPressed() {
|
|
val context: Context = mockk()
|
|
val metrics: MetricController = mockk()
|
|
val session: Session = mockk()
|
|
val readerModeController: ReaderModeController = mockk(relaxed = true)
|
|
val browserStore: BrowserStore = mockk(relaxed = true)
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
browserStore,
|
|
mockk(),
|
|
mockk(),
|
|
readerModeController,
|
|
session
|
|
)
|
|
|
|
every { context.metrics } returns metrics
|
|
every { context.components.core.sessionManager.selectedSession } returns session
|
|
every { session.readerMode } returns false
|
|
every { metrics.track(Event.QuickActionSheetReadTapped) } just Runs
|
|
|
|
interactor.onQuickActionSheetReadPressed()
|
|
|
|
verify { metrics.track(Event.QuickActionSheetReadTapped) }
|
|
verify { readerModeController.showReaderView() }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetReadPressedWithActiveReaderMode() {
|
|
val context: Context = mockk()
|
|
val metrics: MetricController = mockk()
|
|
val session: Session = mockk()
|
|
val readerModeController: ReaderModeController = mockk(relaxed = true)
|
|
val browserStore: BrowserStore = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
browserStore,
|
|
mockk(),
|
|
mockk(),
|
|
readerModeController,
|
|
session
|
|
)
|
|
|
|
every { context.metrics } returns metrics
|
|
every { context.components.core.sessionManager.selectedSession } returns session
|
|
every { session.readerMode } returns true
|
|
every { metrics.track(Event.QuickActionSheetReadTapped) } just Runs
|
|
|
|
interactor.onQuickActionSheetReadPressed()
|
|
|
|
verify { metrics.track(Event.QuickActionSheetReadTapped) }
|
|
verify { readerModeController.hideReaderView() }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetOpenLinkPressed() {
|
|
val context: Context = mockk()
|
|
val session: Session = mockk()
|
|
val quickActionSheetController: QuickActionSheetController = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
quickActionSheetController,
|
|
mockk(),
|
|
session
|
|
)
|
|
|
|
interactor.onQuickActionSheetOpenLinkPressed()
|
|
|
|
verify { quickActionSheetController.handleOpenLink() }
|
|
}
|
|
|
|
@Test
|
|
fun onQuickActionSheetAppearancePressed() {
|
|
val context: Context = mockk()
|
|
val readerModeController: ReaderModeController = mockk(relaxed = true)
|
|
|
|
val interactor = BrowserInteractor(
|
|
context,
|
|
mockk(),
|
|
mockk(),
|
|
mockk(),
|
|
readerModeController,
|
|
mockk()
|
|
)
|
|
|
|
interactor.onQuickActionSheetAppearancePressed()
|
|
|
|
verify { readerModeController.showControls() }
|
|
}
|
|
} |