diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java b/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java index 84893c56c..940ee2f13 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java @@ -9,7 +9,7 @@ import org.briarproject.bramble.api.data.BdfList; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.db.Transaction; import org.briarproject.bramble.api.identity.Author; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.properties.TransportProperties; @@ -125,14 +125,14 @@ public interface ClientHelper { BdfDictionary properties) throws FormatException; /** - * Parse and validate the elements of a Mailbox property update message. + * Parse and validate the elements of a Mailbox update message. * * @return the parsed update message * @throws FormatException if the message elements are invalid */ - MailboxPropertiesUpdate parseAndValidateMailboxPropertiesUpdate( - BdfList clientSupports, BdfList serverSupports, - BdfDictionary properties) throws FormatException; + MailboxUpdate parseAndValidateMailboxUpdate(BdfList clientSupports, + BdfList serverSupports, BdfDictionary properties) + throws FormatException; /** * Retrieves the contact ID from the group metadata of the given contact diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertiesUpdate.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdate.java similarity index 81% rename from bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertiesUpdate.java rename to bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdate.java index 8319d1ec5..8ead367d3 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertiesUpdate.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdate.java @@ -8,12 +8,12 @@ import javax.annotation.concurrent.Immutable; @Immutable @NotNullByDefault -public class MailboxPropertiesUpdate { +public class MailboxUpdate { boolean hasMailbox; private final List clientSupports; - public MailboxPropertiesUpdate(List clientSupports) { + public MailboxUpdate(List clientSupports) { this.hasMailbox = false; this.clientSupports = clientSupports; } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertyManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdateManager.java similarity index 69% rename from bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertyManager.java rename to bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdateManager.java index e7e1d8d42..92c0ebc78 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertyManager.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdateManager.java @@ -9,31 +9,31 @@ import org.briarproject.bramble.api.sync.ClientId; import javax.annotation.Nullable; @NotNullByDefault -public interface MailboxPropertyManager { +public interface MailboxUpdateManager { /** - * The unique ID of the mailbox property client. + * The unique ID of the mailbox update (properties) client. */ ClientId CLIENT_ID = new ClientId("org.briarproject.bramble.mailbox.properties"); /** - * The current major version of the mailbox property client. + * The current major version of the mailbox update (properties) client. */ int MAJOR_VERSION = 1; /** - * The current minor version of the mailbox property client. + * The current minor version of the mailbox update (properties) client. */ int MINOR_VERSION = 0; /** - * The number of properties required for a (non-empty) update message. + * The number of properties required for an update message with a mailbox. */ int PROP_COUNT = 4; /** - * The required properties of a non-empty update message. + * The required properties of an update message with a mailbox. */ String PROP_KEY_ONION = "onion"; String PROP_KEY_AUTHTOKEN = "authToken"; @@ -57,10 +57,10 @@ public interface MailboxPropertyManager { */ String MSG_KEY_LOCAL = "local"; - MailboxPropertiesUpdate getLocalProperties(Transaction txn, ContactId c) + MailboxUpdate getLocalUpdate(Transaction txn, ContactId c) throws DbException; @Nullable - MailboxPropertiesUpdate getRemoteProperties(Transaction txn, ContactId c) + MailboxUpdate getRemoteUpdate(Transaction txn, ContactId c) throws DbException; } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertiesUpdateMailbox.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdateWithMailbox.java similarity index 87% rename from bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertiesUpdateMailbox.java rename to bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdateWithMailbox.java index 2992c49ab..e84506dbd 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPropertiesUpdateMailbox.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxUpdateWithMailbox.java @@ -8,14 +8,14 @@ import javax.annotation.concurrent.Immutable; @Immutable @NotNullByDefault -public class MailboxPropertiesUpdateMailbox extends MailboxPropertiesUpdate { +public class MailboxUpdateWithMailbox extends MailboxUpdate { private final List serverSupports; private final String onion; private final MailboxAuthToken authToken; private final MailboxFolderId inboxId; private final MailboxFolderId outboxId; - public MailboxPropertiesUpdateMailbox(List clientSupports, + public MailboxUpdateWithMailbox(List clientSupports, List serverSupports, String onion, MailboxAuthToken authToken, MailboxFolderId inboxId, MailboxFolderId outboxId diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/RemoteMailboxPropertiesUpdateEvent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/RemoteMailboxPropertiesUpdateEvent.java deleted file mode 100644 index 649c5c41e..000000000 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/RemoteMailboxPropertiesUpdateEvent.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.briarproject.bramble.api.mailbox; - -import org.briarproject.bramble.api.contact.ContactId; -import org.briarproject.bramble.api.event.Event; -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; - -import javax.annotation.concurrent.Immutable; - -/** - * An event that is broadcast when {@link MailboxPropertiesUpdate} are received - * from a contact. - */ -@Immutable -@NotNullByDefault -public class RemoteMailboxPropertiesUpdateEvent extends Event { - - private final ContactId contactId; - private final MailboxPropertiesUpdate mailboxPropertiesUpdate; - - public RemoteMailboxPropertiesUpdateEvent(ContactId contactId, - MailboxPropertiesUpdate mailboxPropertiesUpdate) { - this.contactId = contactId; - this.mailboxPropertiesUpdate = mailboxPropertiesUpdate; - } - - public ContactId getContact() { - return contactId; - } - - public MailboxPropertiesUpdate getMailboxPropertiesUpdate() { - return mailboxPropertiesUpdate; - } -} diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/RemoteMailboxUpdateEvent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/RemoteMailboxUpdateEvent.java new file mode 100644 index 000000000..f213eb27b --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/RemoteMailboxUpdateEvent.java @@ -0,0 +1,33 @@ +package org.briarproject.bramble.api.mailbox; + +import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.bramble.api.event.Event; +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; + +import javax.annotation.concurrent.Immutable; + +/** + * An event that is broadcast when {@link MailboxUpdate} are received + * from a contact. + */ +@Immutable +@NotNullByDefault +public class RemoteMailboxUpdateEvent extends Event { + + private final ContactId contactId; + private final MailboxUpdate mailboxUpdate; + + public RemoteMailboxUpdateEvent(ContactId contactId, + MailboxUpdate mailboxUpdate) { + this.contactId = contactId; + this.mailboxUpdate = mailboxUpdate; + } + + public ContactId getContact() { + return contactId; + } + + public MailboxUpdate getMailboxUpdate() { + return mailboxUpdate; + } +} diff --git a/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java b/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java index fa01c7beb..0b9c646a4 100644 --- a/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java +++ b/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java @@ -21,8 +21,8 @@ import org.briarproject.bramble.api.identity.AuthorId; import org.briarproject.bramble.api.identity.Identity; import org.briarproject.bramble.api.identity.LocalAuthor; import org.briarproject.bramble.api.mailbox.MailboxProperties; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdateMailbox; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox; import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.properties.TransportProperties; import org.briarproject.bramble.api.sync.ClientId; @@ -281,19 +281,16 @@ public class TestUtils { asList(optionalTests.split(",")).contains(testClass.getName()); } - public static boolean mailboxPropertiesUpdateEqual( - @Nullable MailboxPropertiesUpdate a, - @Nullable MailboxPropertiesUpdate b) { + public static boolean mailboxUpdateEqual(@Nullable MailboxUpdate a, + @Nullable MailboxUpdate b) { if (a == null || b == null) { return a == b; } if (!a.hasMailbox() && !b.hasMailbox()) { return a.getClientSupports().equals(b.getClientSupports()); } else if (a.hasMailbox() && b.hasMailbox()) { - MailboxPropertiesUpdateMailbox am = - (MailboxPropertiesUpdateMailbox) a; - MailboxPropertiesUpdateMailbox bm = - (MailboxPropertiesUpdateMailbox) b; + MailboxUpdateWithMailbox am = (MailboxUpdateWithMailbox) a; + MailboxUpdateWithMailbox bm = (MailboxUpdateWithMailbox) b; return am.getClientSupports().equals(bm.getClientSupports()) && am.getServerSupports().equals(bm.getServerSupports()) && am.getOnion().equals(bm.getOnion()) && @@ -304,8 +301,7 @@ public class TestUtils { return false; } - public static boolean mailboxPropertiesEqual( - @Nullable MailboxProperties a, + public static boolean mailboxPropertiesEqual(@Nullable MailboxProperties a, @Nullable MailboxProperties b) { if (a == null || b == null) { return a == b; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/client/ClientHelperImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/client/ClientHelperImpl.java index 39d9079d1..7baf56f56 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/client/ClientHelperImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/client/ClientHelperImpl.java @@ -25,8 +25,8 @@ import org.briarproject.bramble.api.identity.Author; import org.briarproject.bramble.api.identity.AuthorFactory; import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFolderId; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdateMailbox; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox; import org.briarproject.bramble.api.mailbox.MailboxVersion; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.plugin.TransportId; @@ -55,12 +55,12 @@ import static org.briarproject.bramble.api.client.ContactGroupConstants.GROUP_KE import static org.briarproject.bramble.api.identity.Author.FORMAT_VERSION; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_PUBLIC_KEY_LENGTH; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_COUNT; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_AUTHTOKEN; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_INBOXID; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_ONION; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_OUTBOXID; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_ONION_LENGTH; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_COUNT; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_AUTHTOKEN; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_INBOXID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_ONION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_OUTBOXID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_ONION_LENGTH; import static org.briarproject.bramble.api.properties.TransportPropertyConstants.MAX_PROPERTIES_PER_TRANSPORT; import static org.briarproject.bramble.api.properties.TransportPropertyConstants.MAX_PROPERTY_LENGTH; import static org.briarproject.bramble.util.ValidationUtils.checkLength; @@ -415,9 +415,9 @@ class ClientHelperImpl implements ClientHelper { } @Override - public MailboxPropertiesUpdate parseAndValidateMailboxPropertiesUpdate( - BdfList clientSupports, BdfList serverSupports, - BdfDictionary properties) throws FormatException { + public MailboxUpdate parseAndValidateMailboxUpdate(BdfList clientSupports, + BdfList serverSupports, BdfDictionary properties) + throws FormatException { List clientSupportsList = getMailboxVersionList(clientSupports); List serverSupportsList = @@ -432,7 +432,7 @@ class ClientHelperImpl implements ClientHelper { if (!serverSupports.isEmpty()) { throw new FormatException(); } - return new MailboxPropertiesUpdate(clientSupportsList); + return new MailboxUpdate(clientSupportsList); } // Mailbox must be accompanied by the Mailbox API version(s) it supports if (serverSupports.isEmpty()) { @@ -455,7 +455,7 @@ class ClientHelperImpl implements ClientHelper { checkLength(inboxId, UniqueId.LENGTH); byte[] outboxId = properties.getRaw(PROP_KEY_OUTBOXID); checkLength(outboxId, UniqueId.LENGTH); - return new MailboxPropertiesUpdateMailbox(clientSupportsList, + return new MailboxUpdateWithMailbox(clientSupportsList, serverSupportsList, onion, new MailboxAuthToken(authToken), new MailboxFolderId(inboxId), new MailboxFolderId(outboxId)); } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java index 22d00a18f..37b6ca042 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java @@ -7,7 +7,7 @@ import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFileId; import org.briarproject.bramble.api.mailbox.MailboxFolderId; import org.briarproject.bramble.api.mailbox.MailboxProperties; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; import org.briarproject.bramble.api.mailbox.MailboxVersion; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; @@ -26,7 +26,7 @@ interface MailboxApi { /** * Mailbox API versions that we support as a client. This is reported to our - * contacts by {@link MailboxPropertyManager}. + * contacts by {@link MailboxUpdateManager}. */ List CLIENT_SUPPORTS = singletonList( new MailboxVersion(1, 0)); diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java index a89065011..e1ad79555 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java @@ -5,8 +5,8 @@ import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.mailbox.MailboxManager; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; @@ -17,18 +17,18 @@ import javax.inject.Singleton; import dagger.Module; import dagger.Provides; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.CLIENT_ID; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MAJOR_VERSION; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MINOR_VERSION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.CLIENT_ID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MAJOR_VERSION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MINOR_VERSION; @Module public class MailboxModule { public static class EagerSingletons { @Inject - MailboxPropertyValidator mailboxPropertyValidator; + MailboxUpdateValidator mailboxUpdateValidator; @Inject - MailboxPropertyManager mailboxPropertyManager; + MailboxUpdateManager mailboxUpdateManager; } @Provides @@ -56,10 +56,10 @@ public class MailboxModule { @Provides @Singleton - MailboxPropertyValidator provideMailboxPropertyValidator( + MailboxUpdateValidator provideMailboxUpdateValidator( ValidationManager validationManager, ClientHelper clientHelper, MetadataEncoder metadataEncoder, Clock clock) { - MailboxPropertyValidator validator = new MailboxPropertyValidator( + MailboxUpdateValidator validator = new MailboxUpdateValidator( clientHelper, metadataEncoder, clock); validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION, validator); @@ -68,19 +68,19 @@ public class MailboxModule { @Provides @Singleton - MailboxPropertyManager provideMailboxPropertyManager( + MailboxUpdateManager provideMailboxUpdateManager( LifecycleManager lifecycleManager, ValidationManager validationManager, ContactManager contactManager, ClientVersioningManager clientVersioningManager, MailboxSettingsManager mailboxSettingsManager, - MailboxPropertyManagerImpl mailboxPropertyManager) { - lifecycleManager.registerOpenDatabaseHook(mailboxPropertyManager); + MailboxUpdateManagerImpl mailboxUpdateManager) { + lifecycleManager.registerOpenDatabaseHook(mailboxUpdateManager); validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION, - mailboxPropertyManager); - contactManager.registerContactHook(mailboxPropertyManager); + mailboxUpdateManager); + contactManager.registerContactHook(mailboxUpdateManager); clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, - MINOR_VERSION, mailboxPropertyManager); - mailboxSettingsManager.registerMailboxHook(mailboxPropertyManager); - return mailboxPropertyManager; + MINOR_VERSION, mailboxUpdateManager); + mailboxSettingsManager.registerMailboxHook(mailboxUpdateManager); + return mailboxUpdateManager; } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskFactoryImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskFactoryImpl.java index 1bab17766..c688fc511 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskFactoryImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskFactoryImpl.java @@ -4,8 +4,8 @@ import org.briarproject.bramble.api.crypto.CryptoComponent; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.event.EventExecutor; import org.briarproject.bramble.api.mailbox.MailboxPairingTask; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.Clock; @@ -24,7 +24,7 @@ class MailboxPairingTaskFactoryImpl implements MailboxPairingTaskFactory { private final Clock clock; private final MailboxApi api; private final MailboxSettingsManager mailboxSettingsManager; - private final MailboxPropertyManager mailboxPropertyManager; + private final MailboxUpdateManager mailboxUpdateManager; @Inject MailboxPairingTaskFactoryImpl( @@ -34,20 +34,20 @@ class MailboxPairingTaskFactoryImpl implements MailboxPairingTaskFactory { Clock clock, MailboxApi api, MailboxSettingsManager mailboxSettingsManager, - MailboxPropertyManager mailboxPropertyManager) { + MailboxUpdateManager mailboxUpdateManager) { this.eventExecutor = eventExecutor; this.db = db; this.crypto = crypto; this.clock = clock; this.api = api; this.mailboxSettingsManager = mailboxSettingsManager; - this.mailboxPropertyManager = mailboxPropertyManager; + this.mailboxUpdateManager = mailboxUpdateManager; } @Override public MailboxPairingTask createPairingTask(String qrCodePayload) { return new MailboxPairingTaskImpl(qrCodePayload, eventExecutor, db, crypto, clock, api, mailboxSettingsManager, - mailboxPropertyManager); + mailboxUpdateManager); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java index 8236e07e2..4d7eea749 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java @@ -11,9 +11,9 @@ import org.briarproject.bramble.api.mailbox.MailboxAuthToken; 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.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.mailbox.MailboxApi.ApiException; @@ -51,7 +51,7 @@ class MailboxPairingTaskImpl implements MailboxPairingTask { private final Clock clock; private final MailboxApi api; private final MailboxSettingsManager mailboxSettingsManager; - private final MailboxPropertyManager mailboxPropertyManager; + private final MailboxUpdateManager mailboxUpdateManager; private final Object lock = new Object(); @GuardedBy("lock") @@ -68,7 +68,7 @@ class MailboxPairingTaskImpl implements MailboxPairingTask { Clock clock, MailboxApi api, MailboxSettingsManager mailboxSettingsManager, - MailboxPropertyManager mailboxPropertyManager) { + MailboxUpdateManager mailboxUpdateManager) { this.payload = payload; this.eventExecutor = eventExecutor; this.db = db; @@ -76,7 +76,7 @@ class MailboxPairingTaskImpl implements MailboxPairingTask { this.clock = clock; this.api = api; this.mailboxSettingsManager = mailboxSettingsManager; - this.mailboxPropertyManager = mailboxPropertyManager; + this.mailboxUpdateManager = mailboxUpdateManager; state = new MailboxPairingState.QrCodeReceived(); } @@ -125,9 +125,9 @@ class MailboxPairingTaskImpl implements MailboxPairingTask { // timers for contacts who doesn't have their own mailbox. This way, // data stranded on our old mailbox will be re-uploaded to our new. for (Contact c : db.getContacts(txn)) { - MailboxPropertiesUpdate remoteProps = mailboxPropertyManager - .getRemoteProperties(txn, c.getId()); - if (remoteProps == null || !remoteProps.hasMailbox()) { + MailboxUpdate update = mailboxUpdateManager.getRemoteUpdate( + txn, c.getId()); + if (update == null || !update.hasMailbox()) { db.resetUnackedMessagesToSend(txn, c.getId()); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPropertyManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxUpdateManagerImpl.java similarity index 80% rename from bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPropertyManagerImpl.java rename to bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxUpdateManagerImpl.java index c6eb94ab4..7cbaf2fb9 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPropertyManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxUpdateManagerImpl.java @@ -18,13 +18,13 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook; import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFolderId; import org.briarproject.bramble.api.mailbox.MailboxProperties; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdateMailbox; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager.MailboxHook; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox; import org.briarproject.bramble.api.mailbox.MailboxVersion; -import org.briarproject.bramble.api.mailbox.RemoteMailboxPropertiesUpdateEvent; +import org.briarproject.bramble.api.mailbox.RemoteMailboxUpdateEvent; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.Group.Visibility; @@ -48,7 +48,7 @@ import static org.briarproject.bramble.api.sync.validation.IncomingMessageHook.D import static org.briarproject.bramble.mailbox.MailboxApi.CLIENT_SUPPORTS; @NotNullByDefault -class MailboxPropertyManagerImpl implements MailboxPropertyManager, +class MailboxUpdateManagerImpl implements MailboxUpdateManager, OpenDatabaseHook, ContactHook, ClientVersioningHook, IncomingMessageHook, MailboxHook { @@ -63,7 +63,7 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, private final Group localGroup; @Inject - MailboxPropertyManagerImpl(DatabaseComponent db, ClientHelper clientHelper, + MailboxUpdateManagerImpl(DatabaseComponent db, ClientHelper clientHelper, ClientVersioningManager clientVersioningManager, MetadataParser metadataParser, ContactGroupFactory contactGroupFactory, Clock clock, @@ -108,11 +108,11 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, mailboxSettingsManager.getOwnMailboxProperties(txn); if (ownProps != null) { // We are paired, create and send props to the newly added contact - createAndSendProperties(txn, c, ownProps.getServerSupports(), + createAndSendUpdateWithMailbox(txn, c, ownProps.getServerSupports(), ownProps.getOnion()); } else { // Not paired, but we still want to get our clientSupports sent - sendEmptyProperties(txn, c); + sendUpdateNoMailbox(txn, c); } } @@ -126,14 +126,14 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, List serverSupports) throws DbException { for (Contact c : db.getContacts(txn)) { - createAndSendProperties(txn, c, serverSupports, ownOnion); + createAndSendUpdateWithMailbox(txn, c, serverSupports, ownOnion); } } @Override public void mailboxUnpaired(Transaction txn) throws DbException { for (Contact c : db.getContacts(txn)) { - sendEmptyProperties(txn, c); + sendUpdateNoMailbox(txn, c); } } @@ -165,8 +165,8 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, } ContactId c = clientHelper.getContactId(txn, m.getGroupId()); BdfList body = clientHelper.getMessageAsList(txn, m.getId()); - MailboxPropertiesUpdate p = parseProperties(body); - txn.attach(new RemoteMailboxPropertiesUpdateEvent(c, p)); + MailboxUpdate u = parseUpdate(body); + txn.attach(new RemoteMailboxUpdateEvent(c, u)); // Reset message retransmission timers for the contact. Avoiding // messages getting stranded: // - on our mailbox, if they now have a mailbox but didn't before @@ -180,10 +180,9 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, } @Override - public MailboxPropertiesUpdate getLocalProperties(Transaction txn, - ContactId c) throws DbException { - MailboxPropertiesUpdate local = - getProperties(txn, db.getContact(txn, c), true); + public MailboxUpdate getLocalUpdate(Transaction txn, ContactId c) + throws DbException { + MailboxUpdate local = getUpdate(txn, db.getContact(txn, c), true); // An update (with or without mailbox) is created when contact is added if (local == null) { throw new DbException(); @@ -193,9 +192,9 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, @Override @Nullable - public MailboxPropertiesUpdate getRemoteProperties(Transaction txn, - ContactId c) throws DbException { - return getProperties(txn, db.getContact(txn, c), false); + public MailboxUpdate getRemoteUpdate(Transaction txn, ContactId c) throws + DbException { + return getUpdate(txn, db.getContact(txn, c), false); } /** @@ -204,16 +203,16 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, * supported Mailbox API version(s). All of which the contact needs to * communicate with our Mailbox. */ - private void createAndSendProperties(Transaction txn, Contact c, + private void createAndSendUpdateWithMailbox(Transaction txn, Contact c, List serverSupports, String ownOnion) throws DbException { - MailboxPropertiesUpdate p = new MailboxPropertiesUpdateMailbox( + MailboxUpdate u = new MailboxUpdateWithMailbox( CLIENT_SUPPORTS, serverSupports, ownOnion, new MailboxAuthToken(crypto.generateUniqueId().getBytes()), new MailboxFolderId(crypto.generateUniqueId().getBytes()), new MailboxFolderId(crypto.generateUniqueId().getBytes())); Group g = getContactGroup(c); - storeMessageReplaceLatest(txn, g.getId(), p); + storeMessageReplaceLatest(txn, g.getId(), u); } /** @@ -222,39 +221,38 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, * Mailbox that they can use. It still includes the list of Mailbox API * version(s) that we support as a client. */ - private void sendEmptyProperties(Transaction txn, Contact c) + private void sendUpdateNoMailbox(Transaction txn, Contact c) throws DbException { Group g = getContactGroup(c); - MailboxPropertiesUpdate p = - new MailboxPropertiesUpdate(CLIENT_SUPPORTS); - storeMessageReplaceLatest(txn, g.getId(), p); + MailboxUpdate u = new MailboxUpdate(CLIENT_SUPPORTS); + storeMessageReplaceLatest(txn, g.getId(), u); } @Nullable - private MailboxPropertiesUpdate getProperties(Transaction txn, - Contact c, boolean local) throws DbException { - MailboxPropertiesUpdate p = null; + private MailboxUpdate getUpdate(Transaction txn, Contact c, boolean local) + throws DbException { + MailboxUpdate u = null; Group g = getContactGroup(c); try { LatestUpdate latest = findLatest(txn, g.getId(), local); if (latest != null) { BdfList body = clientHelper.getMessageAsList(txn, latest.messageId); - p = parseProperties(body); + u = parseUpdate(body); } } catch (FormatException e) { throw new DbException(e); } - return p; + return u; } private void storeMessageReplaceLatest(Transaction txn, GroupId g, - MailboxPropertiesUpdate p) throws DbException { + MailboxUpdate u) throws DbException { try { LatestUpdate latest = findLatest(txn, g, true); long version = latest == null ? 1 : latest.version + 1; Message m = clientHelper.createMessage(g, clock.currentTimeMillis(), - encodeProperties(version, p)); + encodeProperties(version, u)); BdfDictionary meta = new BdfDictionary(); meta.put(MSG_KEY_VERSION, version); meta.put(MSG_KEY_LOCAL, true); @@ -286,19 +284,18 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, return null; } - private BdfList encodeProperties(long version, MailboxPropertiesUpdate p) { + private BdfList encodeProperties(long version, MailboxUpdate u) { BdfDictionary dict = new BdfDictionary(); BdfList serverSupports = new BdfList(); - if (p.hasMailbox()) { - MailboxPropertiesUpdateMailbox pm = - (MailboxPropertiesUpdateMailbox) p; - serverSupports = encodeSupportsList(pm.getServerSupports()); - dict.put(PROP_KEY_ONION, pm.getOnion()); - dict.put(PROP_KEY_AUTHTOKEN, pm.getAuthToken().getBytes()); - dict.put(PROP_KEY_INBOXID, pm.getInboxId().getBytes()); - dict.put(PROP_KEY_OUTBOXID, pm.getOutboxId().getBytes()); + if (u.hasMailbox()) { + MailboxUpdateWithMailbox um = (MailboxUpdateWithMailbox) u; + serverSupports = encodeSupportsList(um.getServerSupports()); + dict.put(PROP_KEY_ONION, um.getOnion()); + dict.put(PROP_KEY_AUTHTOKEN, um.getAuthToken().getBytes()); + dict.put(PROP_KEY_INBOXID, um.getInboxId().getBytes()); + dict.put(PROP_KEY_OUTBOXID, um.getOutboxId().getBytes()); } - return BdfList.of(version, encodeSupportsList(p.getClientSupports()), + return BdfList.of(version, encodeSupportsList(u.getClientSupports()), serverSupports, dict); } @@ -310,14 +307,13 @@ class MailboxPropertyManagerImpl implements MailboxPropertyManager, return supports; } - private MailboxPropertiesUpdate parseProperties(BdfList body) + private MailboxUpdate parseUpdate(BdfList body) throws FormatException { BdfList clientSupports = body.getList(1); BdfList serverSupports = body.getList(2); BdfDictionary dict = body.getDictionary(3); - return clientHelper.parseAndValidateMailboxPropertiesUpdate( - clientSupports, serverSupports, dict - ); + return clientHelper.parseAndValidateMailboxUpdate(clientSupports, + serverSupports, dict); } private Group getContactGroup(Contact c) { diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPropertyValidator.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxUpdateValidator.java similarity index 80% rename from bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPropertyValidator.java rename to bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxUpdateValidator.java index 8d279c8bd..e717f911f 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPropertyValidator.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxUpdateValidator.java @@ -15,15 +15,15 @@ import org.briarproject.bramble.api.system.Clock; import javax.annotation.concurrent.Immutable; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MSG_KEY_LOCAL; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MSG_KEY_VERSION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MSG_KEY_LOCAL; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MSG_KEY_VERSION; import static org.briarproject.bramble.util.ValidationUtils.checkSize; @Immutable @NotNullByDefault -class MailboxPropertyValidator extends BdfMessageValidator { +class MailboxUpdateValidator extends BdfMessageValidator { - MailboxPropertyValidator(ClientHelper clientHelper, + MailboxUpdateValidator(ClientHelper clientHelper, MetadataEncoder metadataEncoder, Clock clock) { super(clientHelper, metadataEncoder, clock); } @@ -42,9 +42,8 @@ class MailboxPropertyValidator extends BdfMessageValidator { BdfList serverSupports = body.getList(2); // Properties BdfDictionary dictionary = body.getDictionary(3); - clientHelper.parseAndValidateMailboxPropertiesUpdate(clientSupports, - serverSupports, dictionary - ); + clientHelper.parseAndValidateMailboxUpdate(clientSupports, + serverSupports, dictionary); // Return the metadata BdfDictionary meta = new BdfDictionary(); meta.put(MSG_KEY_VERSION, version); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java index b5dd6d06c..9e316b07d 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java @@ -23,8 +23,8 @@ import org.briarproject.bramble.api.identity.Author; import org.briarproject.bramble.api.identity.AuthorFactory; import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFolderId; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdateMailbox; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox; import org.briarproject.bramble.api.mailbox.MailboxVersion; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.Message; @@ -47,17 +47,17 @@ import static java.util.Collections.singletonList; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_PUBLIC_KEY_LENGTH; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_SIGNATURE_LENGTH; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_AUTHTOKEN; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_INBOXID; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_ONION; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_OUTBOXID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_AUTHTOKEN; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_INBOXID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_ONION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_OUTBOXID; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.test.TestUtils.getSignaturePrivateKey; import static org.briarproject.bramble.test.TestUtils.getSignaturePublicKey; -import static org.briarproject.bramble.test.TestUtils.mailboxPropertiesUpdateEqual; +import static org.briarproject.bramble.test.TestUtils.mailboxUpdateEqual; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -98,7 +98,7 @@ public class ClientHelperImplTest extends BrambleMockTestCase { messageFactory, bdfReaderFactory, bdfWriterFactory, metadataParser, metadataEncoder, cryptoComponent, authorFactory); - private final MailboxPropertiesUpdateMailbox validMailboxPropsUpdate; + private final MailboxUpdateWithMailbox validMailboxUpdateWithMailbox; private final BdfList emptyClientSupports; private final BdfList someClientSupports; private final BdfList emptyServerSupports; @@ -109,7 +109,7 @@ public class ClientHelperImplTest extends BrambleMockTestCase { someClientSupports = BdfList.of(BdfList.of(1, 0)); emptyServerSupports = new BdfList(); someServerSupports = BdfList.of(BdfList.of(1, 0)); - validMailboxPropsUpdate = new MailboxPropertiesUpdateMailbox( + validMailboxUpdateWithMailbox = new MailboxUpdateWithMailbox( singletonList(new MailboxVersion(1, 0)), singletonList(new MailboxVersion(1, 0)), "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd", @@ -118,14 +118,14 @@ public class ClientHelperImplTest extends BrambleMockTestCase { new MailboxFolderId(getRandomId())); } - private BdfDictionary getValidMailboxPropsUpdateDict() { + private BdfDictionary getValidMailboxUpdateWithMailboxDict() { BdfDictionary dict = new BdfDictionary(); - dict.put(PROP_KEY_ONION, validMailboxPropsUpdate.getOnion()); - dict.put(PROP_KEY_AUTHTOKEN, validMailboxPropsUpdate.getAuthToken() + dict.put(PROP_KEY_ONION, validMailboxUpdateWithMailbox.getOnion()); + dict.put(PROP_KEY_AUTHTOKEN, validMailboxUpdateWithMailbox + .getAuthToken().getBytes()); + dict.put(PROP_KEY_INBOXID, validMailboxUpdateWithMailbox.getInboxId() .getBytes()); - dict.put(PROP_KEY_INBOXID, validMailboxPropsUpdate.getInboxId() - .getBytes()); - dict.put(PROP_KEY_OUTBOXID, validMailboxPropsUpdate.getOutboxId() + dict.put(PROP_KEY_OUTBOXID, validMailboxUpdateWithMailbox.getOutboxId() .getBytes()); return dict; } @@ -560,172 +560,150 @@ public class ClientHelperImplTest extends BrambleMockTestCase { } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsWithEmptyClientSupports() + public void testRejectsMailboxUpdateWithEmptyClientSupports() throws Exception { BdfDictionary emptyPropsDict = new BdfDictionary(); - clientHelper.parseAndValidateMailboxPropertiesUpdate( - emptyClientSupports, emptyServerSupports, emptyPropsDict + clientHelper.parseAndValidateMailboxUpdate(emptyClientSupports, + emptyServerSupports, emptyPropsDict ); } @Test - public void testParseEmptyMailboxPropsUpdate() throws Exception { + public void testParseMailboxUpdateNoMailbox() throws Exception { BdfDictionary emptyPropsDict = new BdfDictionary(); - MailboxPropertiesUpdate parsedProps = clientHelper - .parseAndValidateMailboxPropertiesUpdate(someClientSupports, - emptyServerSupports, emptyPropsDict - ); - assertFalse(parsedProps.hasMailbox()); + MailboxUpdate parsedUpdate = clientHelper.parseAndValidateMailboxUpdate( + someClientSupports, emptyServerSupports, emptyPropsDict); + assertFalse(parsedUpdate.hasMailbox()); } @Test(expected = FormatException.class) - public void testRejectsEmptyMailboxPropsWithSomeServerSupports() + public void testRejectsMailboxUpdateNoMailboxWithSomeServerSupports() throws Exception { BdfDictionary emptyPropsDict = new BdfDictionary(); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, emptyPropsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, emptyPropsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsShortSupports() throws Exception { - clientHelper.parseAndValidateMailboxPropertiesUpdate( - BdfList.of(BdfList.of(1)), emptyServerSupports, - new BdfDictionary() - ); + public void testRejectsMailboxUpdateShortSupports() throws Exception { + clientHelper.parseAndValidateMailboxUpdate(BdfList.of(BdfList.of(1)), + emptyServerSupports, new BdfDictionary()); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsLongSupports() throws Exception { - clientHelper.parseAndValidateMailboxPropertiesUpdate( + public void testRejectsMailboxUpdateLongSupports() throws Exception { + clientHelper.parseAndValidateMailboxUpdate( BdfList.of(BdfList.of(1, 0, 0)), emptyServerSupports, - new BdfDictionary() - ); + new BdfDictionary()); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsNonIntSupports() throws Exception { - clientHelper.parseAndValidateMailboxPropertiesUpdate( + public void testRejectsMailboxUpdateNonIntSupports() throws Exception { + clientHelper.parseAndValidateMailboxUpdate( BdfList.of(BdfList.of(1, "0")), emptyServerSupports, new BdfDictionary() ); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsNonListSupports() throws Exception { - clientHelper.parseAndValidateMailboxPropertiesUpdate( - BdfList.of("non-list"), emptyServerSupports, new BdfDictionary() - ); + public void testRejectsMailboxUpdateNonListSupports() throws Exception { + clientHelper.parseAndValidateMailboxUpdate( + BdfList.of("non-list"), emptyServerSupports, + new BdfDictionary()); } @Test - public void testParseValidMailboxPropsUpdate() throws Exception { - MailboxPropertiesUpdate parsedProps = clientHelper - .parseAndValidateMailboxPropertiesUpdate( - someClientSupports, someServerSupports, - getValidMailboxPropsUpdateDict() - ); - assertTrue(mailboxPropertiesUpdateEqual(validMailboxPropsUpdate, - parsedProps)); + public void testParseValidMailboxUpdateWithMailbox() throws Exception { + MailboxUpdate parsedUpdate = clientHelper.parseAndValidateMailboxUpdate( + someClientSupports, someServerSupports, + getValidMailboxUpdateWithMailboxDict()); + assertTrue( + mailboxUpdateEqual(validMailboxUpdateWithMailbox, + parsedUpdate)); } @Test(expected = FormatException.class) - public void rejectsMailboxPropsWithEmptyServerSupports() throws Exception { - clientHelper.parseAndValidateMailboxPropertiesUpdate( - someClientSupports, emptyServerSupports, - getValidMailboxPropsUpdateDict() - ); + public void rejectsMailboxUpdateWithEmptyServerSupports() throws Exception { + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + emptyServerSupports, getValidMailboxUpdateWithMailboxDict()); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateOnionNotDecodable() - throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateOnionNotDecodable() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); String badOnion = "!" + propsDict.getString(PROP_KEY_ONION) .substring(1); propsDict.put(PROP_KEY_ONION, badOnion); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - emptyServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + emptyServerSupports, propsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateOnionWrongLength() - throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateOnionWrongLength() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); String tooLongOnion = propsDict.getString(PROP_KEY_ONION) + "!"; propsDict.put(PROP_KEY_ONION, tooLongOnion); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, emptyServerSupports, propsDict ); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateInboxIdWrongLength() - throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateInboxIdWrongLength() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.put(PROP_KEY_INBOXID, getRandomBytes(UniqueId.LENGTH + 1)); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, propsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateOutboxIdWrongLength() - throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateOutboxIdWrongLength() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.put(PROP_KEY_OUTBOXID, getRandomBytes(UniqueId.LENGTH + 1)); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, propsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateAuthTokenWrongLength() + public void testRejectsMailboxUpdateAuthTokenWrongLength() throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.put(PROP_KEY_AUTHTOKEN, getRandomBytes(UniqueId.LENGTH + 1)); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, propsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateMissingOnion() throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateMissingOnion() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.remove(PROP_KEY_ONION); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, someServerSupports, propsDict ); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateMissingAuthToken() - throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateMissingAuthToken() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.remove(PROP_KEY_AUTHTOKEN); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, propsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateMissingInboxId() throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateMissingInboxId() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.remove(PROP_KEY_INBOXID); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, propsDict); } @Test(expected = FormatException.class) - public void testRejectsMailboxPropsUpdateMissingOutboxId() - throws Exception { - BdfDictionary propsDict = getValidMailboxPropsUpdateDict(); + public void testRejectsMailboxUpdateMissingOutboxId() throws Exception { + BdfDictionary propsDict = getValidMailboxUpdateWithMailboxDict(); propsDict.remove(PROP_KEY_OUTBOXID); - clientHelper.parseAndValidateMailboxPropertiesUpdate(someClientSupports, - someServerSupports, propsDict - ); + clientHelper.parseAndValidateMailboxUpdate(someClientSupports, + someServerSupports, propsDict); } } diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java index bd60e24be..be7555d90 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java @@ -9,9 +9,9 @@ import org.briarproject.bramble.api.mailbox.MailboxAuthToken; 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.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; import org.briarproject.bramble.api.mailbox.OwnMailboxConnectionStatusEvent; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.test.BrambleMockTestCase; @@ -49,11 +49,11 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { private final MailboxApi api = context.mock(MailboxApi.class); private final MailboxSettingsManager mailboxSettingsManager = context.mock(MailboxSettingsManager.class); - private final MailboxPropertyManager mailboxPropertyManager = - context.mock(MailboxPropertyManager.class); + private final MailboxUpdateManager mailboxUpdateManager = + context.mock(MailboxUpdateManager.class); private final MailboxPairingTaskFactory factory = new MailboxPairingTaskFactoryImpl(executor, db, crypto, clock, api, - mailboxSettingsManager, mailboxPropertyManager); + mailboxSettingsManager, mailboxUpdateManager); private final String onion = getRandomString(56); private final byte[] onionBytes = getRandomBytes(32); @@ -107,8 +107,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { }}); Contact contact1 = getContact(); Transaction txn = new Transaction(null, false); - MailboxPropertiesUpdate emptyProps = new MailboxPropertiesUpdate( - CLIENT_SUPPORTS); + MailboxUpdate updateNoMailbox = new MailboxUpdate(CLIENT_SUPPORTS); context.checking(new DbExpectations() {{ oneOf(db).transaction(with(false), withDbRunnable(txn)); oneOf(mailboxSettingsManager).setOwnMailboxProperties( @@ -116,9 +115,9 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { oneOf(mailboxSettingsManager).recordSuccessfulConnection(txn, time); oneOf(db).getContacts(txn); will(returnValue(singletonList(contact1))); - oneOf(mailboxPropertyManager).getRemoteProperties(txn, + oneOf(mailboxUpdateManager).getRemoteUpdate(txn, contact1.getId()); - will(returnValue(emptyProps)); + will(returnValue(updateNoMailbox)); oneOf(db).resetUnackedMessagesToSend(txn, contact1.getId()); }}); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPropertyManagerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxUpdateManagerImplTest.java similarity index 82% rename from bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPropertyManagerImplTest.java rename to bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxUpdateManagerImplTest.java index 63cfc2d1a..0301f4dd0 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPropertyManagerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxUpdateManagerImplTest.java @@ -14,11 +14,11 @@ import org.briarproject.bramble.api.db.Transaction; import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFolderId; import org.briarproject.bramble.api.mailbox.MailboxProperties; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdateMailbox; import org.briarproject.bramble.api.mailbox.MailboxSettingsManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox; import org.briarproject.bramble.api.mailbox.MailboxVersion; -import org.briarproject.bramble.api.mailbox.RemoteMailboxPropertiesUpdateEvent; +import org.briarproject.bramble.api.mailbox.RemoteMailboxUpdateEvent; import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.Message; @@ -34,14 +34,14 @@ import java.util.List; import java.util.Map; import static java.util.Collections.singletonList; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.CLIENT_ID; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MAJOR_VERSION; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MSG_KEY_LOCAL; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.MSG_KEY_VERSION; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_AUTHTOKEN; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_INBOXID; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_ONION; -import static org.briarproject.bramble.api.mailbox.MailboxPropertyManager.PROP_KEY_OUTBOXID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.CLIENT_ID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MAJOR_VERSION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MSG_KEY_LOCAL; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.MSG_KEY_VERSION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_AUTHTOKEN; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_INBOXID; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_ONION; +import static org.briarproject.bramble.api.mailbox.MailboxUpdateManager.PROP_KEY_OUTBOXID; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.validation.IncomingMessageHook.DeliveryAction.ACCEPT_DO_NOT_SHARE; import static org.briarproject.bramble.mailbox.MailboxApi.CLIENT_SUPPORTS; @@ -50,13 +50,13 @@ import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.test.TestUtils.hasEvent; -import static org.briarproject.bramble.test.TestUtils.mailboxPropertiesUpdateEqual; +import static org.briarproject.bramble.test.TestUtils.mailboxUpdateEqual; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { +public class MailboxUpdateManagerImplTest extends BrambleMockTestCase { private final DatabaseComponent db = context.mock(DatabaseComponent.class); private final ClientHelper clientHelper = context.mock(ClientHelper.class); @@ -80,11 +80,11 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { private final BdfList emptyServerSupports; private final BdfList someServerSupports; private final List someServerSupportsList; - private final MailboxPropertiesUpdateMailbox updateMailbox; - private final MailboxPropertiesUpdate updateNoMailbox; + private final MailboxUpdateWithMailbox updateWithMailbox; + private final MailboxUpdate updateNoMailbox; private final MailboxProperties ownProps; - public MailboxPropertyManagerImplTest() { + public MailboxUpdateManagerImplTest() { someClientSupports = BdfList.of(BdfList.of(1, 0)); someClientSupportsList = singletonList(new MailboxVersion(1, 0)); emptyServerSupports = new BdfList(); @@ -97,7 +97,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { ownProps = new MailboxProperties("http://bar.onion", new MailboxAuthToken(getRandomId()), true, someServerSupportsList); - updateMailbox = new MailboxPropertiesUpdateMailbox( + updateWithMailbox = new MailboxUpdateWithMailbox( singletonList(new MailboxVersion(1, 0)), singletonList(new MailboxVersion(1, 0)), ownProps.getOnion(), @@ -105,22 +105,23 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { new MailboxFolderId(getRandomId()), new MailboxFolderId(getRandomId())); propsDict = new BdfDictionary(); - propsDict.put(PROP_KEY_ONION, updateMailbox.getOnion()); - propsDict.put(PROP_KEY_AUTHTOKEN, - updateMailbox.getAuthToken().getBytes()); - propsDict.put(PROP_KEY_INBOXID, updateMailbox.getInboxId().getBytes()); - propsDict.put(PROP_KEY_OUTBOXID, - updateMailbox.getOutboxId().getBytes()); - updateNoMailbox = new MailboxPropertiesUpdate(someClientSupportsList); + propsDict.put(PROP_KEY_ONION, updateWithMailbox.getOnion()); + propsDict.put(PROP_KEY_AUTHTOKEN, updateWithMailbox.getAuthToken() + .getBytes()); + propsDict.put(PROP_KEY_INBOXID, updateWithMailbox.getInboxId() + .getBytes()); + propsDict.put(PROP_KEY_OUTBOXID, updateWithMailbox.getOutboxId() + .getBytes()); + updateNoMailbox = new MailboxUpdate(someClientSupportsList); } - private MailboxPropertyManagerImpl createInstance() { + private MailboxUpdateManagerImpl createInstance() { context.checking(new Expectations() {{ oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID, MAJOR_VERSION); will(returnValue(localGroup)); }}); - return new MailboxPropertyManagerImpl(db, clientHelper, + return new MailboxUpdateManagerImpl(db, clientHelper, clientVersioningManager, metadataParser, contactGroupFactory, clock, mailboxSettingsManager, crypto); } @@ -161,7 +162,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { emptyServerSupports, emptyPropsDict, true); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.onDatabaseOpened(txn); } @@ -193,11 +194,11 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(mailboxSettingsManager).getOwnMailboxProperties(txn); will(returnValue(ownProps)); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getAuthToken())); + will(returnValue(updateWithMailbox.getAuthToken())); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getInboxId())); + will(returnValue(updateWithMailbox.getInboxId())); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getOutboxId())); + will(returnValue(updateWithMailbox.getOutboxId())); oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, MAJOR_VERSION, contact); will(returnValue(contactGroup)); @@ -208,7 +209,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { someServerSupports, propsDict, true); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.onDatabaseOpened(txn); } @@ -222,7 +223,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(true)); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.onDatabaseOpened(txn); } @@ -259,7 +260,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { emptyServerSupports, emptyPropsDict, true); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.addingContact(txn, contact); } @@ -287,11 +288,11 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(mailboxSettingsManager).getOwnMailboxProperties(txn); will(returnValue(ownProps)); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getAuthToken())); + will(returnValue(updateWithMailbox.getAuthToken())); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getInboxId())); + will(returnValue(updateWithMailbox.getInboxId())); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getOutboxId())); + will(returnValue(updateWithMailbox.getOutboxId())); oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, MAJOR_VERSION, contact); will(returnValue(contactGroup)); @@ -302,7 +303,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { someServerSupports, propsDict, true); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.addingContact(txn, contact); } @@ -319,7 +320,7 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(db).removeGroup(txn, contactGroup); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.removingContact(txn, contact); } @@ -355,16 +356,16 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(contact.getId())); oneOf(clientHelper).getMessageAsList(txn, message.getId()); will(returnValue(body)); - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, someServerSupports, propsDict); - will(returnValue(updateMailbox)); + will(returnValue(updateWithMailbox)); oneOf(db).resetUnackedMessagesToSend(txn, contact.getId()); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); assertEquals(ACCEPT_DO_NOT_SHARE, t.incomingMessage(txn, message, meta)); - assertTrue(hasEvent(txn, RemoteMailboxPropertiesUpdateEvent.class)); + assertTrue(hasEvent(txn, RemoteMailboxUpdateEvent.class)); } @Test @@ -407,16 +408,16 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(contact.getId())); oneOf(clientHelper).getMessageAsList(txn, message.getId()); will(returnValue(body)); - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, someServerSupports, propsDict); - will(returnValue(updateMailbox)); + will(returnValue(updateWithMailbox)); oneOf(db).resetUnackedMessagesToSend(txn, contact.getId()); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); assertEquals(ACCEPT_DO_NOT_SHARE, t.incomingMessage(txn, message, meta)); - assertTrue(hasEvent(txn, RemoteMailboxPropertiesUpdateEvent.class)); + assertTrue(hasEvent(txn, RemoteMailboxUpdateEvent.class)); } @Test @@ -447,14 +448,14 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn, message.getId()); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); assertEquals(ACCEPT_DO_NOT_SHARE, t.incomingMessage(txn, message, meta)); - assertFalse(hasEvent(txn, RemoteMailboxPropertiesUpdateEvent.class)); + assertFalse(hasEvent(txn, RemoteMailboxUpdateEvent.class)); } @Test - public void testCreatesAndStoresLocalPropertiesWithNewVersionOnPairing() + public void testCreatesAndStoresLocalUpdateWithNewVersionOnPairing() throws Exception { Contact contact = getContact(); List contacts = singletonList(contact); @@ -477,11 +478,11 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(db).getContacts(txn); will(returnValue(contacts)); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getAuthToken())); + will(returnValue(updateWithMailbox.getAuthToken())); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getInboxId())); + will(returnValue(updateWithMailbox.getInboxId())); oneOf(crypto).generateUniqueId(); - will(returnValue(updateMailbox.getOutboxId())); + will(returnValue(updateWithMailbox.getOutboxId())); oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, MAJOR_VERSION, contact); will(returnValue(contactGroup)); @@ -493,12 +494,12 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(db).removeMessage(txn, latestId); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.mailboxPaired(txn, ownProps.getOnion(), someServerSupportsList); } @Test - public void testStoresEmptyLocalPropertiesWithNewVersionOnUnpairing() + public void testStoresLocalUpdateNoMailboxWithNewVersionOnUnpairing() throws Exception { Contact contact = getContact(); List contacts = singletonList(contact); @@ -531,13 +532,12 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { oneOf(db).removeMessage(txn, latestId); }}); - MailboxPropertyManagerImpl t = createInstance(); + MailboxUpdateManagerImpl t = createInstance(); t.mailboxUnpaired(txn); } @Test - public void testGetRemoteProperties() - throws Exception { + public void testGetRemoteUpdate() throws Exception { Transaction txn = new Transaction(null, false); Contact contact = getContact(); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION); @@ -554,27 +554,26 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { context.checking(new Expectations() {{ oneOf(db).getContact(txn, contact.getId()); will(returnValue(contact)); - oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, - MAJOR_VERSION, contact); + oneOf(contactGroupFactory) + .createContactGroup(CLIENT_ID, MAJOR_VERSION, contact); will(returnValue(contactGroup)); oneOf(clientHelper).getMessageMetadataAsDictionary(txn, contactGroup.getId()); will(returnValue(messageMetadata)); oneOf(clientHelper).getMessageAsList(txn, messageId); will(returnValue(body)); - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, someServerSupports, propsDict); - will(returnValue(updateMailbox)); + will(returnValue(updateWithMailbox)); }}); - MailboxPropertyManagerImpl t = createInstance(); - MailboxPropertiesUpdate remote = - t.getRemoteProperties(txn, contact.getId()); - assertTrue(mailboxPropertiesUpdateEqual(remote, updateMailbox)); + MailboxUpdateManagerImpl t = createInstance(); + MailboxUpdate remote = t.getRemoteUpdate(txn, contact.getId()); + assertTrue(mailboxUpdateEqual(remote, updateWithMailbox)); } @Test - public void testGetRemotePropertiesReturnsNullBecauseNoUpdate() + public void testGetRemoteUpdateReturnsNullBecauseNoUpdate() throws Exception { Transaction txn = new Transaction(null, false); Contact contact = getContact(); @@ -593,13 +592,12 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(emptyMessageMetadata)); }}); - MailboxPropertyManagerImpl t = createInstance(); - assertNull(t.getRemoteProperties(txn, contact.getId())); + MailboxUpdateManagerImpl t = createInstance(); + assertNull(t.getRemoteUpdate(txn, contact.getId())); } @Test - public void testGetRemotePropertiesNoMailbox() - throws Exception { + public void testGetRemoteUpdateNoMailbox() throws Exception { Transaction txn = new Transaction(null, false); Contact contact = getContact(); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION); @@ -624,20 +622,18 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(messageMetadata)); oneOf(clientHelper).getMessageAsList(txn, messageId); will(returnValue(body)); - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, emptyServerSupports, emptyPropsDict); will(returnValue(updateNoMailbox)); }}); - MailboxPropertyManagerImpl t = createInstance(); - MailboxPropertiesUpdate remote = - t.getRemoteProperties(txn, contact.getId()); - assertTrue(mailboxPropertiesUpdateEqual(remote, updateNoMailbox)); + MailboxUpdateManagerImpl t = createInstance(); + MailboxUpdate remote = t.getRemoteUpdate(txn, contact.getId()); + assertTrue(mailboxUpdateEqual(remote, updateNoMailbox)); } @Test - public void testGetLocalProperties() - throws Exception { + public void testGetLocalUpdate() throws Exception { Transaction txn = new Transaction(null, false); Contact contact = getContact(); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION); @@ -662,20 +658,18 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(messageMetadata)); oneOf(clientHelper).getMessageAsList(txn, messageId); will(returnValue(body)); - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, someServerSupports, propsDict); - will(returnValue(updateMailbox)); + will(returnValue(updateWithMailbox)); }}); - MailboxPropertyManagerImpl t = createInstance(); - MailboxPropertiesUpdate local = - t.getLocalProperties(txn, contact.getId()); - assertTrue(mailboxPropertiesUpdateEqual(local, updateMailbox)); + MailboxUpdateManagerImpl t = createInstance(); + MailboxUpdate local = t.getLocalUpdate(txn, contact.getId()); + assertTrue(mailboxUpdateEqual(local, updateWithMailbox)); } @Test - public void testGetLocalPropertiesNoMailbox() - throws Exception { + public void testGetLocalUpdateNoMailbox() throws Exception { Transaction txn = new Transaction(null, false); Contact contact = getContact(); Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION); @@ -700,15 +694,14 @@ public class MailboxPropertyManagerImplTest extends BrambleMockTestCase { will(returnValue(messageMetadata)); oneOf(clientHelper).getMessageAsList(txn, messageId); will(returnValue(body)); - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, emptyServerSupports, emptyPropsDict); will(returnValue(updateNoMailbox)); }}); - MailboxPropertyManagerImpl t = createInstance(); - MailboxPropertiesUpdate local = - t.getLocalProperties(txn, contact.getId()); - assertTrue(mailboxPropertiesUpdateEqual(local, updateNoMailbox)); + MailboxUpdateManagerImpl t = createInstance(); + MailboxUpdate local = t.getLocalUpdate(txn, contact.getId()); + assertTrue(mailboxUpdateEqual(local, updateNoMailbox)); } private void expectStoreMessage(Transaction txn, GroupId g, diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPropertyValidatorTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxUpdateValidatorTest.java similarity index 73% rename from bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPropertyValidatorTest.java rename to bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxUpdateValidatorTest.java index eea64ac5e..8c489dccb 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPropertyValidatorTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxUpdateValidatorTest.java @@ -8,9 +8,9 @@ import org.briarproject.bramble.api.data.BdfList; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFolderId; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdate; -import org.briarproject.bramble.api.mailbox.MailboxPropertiesUpdateMailbox; -import org.briarproject.bramble.api.mailbox.MailboxPropertyManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdate; +import org.briarproject.bramble.api.mailbox.MailboxUpdateManager; +import org.briarproject.bramble.api.mailbox.MailboxUpdateWithMailbox; import org.briarproject.bramble.api.mailbox.MailboxVersion; import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.Message; @@ -28,7 +28,7 @@ import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.junit.Assert.assertEquals; -public class MailboxPropertyValidatorTest extends BrambleMockTestCase { +public class MailboxUpdateValidatorTest extends BrambleMockTestCase { private final ClientHelper clientHelper = context.mock(ClientHelper.class); @@ -37,39 +37,39 @@ public class MailboxPropertyValidatorTest extends BrambleMockTestCase { private final BdfList someClientSupports; private final List someClientSupportsList; private final BdfList someServerSupports; - private final MailboxPropertiesUpdateMailbox updateMailbox; - private final MailboxPropertiesUpdate updateNoMailbox; + private final MailboxUpdateWithMailbox updateMailbox; + private final MailboxUpdate updateNoMailbox; private final Group group; private final Message message; - private final MailboxPropertyValidator mpv; + private final MailboxUpdateValidator muv; - public MailboxPropertyValidatorTest() { + public MailboxUpdateValidatorTest() { // Just dummies, clientHelper is mocked so our test is a bit shallow; // not testing - // {@link ClientHelper#parseAndValidateMailboxPropertiesUpdate(BdfDictionary)} + // {@link ClientHelper#parseAndValidateMailboxUpdate(BdfList, BdfList, BdfDictionary)} emptyServerSupports = new BdfList(); someClientSupports = BdfList.of(BdfList.of(1, 0)); someClientSupportsList = singletonList(new MailboxVersion(1, 0)); someServerSupports = BdfList.of(BdfList.of(1, 0)); bdfDict = BdfDictionary.of(new BdfEntry("foo", "bar")); - updateMailbox = new MailboxPropertiesUpdateMailbox( + updateMailbox = new MailboxUpdateWithMailbox( singletonList(new MailboxVersion(1, 0)), singletonList(new MailboxVersion(1, 0)), "baz", new MailboxAuthToken(getRandomId()), new MailboxFolderId(getRandomId()), new MailboxFolderId(getRandomId())); - updateNoMailbox = new MailboxPropertiesUpdate(someClientSupportsList); + updateNoMailbox = new MailboxUpdate(someClientSupportsList); - group = getGroup(MailboxPropertyManager.CLIENT_ID, - MailboxPropertyManager.MAJOR_VERSION); + group = getGroup(MailboxUpdateManager.CLIENT_ID, + MailboxUpdateManager.MAJOR_VERSION); message = getMessage(group.getId()); MetadataEncoder metadataEncoder = context.mock(MetadataEncoder.class); Clock clock = context.mock(Clock.class); - mpv = new MailboxPropertyValidator(clientHelper, metadataEncoder, + muv = new MailboxUpdateValidator(clientHelper, metadataEncoder, clock); } @@ -79,26 +79,26 @@ public class MailboxPropertyValidatorTest extends BrambleMockTestCase { BdfList.of(4, someClientSupports, someServerSupports, bdfDict); context.checking(new Expectations() {{ - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, someServerSupports, bdfDict); will(returnValue(updateMailbox)); }}); BdfDictionary result = - mpv.validateMessage(message, group, body).getDictionary(); + muv.validateMessage(message, group, body).getDictionary(); assertEquals(4, result.getLong("version").longValue()); } @Test(expected = FormatException.class) public void testValidateWrongVersionValue() throws IOException { BdfList body = BdfList.of(-1, bdfDict); - mpv.validateMessage(message, group, body); + muv.validateMessage(message, group, body); } @Test(expected = FormatException.class) public void testValidateWrongVersionType() throws IOException { BdfList body = BdfList.of(bdfDict, bdfDict); - mpv.validateMessage(message, group, body); + muv.validateMessage(message, group, body); } @Test @@ -108,13 +108,13 @@ public class MailboxPropertyValidatorTest extends BrambleMockTestCase { emptyBdfDict); context.checking(new Expectations() {{ - oneOf(clientHelper).parseAndValidateMailboxPropertiesUpdate( + oneOf(clientHelper).parseAndValidateMailboxUpdate( someClientSupports, emptyServerSupports, emptyBdfDict); will(returnValue(updateNoMailbox)); }}); BdfDictionary result = - mpv.validateMessage(message, group, body).getDictionary(); + muv.validateMessage(message, group, body).getDictionary(); assertEquals(42, result.getLong("version").longValue()); } } diff --git a/bramble-core/src/test/java/org/briarproject/bramble/transport/agreement/TransportKeyAgreementIntegrationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/transport/agreement/TransportKeyAgreementIntegrationTest.java index 0b8adb015..21bfb7df4 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/transport/agreement/TransportKeyAgreementIntegrationTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/transport/agreement/TransportKeyAgreementIntegrationTest.java @@ -345,7 +345,7 @@ public class TransportKeyAgreementIntegrationTest .canSendOutgoingStreams(aliceId, DUPLEX_TRANSPORT_ID)); } - // Sync initial client versioning updates and mailbox properties updates + // Sync initial client versioning updates and mailbox updates syncMessage(alice, bob, bobId, 1, true); syncMessage(bob, alice, aliceId, 1, true); syncMessage(alice, bob, bobId, 2, true); diff --git a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java index e022adf92..88e13b57a 100644 --- a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java @@ -1051,8 +1051,8 @@ public class IntroductionIntegrationTest true); contact0From1 = contactManager1.getContact(contactId0From1); - // Sync initial client versioning updates, mailbox properties updates, - // and transport properties + // Sync initial client versioning updates, mailbox updates, and + // transport properties sync0To1(1, true); sync1To0(1, true); sync0To1(3, true); diff --git a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java index 9226fde90..2dd294b79 100644 --- a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java @@ -172,7 +172,7 @@ public abstract class BriarIntegrationTest