From 0132f7c31638985b8f6a90ec5740df3b41fd06f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Fri, 8 Oct 2021 09:43:28 +0200
Subject: [PATCH] Address review feedback for temporary accounts MR

---
 .../briarproject/briar/desktop/FileUtils.kt    | 18 ++++++++++--------
 .../briar/desktop/DesktopTestModule.kt         |  2 +-
 .../DeterministicTestDataCreatorImpl.kt        | 10 +++++-----
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/main/kotlin/org/briarproject/briar/desktop/FileUtils.kt b/src/main/kotlin/org/briarproject/briar/desktop/FileUtils.kt
index e6fffe3672..f9aa4fa912 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/FileUtils.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/FileUtils.kt
@@ -12,16 +12,18 @@ object FileUtils {
      */
     fun setRWX(file: Path) {
         if (OsUtils.isLinux() || OsUtils.isMac()) {
-            val perms = HashSet<PosixFilePermission>()
-            perms.add(PosixFilePermission.OWNER_READ)
-            perms.add(PosixFilePermission.OWNER_WRITE)
-            perms.add(PosixFilePermission.OWNER_EXECUTE)
+            val perms = HashSet<PosixFilePermission>().apply {
+                add(PosixFilePermission.OWNER_READ)
+                add(PosixFilePermission.OWNER_WRITE)
+                add(PosixFilePermission.OWNER_EXECUTE)
+            }
             Files.setPosixFilePermissions(file, perms)
         } else if (OsUtils.isWindows()) {
-            val f = file.toFile()
-            f.setReadable(true, true)
-            f.setWritable(true, true)
-            f.setExecutable(true, true)
+            file.toFile().apply {
+                setReadable(true, true)
+                setWritable(true, true)
+                setExecutable(true, true)
+            }
         }
     }
 }
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt b/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
index 5fc383a2cf..cebf66dfaa 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
@@ -98,7 +98,7 @@ internal class DesktopTestModule(private val appDir: File) {
 
     @Provides
     @Singleton
-    internal fun getDeterministicTestDataCreator(testDataCreator: DeterministicTestDataCreatorImpl): DeterministicTestDataCreator {
+    internal fun provideDeterministicTestDataCreator(testDataCreator: DeterministicTestDataCreatorImpl): DeterministicTestDataCreator {
         return testDataCreator
     }
 }
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/testdata/DeterministicTestDataCreatorImpl.kt b/src/test/kotlin/org/briarproject/briar/desktop/testdata/DeterministicTestDataCreatorImpl.kt
index 4e8fa3d744..52f09dbc7a 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/testdata/DeterministicTestDataCreatorImpl.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/testdata/DeterministicTestDataCreatorImpl.kt
@@ -72,10 +72,7 @@ class DeterministicTestDataCreatorImpl @Inject internal constructor(
         require(!(avatarPercent < 0 || avatarPercent > 100))
         ioExecutor.execute {
             try {
-                createTestDataOnIoExecutor(
-                    min(numContacts, conversations.persons.size), numPrivateMsgs,
-                    avatarPercent
-                )
+                createTestDataOnIoExecutor(numContacts, numPrivateMsgs, avatarPercent)
             } catch (e: DbException) {
                 LogUtils.logException(LOG, Level.WARNING, e)
             }
@@ -98,7 +95,7 @@ class DeterministicTestDataCreatorImpl @Inject internal constructor(
         val contacts: MutableList<Contact> = ArrayList(numContacts)
         val localAuthor = identityManager.localAuthor
 
-        for (i in 0 until numContacts) {
+        for (i in 0 until min(numContacts, conversations.persons.size)) {
             val person = conversations.persons[i]
             val remote = authorFactory.createLocalAuthor(person.name)
             val contact = addContact(localAuthor.id, remote, null, avatarPercent)
@@ -275,6 +272,9 @@ class DeterministicTestDataCreatorImpl @Inject internal constructor(
     ) {
         for (i in contacts.indices) {
             val contact = contacts[i]
+            // this cannot cause an IndexOutOfBoundsException here with conversation.persons
+            // because we already made sure to only create as many contacts as we have
+            // conversation templates available.
             val person = conversations.persons[i]
             val group = messagingManager.getContactGroup(contact)
             shareGroup(contact.id, group.id)
-- 
GitLab