1
0
Fork 0

For #8470 - Fix Unit Tests MockKExceptions (#8471)

master
Emily Kager 2020-02-17 17:13:25 -08:00 committed by GitHub
parent 2a42c30c57
commit 39db8c9557
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 7 deletions

View File

@ -47,7 +47,6 @@ object GeckoProvider {
val runtimeSettings = builder val runtimeSettings = builder
.crashHandler(CrashHandlerService::class.java) .crashHandler(CrashHandlerService::class.java)
.useContentProcessHint(true)
.telemetryDelegate(GeckoAdapter()) .telemetryDelegate(GeckoAdapter())
.debugLogging(Config.channel.isDebug) .debugLogging(Config.channel.isDebug)
.aboutConfigEnabled(true) .aboutConfigEnabled(true)

View File

@ -5,10 +5,10 @@
package org.mozilla.fenix.home package org.mozilla.fenix.home
import android.view.View import android.view.View
import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.navigation.NavController import androidx.navigation.NavController
import io.mockk.every import io.mockk.every
import io.mockk.mockk import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.verify import io.mockk.verify
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -17,21 +17,24 @@ import kotlinx.coroutines.ObsoleteCoroutinesApi
import kotlinx.coroutines.newSingleThreadContext import kotlinx.coroutines.newSingleThreadContext
import kotlinx.coroutines.test.resetMain import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.setMain import kotlinx.coroutines.test.setMain
import mozilla.components.browser.session.SessionManager
import mozilla.components.concept.engine.Engine
import mozilla.components.feature.tab.collections.TabCollection import mozilla.components.feature.tab.collections.TabCollection
import org.junit.After import org.junit.After
import mozilla.components.feature.tab.collections.Tab as ComponentTab
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager
import org.mozilla.fenix.components.TabCollectionStorage
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.home.sessioncontrol.DefaultSessionControlController import org.mozilla.fenix.home.sessioncontrol.DefaultSessionControlController
import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.settings.SupportUtils
import mozilla.components.feature.tab.collections.Tab as ComponentTab
@ExperimentalCoroutinesApi @ExperimentalCoroutinesApi
@UseExperimental(ObsoleteCoroutinesApi::class) @UseExperimental(ObsoleteCoroutinesApi::class)
@ -41,7 +44,6 @@ class DefaultSessionControlControllerTest {
private val activity: HomeActivity = mockk(relaxed = true) private val activity: HomeActivity = mockk(relaxed = true)
private val store: HomeFragmentStore = mockk(relaxed = true) private val store: HomeFragmentStore = mockk(relaxed = true)
private val navController: NavController = mockk(relaxed = true) private val navController: NavController = mockk(relaxed = true)
private val homeLayout: MotionLayout = mockk(relaxed = true)
private val browsingModeManager: BrowsingModeManager = mockk(relaxed = true) private val browsingModeManager: BrowsingModeManager = mockk(relaxed = true)
private val closeTab: (sessionId: String) -> Unit = mockk(relaxed = true) private val closeTab: (sessionId: String) -> Unit = mockk(relaxed = true)
private val closeAllTabs: (isPrivateMode: Boolean) -> Unit = mockk(relaxed = true) private val closeAllTabs: (isPrivateMode: Boolean) -> Unit = mockk(relaxed = true)
@ -55,12 +57,19 @@ class DefaultSessionControlControllerTest {
mockk(relaxed = true) mockk(relaxed = true)
private val metrics: MetricController = mockk(relaxed = true) private val metrics: MetricController = mockk(relaxed = true)
private val state: HomeFragmentState = mockk(relaxed = true) private val state: HomeFragmentState = mockk(relaxed = true)
private val sessionManager: SessionManager = mockk(relaxed = true)
private val engine: Engine = mockk(relaxed = true)
private val tabCollectionStorage: TabCollectionStorage = mockk(relaxed = true)
private lateinit var controller: DefaultSessionControlController private lateinit var controller: DefaultSessionControlController
@Before @Before
fun setup() { fun setup() {
Dispatchers.setMain(mainThreadSurrogate) Dispatchers.setMain(mainThreadSurrogate)
mockkStatic("org.mozilla.fenix.ext.ContextKt")
every { activity.components.core.engine } returns engine
every { activity.components.core.sessionManager } returns sessionManager
every { activity.components.core.tabCollectionStorage } returns tabCollectionStorage
every { store.state } returns state every { store.state } returns state
every { state.collections } returns emptyList() every { state.collections } returns emptyList()

View File

@ -29,6 +29,7 @@ import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.browser.browsingmode.DefaultBrowsingModeManager
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.Services import org.mozilla.fenix.components.Services
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
@ -47,6 +48,7 @@ class BookmarkControllerTest {
private val homeActivity: HomeActivity = mockk(relaxed = true) private val homeActivity: HomeActivity = mockk(relaxed = true)
private val services: Services = mockk(relaxed = true) private val services: Services = mockk(relaxed = true)
private val browsingModeManager: DefaultBrowsingModeManager = mockk(relaxed = true)
private val item = private val item =
BookmarkNode(BookmarkNodeType.ITEM, "456", "123", 0, "Mozilla", "http://mozilla.org", null) BookmarkNode(BookmarkNodeType.ITEM, "456", "123", 0, "Mozilla", "http://mozilla.org", null)
@ -79,9 +81,12 @@ class BookmarkControllerTest {
// needed for mocking 'getSystemService<ClipboardManager>()' // needed for mocking 'getSystemService<ClipboardManager>()'
mockkStatic( mockkStatic(
"androidx.core.content.ContextCompat", "androidx.core.content.ContextCompat",
"android.content.ClipData" "android.content.ClipData",
"org.mozilla.fenix.ext.ContextKt"
) )
every { homeActivity.components.browsingModeManager } returns browsingModeManager
every { homeActivity.components.services } returns services every { homeActivity.components.services } returns services
every { navController.currentDestination } returns NavDestination("").apply { every { navController.currentDestination } returns NavDestination("").apply {
id = R.id.bookmarkFragment id = R.id.bookmarkFragment
@ -204,7 +209,7 @@ class BookmarkControllerTest {
verifyOrder { verifyOrder {
invokePendingDeletion.invoke() invokePendingDeletion.invoke()
homeActivity.components.browsingModeManager.mode = BrowsingMode.Normal browsingModeManager.mode = BrowsingMode.Normal
homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks) homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks)
} }
} }
@ -215,7 +220,7 @@ class BookmarkControllerTest {
verifyOrder { verifyOrder {
invokePendingDeletion.invoke() invokePendingDeletion.invoke()
homeActivity.components.browsingModeManager.mode = BrowsingMode.Private browsingModeManager.mode = BrowsingMode.Private
homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks) homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks)
} }
} }