diff --git a/briar-mailbox b/briar-mailbox index d887c49ab..64147fd1d 160000 --- a/briar-mailbox +++ b/briar-mailbox @@ -1 +1 @@ -Subproject commit d887c49ab342d1d48d79e46fa6632852c4ab40b7 +Subproject commit 64147fd1d09764500c77948204c998aa6cfec347 diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/AbstractMailboxIntegrationTest.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/AbstractMailboxIntegrationTest.java index ee1136a52..76c4770f9 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/AbstractMailboxIntegrationTest.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/AbstractMailboxIntegrationTest.java @@ -29,6 +29,7 @@ import org.junit.Before; import java.io.File; import java.util.Map; import java.util.concurrent.CountDownLatch; +import java.util.function.IntSupplier; import static java.util.concurrent.TimeUnit.SECONDS; import static org.briarproject.bramble.api.mailbox.MailboxAuthToken.fromString; @@ -44,7 +45,7 @@ import static org.junit.Assert.fail; abstract class AbstractMailboxIntegrationTest extends BrambleIntegrationTest { - static final String URL_BASE = "http://127.0.0.1:8000"; + static final String URL_BASE = "http://127.0.0.1"; AbstractMailboxIntegrationTest() { TestLogFormatter.use(); @@ -58,15 +59,16 @@ abstract class AbstractMailboxIntegrationTest MailboxIntegrationTestComponent c1, c2; Contact contact1From2, contact2From1; TestMailbox mailbox; - MailboxApi api = createMailboxApi(); + MailboxApi api; @Before @Override public void setUp() throws Exception { super.setUp(); - c1 = startTestComponent(dir1, "Alice"); - c2 = startTestComponent(dir2, "Bob"); mailbox = new TestMailbox(new File(testDir, "mailbox")); + c1 = startTestComponent(dir1, "Alice", () -> mailbox.getPort()); + c2 = startTestComponent(dir2, "Bob", () -> mailbox.getPort()); + api = createMailboxApi(() -> mailbox.getPort()); mailbox.startLifecycle(); } @@ -82,16 +84,20 @@ abstract class AbstractMailboxIntegrationTest } private MailboxIntegrationTestComponent startTestComponent( - File databaseDir, String name) throws Exception { + File databaseDir, String name, IntSupplier portSupplier) + throws Exception { TestThreadFactoryModule threadFactoryModule = new TestThreadFactoryModule(name); TestDatabaseConfigModule dbModule = new TestDatabaseConfigModule(databaseDir); + TestModularMailboxModule mailboxModule = + new TestModularMailboxModule(portSupplier); MailboxIntegrationTestComponent component = DaggerMailboxIntegrationTestComponent .builder() .testThreadFactoryModule(threadFactoryModule) .testDatabaseConfigModule(dbModule) + .testModularMailboxModule(mailboxModule) .build(); injectEagerSingletons(component); diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxApiIntegrationTest.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxApiIntegrationTest.java index d196d180d..0c53bae99 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxApiIntegrationTest.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxApiIntegrationTest.java @@ -49,7 +49,7 @@ public class MailboxApiIntegrationTest extends BrambleTestCase { private TestMailbox mailbox; private MailboxAuthToken setupToken; - private final MailboxApi api = createMailboxApi(); + private MailboxApi api; private MailboxProperties ownerProperties; @@ -57,6 +57,7 @@ public class MailboxApiIntegrationTest extends BrambleTestCase { public void setUp() throws IOException, ApiException, InvalidMailboxIdException { mailbox = new TestMailbox(dataDirectory.getRoot()); + api = createMailboxApi(() -> mailbox.getPort()); mailbox.startLifecycle(); setupToken = MailboxAuthToken.fromString(mailbox.getSetupToken()); diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestUtils.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestUtils.java index bcea13ea3..62b684605 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestUtils.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestUtils.java @@ -1,15 +1,20 @@ package org.briarproject.bramble.mailbox; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.IntSupplier; import static java.lang.System.currentTimeMillis; +import static org.briarproject.bramble.mailbox.AbstractMailboxIntegrationTest.URL_BASE; import static org.briarproject.bramble.mailbox.MailboxTestUtils.createHttpClientProvider; -import static org.briarproject.bramble.mailbox.TestModularMailboxModule.urlConverter; import static org.junit.Assert.fail; class MailboxIntegrationTestUtils { - static MailboxApi createMailboxApi() { + static MailboxApi createMailboxApi(IntSupplier portSupplier) { + UrlConverter urlConverter = onion -> { + int port = portSupplier.getAsInt(); //only access when needed + return URL_BASE + ":" + port; + }; return new MailboxApiImpl(createHttpClientProvider(), urlConverter); } diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/OwnMailboxContactListWorkerIntegrationTest.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/OwnMailboxContactListWorkerIntegrationTest.java index 40b12ffc5..7fb08d057 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/OwnMailboxContactListWorkerIntegrationTest.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/OwnMailboxContactListWorkerIntegrationTest.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import static org.briarproject.bramble.mailbox.MailboxIntegrationTestUtils.createMailboxApi; import static org.briarproject.bramble.mailbox.MailboxIntegrationTestUtils.retryUntilSuccessOrTimeout; import static org.briarproject.bramble.test.TestUtils.getSecretKey; import static org.junit.Assert.assertEquals; @@ -23,8 +22,6 @@ import static org.junit.Assert.assertEquals; public class OwnMailboxContactListWorkerIntegrationTest extends AbstractMailboxIntegrationTest { - private final MailboxApi api = createMailboxApi(); - private MailboxProperties ownerProperties; private LocalAuthor localAuthor1; diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/TestModularMailboxModule.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/TestModularMailboxModule.java index 22e001bae..1284ceb3b 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/TestModularMailboxModule.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/TestModularMailboxModule.java @@ -2,6 +2,8 @@ package org.briarproject.bramble.mailbox; import org.briarproject.nullsafety.NotNullByDefault; +import java.util.function.IntSupplier; + import dagger.Module; import dagger.Provides; @@ -11,15 +13,22 @@ import static org.briarproject.bramble.mailbox.AbstractMailboxIntegrationTest.UR @NotNullByDefault class TestModularMailboxModule { + private final IntSupplier portSupplier; + + TestModularMailboxModule(IntSupplier portSupplier) { + this.portSupplier = portSupplier; + } + @Provides MailboxConfig provideMailboxConfig(TestMailboxConfigImpl mailboxConfig) { return mailboxConfig; } - static UrlConverter urlConverter = onion -> URL_BASE; - @Provides UrlConverter provideUrlConverter() { - return urlConverter; + return onion -> { + int port = portSupplier.getAsInt(); + return URL_BASE + ":" + port; + }; } }