Refactor zip import/export using Path
This commit is contained in:
parent
668af4fc3e
commit
223b240299
6 changed files with 67 additions and 86 deletions
|
|
@ -3,7 +3,9 @@ package org.schabi.newpipe.settings
|
|||
import android.content.SharedPreferences
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.createTempFile
|
||||
import kotlin.io.path.exists
|
||||
import kotlin.io.path.fileSize
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
import org.mockito.Mockito
|
||||
|
|
@ -47,10 +49,10 @@ class ImportAllCombinationsTest {
|
|||
BackupFileLocator::class.java,
|
||||
Mockito.withSettings().stubOnly()
|
||||
)
|
||||
val db = File.createTempFile("newpipe_", "")
|
||||
val dbJournal = File.createTempFile("newpipe_", "")
|
||||
val dbWal = File.createTempFile("newpipe_", "")
|
||||
val dbShm = File.createTempFile("newpipe_", "")
|
||||
val db = createTempFile("newpipe_", "")
|
||||
val dbJournal = createTempFile("newpipe_", "")
|
||||
val dbWal = createTempFile("newpipe_", "")
|
||||
val dbShm = createTempFile("newpipe_", "")
|
||||
Mockito.`when`(fileLocator.db).thenReturn(db)
|
||||
Mockito.`when`(fileLocator.dbJournal).thenReturn(dbJournal)
|
||||
Mockito.`when`(fileLocator.dbShm).thenReturn(dbShm)
|
||||
|
|
@ -62,7 +64,7 @@ class ImportAllCombinationsTest {
|
|||
Assert.assertFalse(dbJournal.exists())
|
||||
Assert.assertFalse(dbWal.exists())
|
||||
Assert.assertFalse(dbShm.exists())
|
||||
Assert.assertTrue("database file size is zero", Files.size(db.toPath()) > 0)
|
||||
Assert.assertTrue("database file size is zero", db.fileSize() > 0)
|
||||
}
|
||||
} else {
|
||||
runTest {
|
||||
|
|
@ -70,7 +72,7 @@ class ImportAllCombinationsTest {
|
|||
Assert.assertTrue(dbJournal.exists())
|
||||
Assert.assertTrue(dbWal.exists())
|
||||
Assert.assertTrue(dbShm.exists())
|
||||
Assert.assertEquals(0, Files.size(db.toPath()))
|
||||
Assert.assertEquals(0, db.fileSize())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,14 @@ import android.content.SharedPreferences
|
|||
import com.grack.nanojson.JsonParser
|
||||
import java.io.File
|
||||
import java.io.ObjectInputStream
|
||||
import java.nio.file.Files
|
||||
import java.util.zip.ZipFile
|
||||
import kotlin.io.path.Path
|
||||
import kotlin.io.path.createTempDirectory
|
||||
import kotlin.io.path.createTempFile
|
||||
import kotlin.io.path.deleteIfExists
|
||||
import kotlin.io.path.exists
|
||||
import kotlin.io.path.fileSize
|
||||
import kotlin.io.path.inputStream
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertThrows
|
||||
|
|
@ -46,7 +52,7 @@ class ImportExportManagerTest {
|
|||
|
||||
@Test
|
||||
fun `The settings must be exported successfully in the correct format`() {
|
||||
val db = File(classloader.getResource("settings/newpipe.db")!!.file)
|
||||
val db = Path(classloader.getResource("settings/newpipe.db")!!.file)
|
||||
`when`(fileLocator.db).thenReturn(db)
|
||||
|
||||
val expectedPreferences = mapOf("such pref" to "much wow")
|
||||
|
|
@ -81,8 +87,8 @@ class ImportExportManagerTest {
|
|||
|
||||
@Test
|
||||
fun `Ensuring db directory existence must work`() {
|
||||
val dir = Files.createTempDirectory("newpipe_").toFile()
|
||||
Assume.assumeTrue(dir.delete())
|
||||
val dir = createTempDirectory("newpipe_")
|
||||
Assume.assumeTrue(dir.deleteIfExists())
|
||||
`when`(fileLocator.dbDir).thenReturn(dir)
|
||||
|
||||
ImportExportManager(fileLocator).ensureDbDirectoryExists()
|
||||
|
|
@ -91,7 +97,7 @@ class ImportExportManagerTest {
|
|||
|
||||
@Test
|
||||
fun `Ensuring db directory existence must work when the directory already exists`() {
|
||||
val dir = Files.createTempDirectory("newpipe_").toFile()
|
||||
val dir = createTempDirectory("newpipe_")
|
||||
`when`(fileLocator.dbDir).thenReturn(dir)
|
||||
|
||||
ImportExportManager(fileLocator).ensureDbDirectoryExists()
|
||||
|
|
@ -100,10 +106,10 @@ class ImportExportManagerTest {
|
|||
|
||||
@Test
|
||||
fun `The database must be extracted from the zip file`() {
|
||||
val db = File.createTempFile("newpipe_", "")
|
||||
val dbJournal = File.createTempFile("newpipe_", "")
|
||||
val dbWal = File.createTempFile("newpipe_", "")
|
||||
val dbShm = File.createTempFile("newpipe_", "")
|
||||
val db = createTempFile("newpipe_", "")
|
||||
val dbJournal = createTempFile("newpipe_", "")
|
||||
val dbWal = createTempFile("newpipe_", "")
|
||||
val dbShm = createTempFile("newpipe_", "")
|
||||
`when`(fileLocator.db).thenReturn(db)
|
||||
`when`(fileLocator.dbJournal).thenReturn(dbJournal)
|
||||
`when`(fileLocator.dbShm).thenReturn(dbShm)
|
||||
|
|
@ -117,15 +123,15 @@ class ImportExportManagerTest {
|
|||
assertFalse(dbJournal.exists())
|
||||
assertFalse(dbWal.exists())
|
||||
assertFalse(dbShm.exists())
|
||||
assertTrue("database file size is zero", Files.size(db.toPath()) > 0)
|
||||
assertTrue("database file size is zero", db.fileSize() > 0)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `Extracting the database from an empty zip must not work`() {
|
||||
val db = File.createTempFile("newpipe_", "")
|
||||
val dbJournal = File.createTempFile("newpipe_", "")
|
||||
val dbWal = File.createTempFile("newpipe_", "")
|
||||
val dbShm = File.createTempFile("newpipe_", "")
|
||||
val db = createTempFile("newpipe_", "")
|
||||
val dbJournal = createTempFile("newpipe_", "")
|
||||
val dbWal = createTempFile("newpipe_", "")
|
||||
val dbShm = createTempFile("newpipe_", "")
|
||||
`when`(fileLocator.db).thenReturn(db)
|
||||
|
||||
val emptyZip = File(classloader.getResource("settings/nodb_noser_nojson.zip")?.file!!)
|
||||
|
|
@ -136,7 +142,7 @@ class ImportExportManagerTest {
|
|||
assertTrue(dbJournal.exists())
|
||||
assertTrue(dbWal.exists())
|
||||
assertTrue(dbShm.exists())
|
||||
assertEquals(0, Files.size(db.toPath()))
|
||||
assertEquals(0, db.fileSize())
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue