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