diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsManager.kt b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsManager.kt index d461ac61b..49d35d984 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsManager.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsManager.kt @@ -45,10 +45,9 @@ class ContentSettingsManager(private val fileLocator: NewPipeFileLocator) { * @return Whether the directory exists afterwards. */ fun ensureDbDirectoryExists(): Boolean { - return !fileLocator.dbDir.exists() && !fileLocator.dbDir.mkdir() + return fileLocator.dbDir.exists() || fileLocator.dbDir.mkdir() } - fun extractDb(filePath: String): Boolean { val success = ZipHelper.extractFileFromZip(filePath, fileLocator.db.path, "newpipe.db") if (success) { diff --git a/app/src/test/java/org/schabi/newpipe/settings/ContentSettingsManagerTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ContentSettingsManagerTest.kt index 088b7e1d1..a21ad7cb1 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ContentSettingsManagerTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ContentSettingsManagerTest.kt @@ -4,6 +4,7 @@ import android.content.SharedPreferences import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue +import org.junit.Assume import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -85,6 +86,25 @@ class ContentSettingsManagerTest { assertFalse(settings.exists()) } + @Test + fun `Ensuring db directory existence must work`() { + val dir = Files.createTempDirectory("newpipe_").toFile() + Assume.assumeTrue(dir.delete()) + `when`(fileLocator.dbDir).thenReturn(dir) + + ContentSettingsManager(fileLocator).ensureDbDirectoryExists() + assertTrue(dir.exists()) + } + + @Test + fun `Ensuring db directory existence must work when the directory already exists`() { + val dir = Files.createTempDirectory("newpipe_").toFile() + `when`(fileLocator.dbDir).thenReturn(dir) + + ContentSettingsManager(fileLocator).ensureDbDirectoryExists() + assertTrue(dir.exists()) + } + @Test fun `The database must be extracted from the zip file`() { val db = File.createTempFile("newpipe_", "")