diff --git a/src/test/kotlin/org/briarproject/briar/desktop/RunWithTemporaryAccount.kt b/src/test/kotlin/org/briarproject/briar/desktop/RunWithTemporaryAccount.kt
index d14708016ae8b5ff4698fc2cf9457c30b585ce7b..2f633c757e3d13843207042b85dddb76b24137d0 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 0000000000000000000000000000000000000000..b4615cd41edd4f5a052ca788c83b4824058cc022
--- /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()