mirror of
https://github.com/briar/briar.git
synced 2025-12-23 23:37:43 -05:00
Fix integration tests by using dynamic webserver port of mailbox
This commit is contained in:
Submodule briar-mailbox updated: d887c49ab3...64147fd1d0
@@ -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<MailboxIntegrationTestComponent> {
|
||||
|
||||
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);
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user