From 5494cd99f2fa6a37cdecf53987c6b17d9a834070 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Thu, 30 Sep 2021 14:45:40 +0200
Subject: [PATCH] Delete temporary account directory after shutting down app

---
 build.gradle.kts                                           | 1 +
 .../org/briarproject/briar/desktop/BriarDesktopTestApp.kt  | 3 +++
 .../briarproject/briar/desktop/TestWithTemporaryAccount.kt | 7 +++++++
 3 files changed, 11 insertions(+)

diff --git a/build.gradle.kts b/build.gradle.kts
index c9e6d9c3a2..58b1010d60 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -35,6 +35,7 @@ dependencies {
     kapt("com.google.dagger:dagger-compiler:$daggerVersion")
 
     testImplementation(kotlin("test-testng"))
+    testImplementation("commons-io:commons-io:2.11.0")
     kaptTest("com.google.dagger:dagger-compiler:$daggerVersion")
 }
 
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt b/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt
index a4bbc9cd14..17584c5998 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt
@@ -5,6 +5,7 @@ import org.briarproject.bramble.BrambleCoreEagerSingletons
 import org.briarproject.bramble.BrambleCoreModule
 import org.briarproject.bramble.api.account.AccountManager
 import org.briarproject.bramble.api.lifecycle.LifecycleManager
+import org.briarproject.bramble.api.lifecycle.ShutdownManager
 import org.briarproject.briar.BriarCoreEagerSingletons
 import org.briarproject.briar.BriarCoreModule
 import org.briarproject.briar.api.test.TestDataCreator
@@ -27,6 +28,8 @@ internal interface BriarDesktopTestApp : BrambleCoreEagerSingletons, BriarCoreEa
 
     fun getLifecycleManager(): LifecycleManager
 
+    fun getShutdownManager(): ShutdownManager
+
     fun getAccountManager(): AccountManager
 
     fun getTestDataCreator(): TestDataCreator
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/TestWithTemporaryAccount.kt b/src/test/kotlin/org/briarproject/briar/desktop/TestWithTemporaryAccount.kt
index 20c9561e43..ac5bb5cd3b 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/TestWithTemporaryAccount.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/TestWithTemporaryAccount.kt
@@ -2,6 +2,7 @@ package org.briarproject.briar.desktop
 
 import androidx.compose.ui.ExperimentalComposeUiApi
 import androidx.compose.ui.window.application
+import org.apache.commons.io.FileUtils
 import org.briarproject.bramble.BrambleCoreEagerSingletons
 import org.briarproject.bramble.util.OsUtils.isLinux
 import org.briarproject.bramble.util.OsUtils.isMac
@@ -32,6 +33,12 @@ private class TestWithTemporaryAccount {
             DaggerBriarDesktopTestApp.builder().desktopTestModule(
                 DesktopTestModule(dataDir.toFile())
             ).build()
+
+        app.getShutdownManager().addShutdownHook {
+            println("deleting temporary account at $dataDir")
+            FileUtils.deleteDirectory(dataDir.toFile())
+        }
+
         // We need to load the eager singletons directly after making the
         // dependency graphs
         BrambleCoreEagerSingletons.Helper.injectEagerSingletons(app)
-- 
GitLab