From a6f5064d8f2fb9496434d7736bfa1430ab0e4fd6 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 16 May 2022 10:19:38 -0300 Subject: [PATCH] Test that no temp files get left behind after upload errors --- .../mailbox/core/files/FileManagerIntegrationTest.kt | 12 ++++++++++++ .../mailbox/core/server/IntegrationTest.kt | 2 ++ 2 files changed, 14 insertions(+) diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/files/FileManagerIntegrationTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/files/FileManagerIntegrationTest.kt index f9af0421..22c77236 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/files/FileManagerIntegrationTest.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/files/FileManagerIntegrationTest.kt @@ -15,8 +15,10 @@ import org.briarproject.mailbox.core.server.IntegrationTest import org.junit.jupiter.api.Assertions.assertArrayEquals import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import java.io.File import kotlin.random.Random import kotlin.test.assertEquals +import kotlin.test.assertTrue class FileManagerIntegrationTest : IntegrationTest() { @@ -68,6 +70,7 @@ class FileManagerIntegrationTest : IntegrationTest() { } assertEquals(HttpStatusCode.BadRequest, response.status) assertEquals("Bad request: File larger than allowed.", response.readText()) + assertNoTmpFiles() } @Test @@ -79,6 +82,7 @@ class FileManagerIntegrationTest : IntegrationTest() { body = bytes } assertEquals(HttpStatusCode.OK, response.status) + assertNoTmpFiles() // owner connection got registered assertTimestampRecent(metadataManager.ownerConnectionTime.value) @@ -112,6 +116,7 @@ class FileManagerIntegrationTest : IntegrationTest() { authenticateWithToken(contact1.token) } assertEquals(0, emptyFileListResponse.files.size) + assertNoTmpFiles() } @Test @@ -335,4 +340,11 @@ class FileManagerIntegrationTest : IntegrationTest() { // owner connection got registered assertTimestampRecent(metadataManager.ownerConnectionTime.value) } + + private fun assertNoTmpFiles() { + val dir = requireNotNull(this.tempDir) + val tmp = File(dir, "tmp") + assertTrue(tmp.isDirectory) + assertEquals(0, tmp.listFiles()?.size) + } } diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/IntegrationTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/IntegrationTest.kt index 778f9ed0..3eef276a 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/IntegrationTest.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/IntegrationTest.kt @@ -61,6 +61,7 @@ abstract class IntegrationTest(private val installJsonFeature: Boolean = true) { protected val id = getNewRandomId() protected val contact1 = getNewRandomContact() protected val contact2 = getNewRandomContact() + protected var tempDir: File? = null @Volatile protected var exceptionInBackgroundThread: Throwable? = null @@ -76,6 +77,7 @@ abstract class IntegrationTest(private val installJsonFeature: Boolean = true) { @BeforeAll fun setUp(@TempDir tempDir: File) { + this.tempDir = tempDir testComponent = DaggerTestComponent.builder().testModule(TestModule(tempDir)).build() testComponent.injectCoreEagerSingletons() assertFalse(setupManager.hasDb) -- GitLab