From a079e83e3e5793e2acb6270af1850f6156c2eb42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Thu, 28 Oct 2021 12:26:01 +0200
Subject: [PATCH] Use briar branch with dynamic Tor ports; use different ports
 in test

---
 briar                                          |  2 +-
 .../briar/desktop/DesktopModule.kt             | 12 +++++++++++-
 .../briar/desktop/DesktopTestModule.kt         | 18 ++++++++++++++++--
 .../desktop/TestWithTwoTemporaryAccounts.kt    | 10 ++++++----
 4 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/briar b/briar
index 445ef0818c..bf091ef854 160000
--- a/briar
+++ b/briar
@@ -1 +1 @@
-Subproject commit 445ef0818cb80a4b7e4c1f4370293b0f869c2ece
+Subproject commit bf091ef8547c25b5065eea9114931ebf88562c78
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt b/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt
index b84cad4021..87263e4879 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt
@@ -7,6 +7,8 @@ import org.briarproject.bramble.account.AccountModule
 import org.briarproject.bramble.api.FeatureFlags
 import org.briarproject.bramble.api.db.DatabaseConfig
 import org.briarproject.bramble.api.plugin.PluginConfig
+import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT
+import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT
 import org.briarproject.bramble.api.plugin.TorDirectory
 import org.briarproject.bramble.api.plugin.TransportId
 import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory
@@ -14,6 +16,8 @@ import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory
 import org.briarproject.bramble.battery.DefaultBatteryManagerModule
 import org.briarproject.bramble.event.DefaultEventExecutorModule
 import org.briarproject.bramble.network.JavaNetworkModule
+import org.briarproject.bramble.plugin.TorPorts
+import org.briarproject.bramble.plugin.TorPortsImpl
 import org.briarproject.bramble.plugin.tor.CircumventionModule
 import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory
 import org.briarproject.bramble.socks.SocksModule
@@ -60,6 +64,12 @@ internal class DesktopModule(private val appDir: Path) {
         return DesktopDatabaseConfig(dbDir.toFile(), keyDir.toFile())
     }
 
+    @Provides
+    @Singleton
+    fun provideTorPorts(): TorPorts {
+        return TorPortsImpl(DEFAULT_SOCKS_PORT, DEFAULT_CONTROL_PORT)
+    }
+
     @Provides
     @TorDirectory
     internal fun provideTorDirectory(): File {
@@ -87,7 +97,7 @@ internal class DesktopModule(private val appDir: Path) {
         override fun shouldEnableImageAttachments() = false
         override fun shouldEnableProfilePictures() = false
         override fun shouldEnableDisappearingMessages() = false
-        override fun shouldEnableConnectViaBluetooth() = false
         override fun shouldEnableTransferData() = false
+        override fun shouldEnableShareAppViaOfflineHotspot() = false
     }
 }
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt b/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
index 2253d22162..7a19894337 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
@@ -7,6 +7,8 @@ import org.briarproject.bramble.account.AccountModule
 import org.briarproject.bramble.api.FeatureFlags
 import org.briarproject.bramble.api.db.DatabaseConfig
 import org.briarproject.bramble.api.plugin.PluginConfig
+import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT
+import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT
 import org.briarproject.bramble.api.plugin.TorDirectory
 import org.briarproject.bramble.api.plugin.TransportId
 import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory
@@ -14,6 +16,8 @@ import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory
 import org.briarproject.bramble.battery.DefaultBatteryManagerModule
 import org.briarproject.bramble.event.DefaultEventExecutorModule
 import org.briarproject.bramble.network.JavaNetworkModule
+import org.briarproject.bramble.plugin.TorPorts
+import org.briarproject.bramble.plugin.TorPortsImpl
 import org.briarproject.bramble.plugin.tor.CircumventionModule
 import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory
 import org.briarproject.bramble.socks.SocksModule
@@ -50,7 +54,11 @@ import javax.inject.Singleton
         TestModule::class,
     ]
 )
-internal class DesktopTestModule(private val appDir: File) {
+internal class DesktopTestModule(
+    private val appDir: File,
+    private val socksPort: Int = DEFAULT_SOCKS_PORT,
+    private val controlPort: Int = DEFAULT_CONTROL_PORT
+) {
 
     @Provides
     @Singleton
@@ -64,6 +72,12 @@ internal class DesktopTestModule(private val appDir: File) {
         return DesktopDatabaseConfig(dbDir, keyDir)
     }
 
+    @Provides
+    @Singleton
+    fun provideTorPorts(): TorPorts {
+        return TorPortsImpl(socksPort, controlPort)
+    }
+
     @Provides
     @TorDirectory
     internal fun provideTorDirectory(): File {
@@ -91,8 +105,8 @@ internal class DesktopTestModule(private val appDir: File) {
         override fun shouldEnableImageAttachments() = false
         override fun shouldEnableProfilePictures() = false
         override fun shouldEnableDisappearingMessages() = false
-        override fun shouldEnableConnectViaBluetooth() = false
         override fun shouldEnableTransferData() = false
+        override fun shouldEnableShareAppViaOfflineHotspot() = false
     }
 
     @Provides
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoTemporaryAccounts.kt b/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoTemporaryAccounts.kt
index 88a3ab6770..1336ba9965 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoTemporaryAccounts.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoTemporaryAccounts.kt
@@ -5,6 +5,8 @@ import androidx.compose.ui.ExperimentalComposeUiApi
 import androidx.compose.ui.window.ApplicationScope
 import androidx.compose.ui.window.application
 import org.briarproject.bramble.BrambleCoreEagerSingletons
+import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT
+import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT
 import org.briarproject.briar.BriarCoreEagerSingletons
 import org.briarproject.briar.desktop.utils.FileUtils
 import java.io.IOException
@@ -28,19 +30,19 @@ internal class TestWithTwoTemporaryAccounts() {
         LogManager.getLogManager().getLogger("").level = INFO
 
         application {
-            app(this, "alice")
-            app(this, "bob")
+            app(this, "alice", DEFAULT_SOCKS_PORT, DEFAULT_CONTROL_PORT)
+            app(this, "bob", DEFAULT_SOCKS_PORT + 2, DEFAULT_CONTROL_PORT + 2)
         }
     }
 
     @Composable
-    private fun app(applicationScope: ApplicationScope, name: String) {
+    private fun app(applicationScope: ApplicationScope, name: String, socksPort: Int, controlPort: Int) {
         val dataDir = getDataDir()
         LOG.info("Using data directory '$dataDir'")
 
         val app =
             DaggerBriarDesktopTestApp.builder().desktopTestModule(
-                DesktopTestModule(dataDir.toFile())
+                DesktopTestModule(dataDir.toFile(), socksPort, controlPort)
             ).build()
 
         app.getShutdownManager().addShutdownHook {
-- 
GitLab