[fenix] For https://github.com/mozilla-mobile/fenix/issues/15931: Sort Downloads from newest to oldest (https://github.com/mozilla-mobile/fenix/pull/15939)
parent
e682cb55cc
commit
3139337d7f
@ -0,0 +1,107 @@
|
|||||||
|
/* 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.library.downloads
|
||||||
|
|
||||||
|
import android.os.Environment
|
||||||
|
import io.mockk.every
|
||||||
|
import io.mockk.mockk
|
||||||
|
import mozilla.components.browser.state.state.BrowserState
|
||||||
|
import mozilla.components.browser.state.state.content.DownloadState
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
@RunWith(FenixRobolectricTestRunner::class)
|
||||||
|
class DownloadFragmentTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `downloads are sorted from newest to oldest`() {
|
||||||
|
|
||||||
|
val downloadedFile1 = File(
|
||||||
|
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
|
||||||
|
"1.pdf"
|
||||||
|
)
|
||||||
|
|
||||||
|
val downloadedFile2 = File(
|
||||||
|
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
|
||||||
|
"2.pdf"
|
||||||
|
)
|
||||||
|
|
||||||
|
val downloadedFile3 = File(
|
||||||
|
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
|
||||||
|
"3.pdf"
|
||||||
|
)
|
||||||
|
|
||||||
|
downloadedFile1.createNewFile()
|
||||||
|
downloadedFile2.createNewFile()
|
||||||
|
downloadedFile3.createNewFile()
|
||||||
|
|
||||||
|
val fragment = DownloadFragment()
|
||||||
|
|
||||||
|
val expectedList = listOf(
|
||||||
|
DownloadItem(
|
||||||
|
"3",
|
||||||
|
"3.pdf",
|
||||||
|
downloadedFile3.path,
|
||||||
|
"null",
|
||||||
|
null,
|
||||||
|
DownloadState.Status.COMPLETED
|
||||||
|
),
|
||||||
|
DownloadItem(
|
||||||
|
"2",
|
||||||
|
"2.pdf",
|
||||||
|
downloadedFile2.path,
|
||||||
|
"null",
|
||||||
|
null,
|
||||||
|
DownloadState.Status.COMPLETED
|
||||||
|
),
|
||||||
|
DownloadItem(
|
||||||
|
"1",
|
||||||
|
"1.pdf",
|
||||||
|
downloadedFile1.path,
|
||||||
|
"null",
|
||||||
|
null,
|
||||||
|
DownloadState.Status.COMPLETED
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
val state: BrowserState = mockk(relaxed = true)
|
||||||
|
|
||||||
|
every { state.downloads } returns mapOf(
|
||||||
|
"1" to DownloadState(
|
||||||
|
id = "1",
|
||||||
|
createdTime = 1,
|
||||||
|
url = "url",
|
||||||
|
fileName = "1.pdf",
|
||||||
|
status = DownloadState.Status.COMPLETED
|
||||||
|
),
|
||||||
|
"2" to DownloadState(
|
||||||
|
id = "2",
|
||||||
|
createdTime = 2,
|
||||||
|
url = "url",
|
||||||
|
fileName = "2.pdf",
|
||||||
|
status = DownloadState.Status.COMPLETED
|
||||||
|
),
|
||||||
|
"3" to DownloadState(
|
||||||
|
id = "3",
|
||||||
|
createdTime = 3,
|
||||||
|
url = "url",
|
||||||
|
fileName = "3.pdf",
|
||||||
|
status = DownloadState.Status.COMPLETED
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
val list = fragment.provideDownloads(state)
|
||||||
|
|
||||||
|
assertEquals(expectedList, list)
|
||||||
|
|
||||||
|
downloadedFile1.delete()
|
||||||
|
downloadedFile2.delete()
|
||||||
|
downloadedFile3.delete()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue