diff --git a/src/main/kotlin/org/briarproject/briar/desktop/FileUtils.kt b/src/main/kotlin/org/briarproject/briar/desktop/FileUtils.kt index e6fffe3672a0e87962a7a64cd39a6431f5b0e2d8..f9aa4fa9126ee97cb0b0ffc733f3f34f3322d8a0 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 5fc383a2cf728144c7519a0b8574008bd420e3e9..cebf66dfaaeb9251699e49a1da429448cf10c560 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 4e8fa3d744515c94533dbb48c6ea95d278209d8a..52f09dbc7afc7cd7f963ea146bc590ff2cd0f2e4 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)