From dd81e8b72231f0a4c6a131b952d9c7490a353a63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Thu, 13 Jan 2022 15:57:00 +0100
Subject: [PATCH] Add testing executable that fails because dir is not writable

---
 .../briarproject/briar/desktop/RunWithTemporaryAccount.kt | 8 ++++++++
 .../briar/desktop/TestStartupWithUnwritableDirectory.kt   | 3 +++
 2 files changed, 11 insertions(+)
 create mode 100644 src/test/kotlin/org/briarproject/briar/desktop/TestStartupWithUnwritableDirectory.kt

diff --git a/src/test/kotlin/org/briarproject/briar/desktop/RunWithTemporaryAccount.kt b/src/test/kotlin/org/briarproject/briar/desktop/RunWithTemporaryAccount.kt
index d14708016a..2f633c757e 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/RunWithTemporaryAccount.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/RunWithTemporaryAccount.kt
@@ -7,11 +7,14 @@ import org.briarproject.bramble.BrambleCoreEagerSingletons
 import org.briarproject.briar.BriarCoreEagerSingletons
 import org.briarproject.briar.desktop.TestUtils.getDataDir
 import org.briarproject.briar.desktop.utils.LogUtils
+import java.nio.file.Files
+import java.nio.file.attribute.PosixFilePermissions
 import java.util.logging.Level.ALL
 
 internal class RunWithTemporaryAccount(
     val createAccount: Boolean = true,
     val login: Boolean = true,
+    val makeDirUnwritable: Boolean = false,
     val customization: BriarDesktopTestApp.() -> Unit = {}
 ) {
 
@@ -26,6 +29,11 @@ internal class RunWithTemporaryAccount(
         val dataDir = getDataDir()
         LOG.info { "Using data directory '$dataDir'" }
 
+        if (makeDirUnwritable) {
+            val permissions = PosixFilePermissions.fromString("r--r--r--")
+            Files.setPosixFilePermissions(dataDir, permissions)
+        }
+
         val app =
             DaggerBriarDesktopTestApp.builder().desktopTestModule(
                 DesktopTestModule(dataDir)
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/TestStartupWithUnwritableDirectory.kt b/src/test/kotlin/org/briarproject/briar/desktop/TestStartupWithUnwritableDirectory.kt
new file mode 100644
index 0000000000..b4615cd41e
--- /dev/null
+++ b/src/test/kotlin/org/briarproject/briar/desktop/TestStartupWithUnwritableDirectory.kt
@@ -0,0 +1,3 @@
+package org.briarproject.briar.desktop
+
+fun main() = RunWithTemporaryAccount(createAccount = false, makeDirUnwritable = true).run()
-- 
GitLab