|
|
@ -11,7 +11,9 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
|
|
|
|
import kotlinx.coroutines.test.TestCoroutineScope
|
|
|
|
import kotlinx.coroutines.test.TestCoroutineScope
|
|
|
|
import mozilla.components.browser.state.state.content.DownloadState
|
|
|
|
import mozilla.components.browser.state.state.content.DownloadState
|
|
|
|
import org.junit.After
|
|
|
|
import org.junit.After
|
|
|
|
|
|
|
|
import org.junit.Assert.assertEquals
|
|
|
|
import org.junit.Assert.assertFalse
|
|
|
|
import org.junit.Assert.assertFalse
|
|
|
|
|
|
|
|
import org.junit.Assert.assertTrue
|
|
|
|
import org.junit.Before
|
|
|
|
import org.junit.Before
|
|
|
|
import org.junit.Test
|
|
|
|
import org.junit.Test
|
|
|
|
import org.junit.runner.RunWith
|
|
|
|
import org.junit.runner.RunWith
|
|
|
@ -33,10 +35,23 @@ class DownloadControllerTest {
|
|
|
|
private val scope = TestCoroutineScope()
|
|
|
|
private val scope = TestCoroutineScope()
|
|
|
|
private val store: DownloadFragmentStore = mockk(relaxed = true)
|
|
|
|
private val store: DownloadFragmentStore = mockk(relaxed = true)
|
|
|
|
private val state: DownloadFragmentState = mockk(relaxed = true)
|
|
|
|
private val state: DownloadFragmentState = mockk(relaxed = true)
|
|
|
|
private val openToFileManager: (DownloadItem, BrowsingMode?) -> Unit = mockk(relaxed = true)
|
|
|
|
|
|
|
|
private val displayDeleteAll: () -> Unit = mockk(relaxed = true)
|
|
|
|
private val openToFileManager: (DownloadItem, BrowsingMode?) -> Unit = { item, mode ->
|
|
|
|
private val invalidateOptionsMenu: () -> Unit = mockk(relaxed = true)
|
|
|
|
openToFileManagerCapturedItem = item
|
|
|
|
private val deleteDownloadItems: (Set<DownloadItem>) -> Unit = mockk(relaxed = true)
|
|
|
|
openToFileManagerCapturedMode = mode
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private var openToFileManagerCapturedItem: DownloadItem? = null
|
|
|
|
|
|
|
|
private var openToFileManagerCapturedMode: BrowsingMode? = null
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private val displayDeleteAll: () -> Unit = { wasDisplayDeleteAllCalled = true }
|
|
|
|
|
|
|
|
private var wasDisplayDeleteAllCalled = false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private val invalidateOptionsMenu: () -> Unit = { wasInvalidateOptionsMenuCalled = true }
|
|
|
|
|
|
|
|
private var wasInvalidateOptionsMenuCalled = false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private val deleteDownloadItems: (Set<DownloadItem>) -> Unit = { deleteDownloadItemsCapturedItems = it }
|
|
|
|
|
|
|
|
private var deleteDownloadItemsCapturedItems = emptySet<DownloadItem>()
|
|
|
|
|
|
|
|
|
|
|
|
private val controller = DefaultDownloadController(
|
|
|
|
private val controller = DefaultDownloadController(
|
|
|
|
store,
|
|
|
|
store,
|
|
|
|
openToFileManager,
|
|
|
|
openToFileManager,
|
|
|
@ -59,18 +74,16 @@ class DownloadControllerTest {
|
|
|
|
fun onPressDownloadItemInNormalMode() {
|
|
|
|
fun onPressDownloadItemInNormalMode() {
|
|
|
|
controller.handleOpen(downloadItem)
|
|
|
|
controller.handleOpen(downloadItem)
|
|
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
assertEquals(downloadItem, openToFileManagerCapturedItem)
|
|
|
|
openToFileManager(downloadItem, null)
|
|
|
|
assertEquals(null, openToFileManagerCapturedMode)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun onOpenItemInNormalMode() {
|
|
|
|
fun onOpenItemInNormalMode() {
|
|
|
|
controller.handleOpen(downloadItem, BrowsingMode.Normal)
|
|
|
|
controller.handleOpen(downloadItem, BrowsingMode.Normal)
|
|
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
assertEquals(downloadItem, openToFileManagerCapturedItem)
|
|
|
|
openToFileManager(downloadItem, BrowsingMode.Normal)
|
|
|
|
assertEquals(BrowsingMode.Normal, openToFileManagerCapturedMode)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
@ -106,18 +119,14 @@ class DownloadControllerTest {
|
|
|
|
fun onModeSwitched() {
|
|
|
|
fun onModeSwitched() {
|
|
|
|
controller.handleModeSwitched()
|
|
|
|
controller.handleModeSwitched()
|
|
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
assertTrue(wasInvalidateOptionsMenuCalled)
|
|
|
|
invalidateOptionsMenu.invoke()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun onDeleteAll() {
|
|
|
|
fun onDeleteAll() {
|
|
|
|
controller.handleDeleteAll()
|
|
|
|
controller.handleDeleteAll()
|
|
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
assertTrue(wasDisplayDeleteAllCalled)
|
|
|
|
displayDeleteAll.invoke()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
@ -126,8 +135,6 @@ class DownloadControllerTest {
|
|
|
|
|
|
|
|
|
|
|
|
controller.handleDeleteSome(itemsToDelete)
|
|
|
|
controller.handleDeleteSome(itemsToDelete)
|
|
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
assertEquals(itemsToDelete, deleteDownloadItemsCapturedItems)
|
|
|
|
deleteDownloadItems(itemsToDelete)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|