diff --git a/mailbox-integration-tests/build.gradle b/mailbox-integration-tests/build.gradle index 4b942d15959a94a1ce544348cb82938df2d10134..3b833cc2bb6089d57991cfd722854179714ea9e4 100644 --- a/mailbox-integration-tests/build.gradle +++ b/mailbox-integration-tests/build.gradle @@ -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" 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 39a4ba1b4f558db4789ca770864a863d652b9a18..2eb0eef4fa5a0aaede9fe687c88da04436fe16b8 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 @@ -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()); + } + } diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java index 02fa6bfc9934d542f7d3263d10b574209ba1c5ce..274b5e9e2fbe73e89ceb0b4012ffd09c00d5b86e 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java @@ -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()); diff --git a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestComponent.java b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestComponent.java index 7ead8faccc221c7b53886e1324505a33de8f01a0..c6c7fd9318f30871bf029070970fbf7b69ec1bcf 100644 --- a/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestComponent.java +++ b/mailbox-integration-tests/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTestComponent.java @@ -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()); } } }