mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
Don't depend on briar for mailbox integration tests
Use transport properties instead of sending private messages
This commit is contained in:
@@ -7,14 +7,11 @@ apply from: '../dagger.gradle'
|
||||
|
||||
dependencies {
|
||||
testImplementation project(path: ':bramble-api', configuration: 'default')
|
||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||
testImplementation project(path: ':bramble-core', configuration: 'default')
|
||||
testImplementation project(path: ':briar-api', configuration: 'default')
|
||||
testImplementation project(path: ':briar-core', configuration: 'default')
|
||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||
testImplementation project(path: ':mailbox-core', configuration: 'default')
|
||||
testImplementation project(path: ':mailbox-lib', configuration: 'default')
|
||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||
testImplementation project(path: ':briar-core', configuration: 'testOutput')
|
||||
|
||||
testImplementation "junit:junit:$junit_version"
|
||||
testImplementation "ch.qos.logback:logback-classic:1.2.11"
|
||||
|
||||
@@ -15,28 +15,29 @@ import org.briarproject.bramble.api.mailbox.MailboxPairingState;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxPairingTask;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxProperties;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox;
|
||||
import org.briarproject.bramble.api.sync.GroupId;
|
||||
import org.briarproject.bramble.api.plugin.TransportId;
|
||||
import org.briarproject.bramble.api.properties.TransportProperties;
|
||||
import org.briarproject.bramble.test.BrambleIntegrationTest;
|
||||
import org.briarproject.bramble.test.TestDatabaseConfigModule;
|
||||
import org.briarproject.bramble.test.TestLogFormatter;
|
||||
import org.briarproject.bramble.test.TestThreadFactoryModule;
|
||||
import org.briarproject.briar.api.messaging.PrivateMessage;
|
||||
import org.briarproject.mailbox.lib.AbstractMailbox;
|
||||
import org.briarproject.mailbox.lib.TestMailbox;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
import static java.util.Collections.emptyList;
|
||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||
import static org.briarproject.bramble.api.mailbox.MailboxAuthToken.fromString;
|
||||
import static org.briarproject.bramble.mailbox.MailboxIntegrationTestComponent.Helper.injectEagerSingletons;
|
||||
import static org.briarproject.bramble.mailbox.MailboxIntegrationTestUtils.createMailboxApi;
|
||||
import static org.briarproject.bramble.mailbox.MailboxTestUtils.getQrCodePayload;
|
||||
import static org.briarproject.bramble.test.TestUtils.getSecretKey;
|
||||
import static org.briarproject.briar.api.autodelete.AutoDeleteConstants.NO_AUTO_DELETE_TIMER;
|
||||
import static org.briarproject.bramble.util.StringUtils.getRandomString;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
@@ -49,6 +50,7 @@ abstract class AbstractMailboxIntegrationTest
|
||||
TestLogFormatter.use();
|
||||
}
|
||||
|
||||
private final TransportId transportId = new TransportId(getRandomString(4));
|
||||
private final File dir1 = new File(testDir, "alice");
|
||||
private final File dir2 = new File(testDir, "bob");
|
||||
private final SecretKey rootKey = getSecretKey();
|
||||
@@ -185,13 +187,12 @@ abstract class AbstractMailboxIntegrationTest
|
||||
return update.getMailboxProperties();
|
||||
}
|
||||
|
||||
void sendMessage(MailboxIntegrationTestComponent from,
|
||||
ContactId toContactId, String text) throws Exception {
|
||||
GroupId g = from.getMessagingManager().getConversationId(toContactId);
|
||||
PrivateMessage m = from.getPrivateMessageFactory().createPrivateMessage(
|
||||
g, from.getClock().currentTimeMillis(), text, emptyList(),
|
||||
NO_AUTO_DELETE_TIMER);
|
||||
from.getMessagingManager().addLocalMessage(m);
|
||||
void broadcastMessage(MailboxIntegrationTestComponent from)
|
||||
throws Exception {
|
||||
TransportProperties p = from.getTransportPropertyManager()
|
||||
.getLocalProperties(transportId);
|
||||
p.put(getRandomString(23), getRandomString(8));
|
||||
from.getTransportPropertyManager().mergeLocalProperties(transportId, p);
|
||||
}
|
||||
|
||||
void sync1To2(int num, boolean valid) throws Exception {
|
||||
@@ -210,4 +211,11 @@ abstract class AbstractMailboxIntegrationTest
|
||||
sendAcks(c2, c1, contact1From2.getId(), num);
|
||||
}
|
||||
|
||||
void assertNumMessages(MailboxIntegrationTestComponent c,
|
||||
ContactId contactId, int num) throws DbException {
|
||||
Map<ContactId, TransportProperties> p = c.getTransportPropertyManager()
|
||||
.getRemoteProperties(transportId);
|
||||
assertEquals(num, p.get(contactId).size());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public class MailboxIntegrationTest extends AbstractMailboxIntegrationTest {
|
||||
assertNotNull(props2.getInboxId());
|
||||
|
||||
// send message and wait for it to arrive via mailbox
|
||||
sendMessage(c1, contact2From1.getId(), "test");
|
||||
broadcastMessage(c1);
|
||||
|
||||
// wait until file arrived on mailbox
|
||||
retryUntilSuccessOrTimeout(5_000, 500, () -> {
|
||||
@@ -50,10 +50,8 @@ public class MailboxIntegrationTest extends AbstractMailboxIntegrationTest {
|
||||
// this might require 2nd download cycle after Tor reachability period
|
||||
awaitPendingMessageDelivery(1);
|
||||
|
||||
// assert that private message arrived for c2
|
||||
int size = getFromDb(c2, txn -> c2.getMessagingManager()
|
||||
.getMessageHeaders(txn, contact1From2.getId()).size());
|
||||
assertEquals(1, size);
|
||||
// assert that message arrived for c2
|
||||
assertNumMessages(c2, contact1From2.getId(), 1);
|
||||
|
||||
// all files were deleted from mailbox
|
||||
assertEquals(0, api.getFiles(props2, props2.getInboxId()).size());
|
||||
|
||||
@@ -2,18 +2,20 @@ package org.briarproject.bramble.mailbox;
|
||||
|
||||
import org.briarproject.bramble.BrambleCoreIntegrationTestEagerSingletons;
|
||||
import org.briarproject.bramble.BrambleCoreModule;
|
||||
import org.briarproject.bramble.api.contact.ContactManager;
|
||||
import org.briarproject.bramble.api.db.DatabaseComponent;
|
||||
import org.briarproject.bramble.api.identity.AuthorFactory;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxManager;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxSettingsManager;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxUpdateManager;
|
||||
import org.briarproject.bramble.api.plugin.PluginManager;
|
||||
import org.briarproject.bramble.api.properties.TransportPropertyManager;
|
||||
import org.briarproject.bramble.api.system.Clock;
|
||||
import org.briarproject.bramble.test.BrambleCoreIntegrationTestModule;
|
||||
import org.briarproject.bramble.test.BrambleIntegrationTestComponent;
|
||||
import org.briarproject.bramble.test.MailboxTestPluginConfigModule;
|
||||
import org.briarproject.bramble.test.TestDnsModule;
|
||||
import org.briarproject.bramble.test.TestSocksModule;
|
||||
import org.briarproject.briar.BriarCoreModule;
|
||||
import org.briarproject.briar.identity.IdentityModule;
|
||||
import org.briarproject.briar.messaging.MessagingModule;
|
||||
import org.briarproject.briar.test.BriarIntegrationTestComponent;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
@@ -23,14 +25,23 @@ import dagger.Component;
|
||||
@Component(modules = {
|
||||
BrambleCoreIntegrationTestModule.class,
|
||||
BrambleCoreModule.class,
|
||||
BriarCoreModule.class,
|
||||
TestModularMailboxModule.class,
|
||||
MailboxTestPluginConfigModule.class,
|
||||
TestSocksModule.class,
|
||||
TestDnsModule.class,
|
||||
})
|
||||
interface MailboxIntegrationTestComponent extends
|
||||
BriarIntegrationTestComponent {
|
||||
BrambleIntegrationTestComponent {
|
||||
|
||||
LifecycleManager getLifecycleManager();
|
||||
|
||||
DatabaseComponent getDatabaseComponent();
|
||||
|
||||
ContactManager getContactManager();
|
||||
|
||||
AuthorFactory getAuthorFactory();
|
||||
|
||||
Clock getClock();
|
||||
|
||||
MailboxManager getMailboxManager();
|
||||
|
||||
@@ -38,15 +49,13 @@ interface MailboxIntegrationTestComponent extends
|
||||
|
||||
MailboxUpdateManager getMailboxUpdateManager();
|
||||
|
||||
PluginManager getPluginManager();
|
||||
TransportPropertyManager getTransportPropertyManager();
|
||||
|
||||
class Helper {
|
||||
static void injectEagerSingletons(
|
||||
MailboxIntegrationTestComponent c) {
|
||||
BrambleCoreIntegrationTestEagerSingletons.Helper
|
||||
.injectEagerSingletons(c);
|
||||
c.inject(new IdentityModule.EagerSingletons());
|
||||
c.inject(new MessagingModule.EagerSingletons());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user