mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01: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.io.File;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
import java.util.function.IntSupplier;
|
||||||
|
|
||||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||||
import static org.briarproject.bramble.api.mailbox.MailboxAuthToken.fromString;
|
import static org.briarproject.bramble.api.mailbox.MailboxAuthToken.fromString;
|
||||||
@@ -44,7 +45,7 @@ import static org.junit.Assert.fail;
|
|||||||
abstract class AbstractMailboxIntegrationTest
|
abstract class AbstractMailboxIntegrationTest
|
||||||
extends BrambleIntegrationTest<MailboxIntegrationTestComponent> {
|
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() {
|
AbstractMailboxIntegrationTest() {
|
||||||
TestLogFormatter.use();
|
TestLogFormatter.use();
|
||||||
@@ -58,15 +59,16 @@ abstract class AbstractMailboxIntegrationTest
|
|||||||
MailboxIntegrationTestComponent c1, c2;
|
MailboxIntegrationTestComponent c1, c2;
|
||||||
Contact contact1From2, contact2From1;
|
Contact contact1From2, contact2From1;
|
||||||
TestMailbox mailbox;
|
TestMailbox mailbox;
|
||||||
MailboxApi api = createMailboxApi();
|
MailboxApi api;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
c1 = startTestComponent(dir1, "Alice");
|
|
||||||
c2 = startTestComponent(dir2, "Bob");
|
|
||||||
mailbox = new TestMailbox(new File(testDir, "mailbox"));
|
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();
|
mailbox.startLifecycle();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,16 +84,20 @@ abstract class AbstractMailboxIntegrationTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
private MailboxIntegrationTestComponent startTestComponent(
|
private MailboxIntegrationTestComponent startTestComponent(
|
||||||
File databaseDir, String name) throws Exception {
|
File databaseDir, String name, IntSupplier portSupplier)
|
||||||
|
throws Exception {
|
||||||
TestThreadFactoryModule threadFactoryModule =
|
TestThreadFactoryModule threadFactoryModule =
|
||||||
new TestThreadFactoryModule(name);
|
new TestThreadFactoryModule(name);
|
||||||
TestDatabaseConfigModule dbModule =
|
TestDatabaseConfigModule dbModule =
|
||||||
new TestDatabaseConfigModule(databaseDir);
|
new TestDatabaseConfigModule(databaseDir);
|
||||||
|
TestModularMailboxModule mailboxModule =
|
||||||
|
new TestModularMailboxModule(portSupplier);
|
||||||
MailboxIntegrationTestComponent component =
|
MailboxIntegrationTestComponent component =
|
||||||
DaggerMailboxIntegrationTestComponent
|
DaggerMailboxIntegrationTestComponent
|
||||||
.builder()
|
.builder()
|
||||||
.testThreadFactoryModule(threadFactoryModule)
|
.testThreadFactoryModule(threadFactoryModule)
|
||||||
.testDatabaseConfigModule(dbModule)
|
.testDatabaseConfigModule(dbModule)
|
||||||
|
.testModularMailboxModule(mailboxModule)
|
||||||
.build();
|
.build();
|
||||||
injectEagerSingletons(component);
|
injectEagerSingletons(component);
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class MailboxApiIntegrationTest extends BrambleTestCase {
|
|||||||
private TestMailbox mailbox;
|
private TestMailbox mailbox;
|
||||||
private MailboxAuthToken setupToken;
|
private MailboxAuthToken setupToken;
|
||||||
|
|
||||||
private final MailboxApi api = createMailboxApi();
|
private MailboxApi api;
|
||||||
|
|
||||||
private MailboxProperties ownerProperties;
|
private MailboxProperties ownerProperties;
|
||||||
|
|
||||||
@@ -57,6 +57,7 @@ public class MailboxApiIntegrationTest extends BrambleTestCase {
|
|||||||
public void setUp()
|
public void setUp()
|
||||||
throws IOException, ApiException, InvalidMailboxIdException {
|
throws IOException, ApiException, InvalidMailboxIdException {
|
||||||
mailbox = new TestMailbox(dataDirectory.getRoot());
|
mailbox = new TestMailbox(dataDirectory.getRoot());
|
||||||
|
api = createMailboxApi(() -> mailbox.getPort());
|
||||||
mailbox.startLifecycle();
|
mailbox.startLifecycle();
|
||||||
|
|
||||||
setupToken = MailboxAuthToken.fromString(mailbox.getSetupToken());
|
setupToken = MailboxAuthToken.fromString(mailbox.getSetupToken());
|
||||||
|
|||||||
@@ -1,15 +1,20 @@
|
|||||||
package org.briarproject.bramble.mailbox;
|
package org.briarproject.bramble.mailbox;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
import java.util.function.IntSupplier;
|
||||||
|
|
||||||
import static java.lang.System.currentTimeMillis;
|
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.MailboxTestUtils.createHttpClientProvider;
|
||||||
import static org.briarproject.bramble.mailbox.TestModularMailboxModule.urlConverter;
|
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
class MailboxIntegrationTestUtils {
|
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);
|
return new MailboxApiImpl(createHttpClientProvider(), urlConverter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
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.mailbox.MailboxIntegrationTestUtils.retryUntilSuccessOrTimeout;
|
||||||
import static org.briarproject.bramble.test.TestUtils.getSecretKey;
|
import static org.briarproject.bramble.test.TestUtils.getSecretKey;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
@@ -23,8 +22,6 @@ import static org.junit.Assert.assertEquals;
|
|||||||
public class OwnMailboxContactListWorkerIntegrationTest
|
public class OwnMailboxContactListWorkerIntegrationTest
|
||||||
extends AbstractMailboxIntegrationTest {
|
extends AbstractMailboxIntegrationTest {
|
||||||
|
|
||||||
private final MailboxApi api = createMailboxApi();
|
|
||||||
|
|
||||||
private MailboxProperties ownerProperties;
|
private MailboxProperties ownerProperties;
|
||||||
|
|
||||||
private LocalAuthor localAuthor1;
|
private LocalAuthor localAuthor1;
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package org.briarproject.bramble.mailbox;
|
|||||||
|
|
||||||
import org.briarproject.nullsafety.NotNullByDefault;
|
import org.briarproject.nullsafety.NotNullByDefault;
|
||||||
|
|
||||||
|
import java.util.function.IntSupplier;
|
||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
|
||||||
@@ -11,15 +13,22 @@ import static org.briarproject.bramble.mailbox.AbstractMailboxIntegrationTest.UR
|
|||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
class TestModularMailboxModule {
|
class TestModularMailboxModule {
|
||||||
|
|
||||||
|
private final IntSupplier portSupplier;
|
||||||
|
|
||||||
|
TestModularMailboxModule(IntSupplier portSupplier) {
|
||||||
|
this.portSupplier = portSupplier;
|
||||||
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
MailboxConfig provideMailboxConfig(TestMailboxConfigImpl mailboxConfig) {
|
MailboxConfig provideMailboxConfig(TestMailboxConfigImpl mailboxConfig) {
|
||||||
return mailboxConfig;
|
return mailboxConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
static UrlConverter urlConverter = onion -> URL_BASE;
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
UrlConverter provideUrlConverter() {
|
UrlConverter provideUrlConverter() {
|
||||||
return urlConverter;
|
return onion -> {
|
||||||
|
int port = portSupplier.getAsInt();
|
||||||
|
return URL_BASE + ":" + port;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user