diff --git a/bramble-api/build.gradle b/bramble-api/build.gradle
index 0cd52e31a..926386b02 100644
--- a/bramble-api/build.gradle
+++ b/bramble-api/build.gradle
@@ -9,6 +9,7 @@ apply from: 'witness.gradle'
dependencies {
implementation "com.google.dagger:dagger:$dagger_version"
implementation 'com.google.code.findbugs:jsr305:3.0.2'
+ implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
testImplementation "junit:junit:$junit_version"
testImplementation "org.jmock:jmock:$jmock_version"
diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxId.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxId.java
new file mode 100644
index 000000000..0be97a321
--- /dev/null
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxId.java
@@ -0,0 +1,47 @@
+package org.briarproject.bramble.api.mailbox;
+
+import com.fasterxml.jackson.annotation.JsonValue;
+
+import org.briarproject.bramble.api.UniqueId;
+import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
+
+import java.util.Locale;
+
+import javax.annotation.concurrent.ThreadSafe;
+
+import static org.briarproject.bramble.util.StringUtils.fromHexString;
+import static org.briarproject.bramble.util.StringUtils.toHexString;
+
+@ThreadSafe
+@NotNullByDefault
+public class MailboxId extends UniqueId {
+
+ public MailboxId(byte[] id) {
+ super(id);
+ }
+
+ /**
+ * Creates a {@link MailboxId} from the given string.
+ *
+ * @throws IllegalArgumentException if token is not valid.
+ */
+ public static MailboxId fromString(String token) {
+ if (token.length() != 64) throw new IllegalArgumentException();
+ return new MailboxId(fromHexString(token));
+ }
+
+ /**
+ * Returns the string representation expected by the mailbox API.
+ * Also used for serialization.
+ */
+ @Override
+ @JsonValue
+ public String toString() {
+ return toHexString(getBytes()).toLowerCase(Locale.US);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return o instanceof MailboxId && super.equals(o);
+ }
+}
diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxProperties.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxProperties.java
index 723c5aabc..133ce58c5 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxProperties.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxProperties.java
@@ -8,10 +8,11 @@ import javax.annotation.concurrent.Immutable;
@NotNullByDefault
public class MailboxProperties {
- private final String onionAddress, authToken;
+ private final String onionAddress;
+ private final MailboxId authToken;
private final boolean owner;
- public MailboxProperties(String onionAddress, String authToken,
+ public MailboxProperties(String onionAddress, MailboxId authToken,
boolean owner) {
this.onionAddress = onionAddress;
this.authToken = authToken;
@@ -22,7 +23,7 @@ public class MailboxProperties {
return onionAddress;
}
- public String getAuthToken() {
+ public MailboxId getAuthToken() {
return authToken;
}
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 862be0ca9..b6aff596a 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
@@ -16,6 +16,7 @@ import org.briarproject.bramble.api.identity.Author;
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.MailboxId;
import org.briarproject.bramble.api.plugin.TransportId;
import org.briarproject.bramble.api.properties.TransportProperties;
import org.briarproject.bramble.api.sync.ClientId;
@@ -35,7 +36,6 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
@@ -52,7 +52,6 @@ import static org.briarproject.bramble.api.sync.SyncConstants.MAX_GROUP_DESCRIPT
import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
import static org.briarproject.bramble.util.IoUtils.copyAndClose;
import static org.briarproject.bramble.util.StringUtils.getRandomString;
-import static org.briarproject.bramble.util.StringUtils.toHexString;
public class TestUtils {
@@ -216,8 +215,8 @@ public class TestUtils {
getAgreementPublicKey(), verified);
}
- public static String getMailboxSecret() {
- return toHexString(getRandomBytes(32)).toLowerCase(Locale.US);
+ public static MailboxId getMailboxId() {
+ return new MailboxId(getRandomId());
}
public static void writeBytes(File file, byte[] bytes)
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 5f2e2ee91..9e378277b 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
@@ -3,6 +3,7 @@ package org.briarproject.bramble.mailbox;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.briarproject.bramble.api.contact.ContactId;
+import org.briarproject.bramble.api.mailbox.MailboxId;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import java.io.File;
@@ -21,7 +22,7 @@ interface MailboxApi {
* @return the owner token
* @throws ApiException for 401 response.
*/
- String setup(MailboxProperties properties)
+ MailboxId setup(MailboxProperties properties)
throws IOException, ApiException;
/**
@@ -66,7 +67,7 @@ interface MailboxApi {
* The owner can add files to the contacts' inboxes
* and the contacts can add files to their own outbox.
*/
- void addFile(MailboxProperties properties, String folderId,
+ void addFile(MailboxProperties properties, MailboxId folderId,
File file) throws IOException, ApiException;
/**
@@ -74,7 +75,7 @@ interface MailboxApi {
*
* Returns 200 OK with the list of files in JSON.
*/
- List getFiles(MailboxProperties properties, String folderId)
+ List getFiles(MailboxProperties properties, MailboxId folderId)
throws IOException, ApiException;
/**
@@ -85,8 +86,8 @@ interface MailboxApi {
*
* @param file the empty file the response bytes will be written into.
*/
- void getFile(MailboxProperties properties, String folderId,
- String fileId, File file) throws IOException, ApiException;
+ void getFile(MailboxProperties properties, MailboxId folderId,
+ MailboxId fileId, File file) throws IOException, ApiException;
/**
* Used by owner and contacts to delete files.
@@ -96,8 +97,8 @@ interface MailboxApi {
* @throws TolerableFailureException on 404 response,
* because file was most likely deleted already.
*/
- void deleteFile(MailboxProperties properties, String folderId,
- String fileId)
+ void deleteFile(MailboxProperties properties, MailboxId folderId,
+ MailboxId fileId)
throws IOException, ApiException, TolerableFailureException;
/**
@@ -105,22 +106,22 @@ interface MailboxApi {
* for the owner to download.
*
* @return a list of folder names
- * to be used with {@link #getFiles(MailboxProperties, String)}.
+ * to be used with {@link #getFiles(MailboxProperties, MailboxId)}.
* @throws IllegalArgumentException if used by non-owner.
*/
- List getFolders(MailboxProperties properties)
+ List getFolders(MailboxProperties properties)
throws IOException, ApiException;
@Immutable
@JsonSerialize
class MailboxContact {
public final int contactId;
- public final String token, inboxId, outboxId;
+ public final MailboxId token, inboxId, outboxId;
MailboxContact(ContactId contactId,
- String token,
- String inboxId,
- String outboxId) {
+ MailboxId token,
+ MailboxId inboxId,
+ MailboxId outboxId) {
this.contactId = contactId.getInt();
this.token = token;
this.inboxId = inboxId;
@@ -128,11 +129,12 @@ interface MailboxApi {
}
}
+ @JsonSerialize
class MailboxFile {
- public final String name;
+ public final MailboxId name;
public final long time;
- public MailboxFile(String name, long time) {
+ public MailboxFile(MailboxId name, long time) {
this.name = name;
this.time = time;
}
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApiImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApiImpl.java
index 1042b559f..cd6480486 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApiImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApiImpl.java
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import org.briarproject.bramble.api.WeakSingletonProvider;
import org.briarproject.bramble.api.contact.ContactId;
+import org.briarproject.bramble.api.mailbox.MailboxId;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
@@ -50,7 +51,7 @@ class MailboxApiImpl implements MailboxApi {
}
@Override
- public String setup(MailboxProperties properties)
+ public MailboxId setup(MailboxProperties properties)
throws IOException, ApiException {
if (!properties.isOwner()) throw new IllegalArgumentException();
Request request = getRequestBuilder(properties.getAuthToken())
@@ -74,12 +75,14 @@ class MailboxApiImpl implements MailboxApi {
if (ownerToken == null || !isValidToken(ownerToken)) {
throw new ApiException();
}
- return ownerToken;
+ return MailboxId.fromString(ownerToken);
} catch (JacksonException e) {
throw new ApiException();
}
}
+ // TODO find a batter way to validate (regex?)
+ // that doesn't do hex string conversion twice
private boolean isValidToken(String token) {
if (token.length() != 64) return false;
try {
@@ -161,7 +164,7 @@ class MailboxApiImpl implements MailboxApi {
/* File Management (owner and contacts) */
@Override
- public void addFile(MailboxProperties properties, String folderId,
+ public void addFile(MailboxProperties properties, MailboxId folderId,
File file) throws IOException, ApiException {
String path = "/files/" + folderId;
RequestBody body = RequestBody.create(FILE, file);
@@ -171,7 +174,7 @@ class MailboxApiImpl implements MailboxApi {
@Override
public List getFiles(MailboxProperties properties,
- String folderId) throws IOException, ApiException {
+ MailboxId folderId) throws IOException, ApiException {
String path = "/files/" + folderId;
Response response = sendGetRequest(properties, path);
if (response.code() != 200) throw new ApiException();
@@ -200,7 +203,7 @@ class MailboxApiImpl implements MailboxApi {
long time = timeNode.asLong();
if (!isValidToken(name)) throw new ApiException();
if (time < 1) throw new ApiException();
- list.add(new MailboxFile(name, time));
+ list.add(new MailboxFile(MailboxId.fromString(name), time));
}
return list;
} catch (JacksonException e) {
@@ -209,8 +212,8 @@ class MailboxApiImpl implements MailboxApi {
}
@Override
- public void getFile(MailboxProperties properties, String folderId,
- String fileId, File file) throws IOException, ApiException {
+ public void getFile(MailboxProperties properties, MailboxId folderId,
+ MailboxId fileId, File file) throws IOException, ApiException {
String path = "/files/" + folderId + "/" + fileId;
Response response = sendGetRequest(properties, path);
if (response.code() != 200) throw new ApiException();
@@ -222,8 +225,8 @@ class MailboxApiImpl implements MailboxApi {
}
@Override
- public void deleteFile(MailboxProperties properties, String folderId,
- String fileId)
+ public void deleteFile(MailboxProperties properties, MailboxId folderId,
+ MailboxId fileId)
throws IOException, ApiException, TolerableFailureException {
String path = "/files/" + folderId + "/" + fileId;
Request request = getRequestBuilder(properties.getAuthToken())
@@ -237,7 +240,7 @@ class MailboxApiImpl implements MailboxApi {
}
@Override
- public List getFolders(MailboxProperties properties)
+ public List getFolders(MailboxProperties properties)
throws IOException, ApiException {
if (!properties.isOwner()) throw new IllegalArgumentException();
Response response = sendGetRequest(properties, "/folders");
@@ -251,7 +254,7 @@ class MailboxApiImpl implements MailboxApi {
if (filesNode == null || !filesNode.isArray()) {
throw new ApiException();
}
- List list = new ArrayList<>();
+ List list = new ArrayList<>();
for (JsonNode fileNode : filesNode) {
if (!fileNode.isObject()) throw new ApiException();
ObjectNode objectNode = (ObjectNode) fileNode;
@@ -261,7 +264,7 @@ class MailboxApiImpl implements MailboxApi {
}
String id = idNode.asText();
if (!isValidToken(id)) throw new ApiException();
- list.add(id);
+ list.add(MailboxId.fromString(id));
}
return list;
} catch (JacksonException e) {
@@ -290,7 +293,7 @@ class MailboxApiImpl implements MailboxApi {
return client.newCall(request).execute();
}
- private Request.Builder getRequestBuilder(String token) {
+ private Request.Builder getRequestBuilder(MailboxId token) {
return new Request.Builder()
.addHeader("Authorization", "Bearer " + token);
}
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImpl.java
index dbe62a73a..be18f1b6a 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImpl.java
@@ -3,6 +3,7 @@ package org.briarproject.bramble.mailbox;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.db.Transaction;
+import org.briarproject.bramble.api.mailbox.MailboxId;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.api.mailbox.MailboxSettingsManager;
import org.briarproject.bramble.api.mailbox.MailboxStatus;
@@ -43,7 +44,8 @@ class MailboxSettingsManagerImpl implements MailboxSettingsManager {
String onion = s.get(SETTINGS_KEY_ONION);
String token = s.get(SETTINGS_KEY_TOKEN);
if (isNullOrEmpty(onion) || isNullOrEmpty(token)) return null;
- return new MailboxProperties(onion, token, true);
+ MailboxId tokenId = MailboxId.fromString(token);
+ return new MailboxProperties(onion, tokenId, true);
}
@Override
@@ -51,7 +53,7 @@ class MailboxSettingsManagerImpl implements MailboxSettingsManager {
throws DbException {
Settings s = new Settings();
s.put(SETTINGS_KEY_ONION, p.getOnionAddress());
- s.put(SETTINGS_KEY_TOKEN, p.getAuthToken());
+ s.put(SETTINGS_KEY_TOKEN, p.getAuthToken().toString());
settingsManager.mergeSettings(txn, s, SETTINGS_NAMESPACE);
}
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxApiTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxApiTest.java
index 35d15943a..05a8b2695 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxApiTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxApiTest.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.briarproject.bramble.api.WeakSingletonProvider;
import org.briarproject.bramble.api.contact.ContactId;
+import org.briarproject.bramble.api.mailbox.MailboxId;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.mailbox.MailboxApi.ApiException;
import org.briarproject.bramble.mailbox.MailboxApi.MailboxContact;
@@ -31,7 +32,7 @@ import okio.Buffer;
import static java.util.Collections.singletonList;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.briarproject.bramble.test.TestUtils.getContactId;
-import static org.briarproject.bramble.test.TestUtils.getMailboxSecret;
+import static org.briarproject.bramble.test.TestUtils.getMailboxId;
import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
import static org.briarproject.bramble.test.TestUtils.readBytes;
import static org.briarproject.bramble.test.TestUtils.writeBytes;
@@ -62,12 +63,12 @@ public class MailboxApiTest extends BrambleTestCase {
};
private final MailboxApiImpl api = new MailboxApiImpl(httpClientProvider);
- private final String token = getMailboxSecret();
- private final String token2 = getMailboxSecret();
+ private final MailboxId token = getMailboxId();
+ private final MailboxId token2 = getMailboxId();
private final ContactId contactId = getContactId();
- private final String contactToken = getMailboxSecret();
- private final String contactInboxId = getMailboxSecret();
- private final String contactOutboxId = getMailboxSecret();
+ private final MailboxId contactToken = getMailboxId();
+ private final MailboxId contactInboxId = getMailboxId();
+ private final MailboxId contactOutboxId = getMailboxId();
private final MailboxContact mailboxContact = new MailboxContact(
contactId, contactToken, contactInboxId, contactOutboxId);
@@ -427,9 +428,9 @@ public class MailboxApiTest extends BrambleTestCase {
@Test
public void testGetFiles() throws Exception {
- MailboxFile mailboxFile1 = new MailboxFile(getMailboxSecret(), 1337);
+ MailboxFile mailboxFile1 = new MailboxFile(getMailboxId(), 1337);
MailboxFile mailboxFile2 =
- new MailboxFile(getMailboxSecret(), System.currentTimeMillis());
+ new MailboxFile(getMailboxId(), System.currentTimeMillis());
String fileResponse1 =
new ObjectMapper().writeValueAsString(mailboxFile1);
String fileResponse2 =
@@ -538,7 +539,7 @@ public class MailboxApiTest extends BrambleTestCase {
@Test
public void testGetFile() throws Exception {
- String name = getMailboxSecret();
+ MailboxId name = getMailboxId();
File file1 = folder.newFile();
File file2 = folder.newFile();
File file3 = folder.newFile();
@@ -585,7 +586,7 @@ public class MailboxApiTest extends BrambleTestCase {
@Test
public void testDeleteFile() throws Exception {
- String name = getMailboxSecret();
+ MailboxId name = getMailboxId();
MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse());
@@ -635,8 +636,8 @@ public class MailboxApiTest extends BrambleTestCase {
@Test
public void testGetFolders() throws Exception {
- String id1 = getMailboxSecret();
- String id2 = getMailboxSecret();
+ MailboxId id1 = getMailboxId();
+ MailboxId id2 = getMailboxId();
String validResponse1 = "{\"folders\": [ {\"id\": \"" + id1 + "\"} ] }";
String validResponse2 = "{\"folders\": [ {\"id\": \"" + id1 + "\"}, " +
"{ \"id\": \"" + id2 + "\"} ] }";
@@ -738,7 +739,7 @@ public class MailboxApiTest extends BrambleTestCase {
return baseUrl.substring(0, baseUrl.length() - 1);
}
- private void assertToken(RecordedRequest request, String token) {
+ private void assertToken(RecordedRequest request, MailboxId token) {
assertNotNull(request.getHeader("Authorization"));
assertEquals("Bearer " + token, request.getHeader("Authorization"));
}
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java
index 7fd133d05..2912023eb 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxIntegrationTest.java
@@ -2,6 +2,7 @@ package org.briarproject.bramble.mailbox;
import org.briarproject.bramble.api.WeakSingletonProvider;
import org.briarproject.bramble.api.contact.ContactId;
+import org.briarproject.bramble.api.mailbox.MailboxId;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.mailbox.MailboxApi.ApiException;
import org.briarproject.bramble.mailbox.MailboxApi.MailboxContact;
@@ -27,7 +28,7 @@ import okhttp3.OkHttpClient;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static org.briarproject.bramble.test.TestUtils.getMailboxSecret;
+import static org.briarproject.bramble.test.TestUtils.getMailboxId;
import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled;
import static org.briarproject.bramble.test.TestUtils.readBytes;
@@ -44,8 +45,8 @@ public class MailboxIntegrationTest extends BrambleTestCase {
public TemporaryFolder folder = new TemporaryFolder();
private final static String URL_BASE = "http://127.0.0.1:8000";
- private final static String SETUP_TOKEN =
- "54686973206973206120736574757020746f6b656e20666f722042726961722e";
+ private final static MailboxId SETUP_TOKEN = MailboxId.fromString(
+ "54686973206973206120736574757020746f6b656e20666f722042726961722e");
private final OkHttpClient client = new OkHttpClient.Builder()
.socketFactory(SocketFactory.getDefault())
@@ -76,7 +77,7 @@ public class MailboxIntegrationTest extends BrambleTestCase {
if (ownerProperties != null) return;
MailboxProperties setupProperties =
new MailboxProperties(URL_BASE, SETUP_TOKEN, true);
- String ownerToken = api.setup(setupProperties);
+ MailboxId ownerToken = api.setup(setupProperties);
ownerProperties = new MailboxProperties(URL_BASE, ownerToken, true);
}
@@ -132,7 +133,7 @@ public class MailboxIntegrationTest extends BrambleTestCase {
List files1 =
api.getFiles(contactProperties, contact.inboxId);
assertEquals(1, files1.size());
- String fileName1 = files1.get(0).name;
+ MailboxId fileName1 = files1.get(0).name;
// owner can't check files
assertThrows(ApiException.class, () ->
@@ -170,15 +171,15 @@ public class MailboxIntegrationTest extends BrambleTestCase {
api.addFile(contactProperties, contact.outboxId, file3);
// owner checks folders with available files
- List folders = api.getFolders(ownerProperties);
+ List folders = api.getFolders(ownerProperties);
assertEquals(singletonList(contact.outboxId), folders);
// owner lists files in contact's outbox
List files2 =
api.getFiles(ownerProperties, contact.outboxId);
assertEquals(2, files2.size());
- String file2name = files2.get(0).name;
- String file3name = files2.get(1).name;
+ MailboxId file2name = files2.get(0).name;
+ MailboxId file3name = files2.get(1).name;
// contact can't list files in contact's outbox
assertThrows(ApiException.class, () ->
@@ -235,8 +236,8 @@ public class MailboxIntegrationTest extends BrambleTestCase {
}
private MailboxContact getMailboxContact(ContactId contactId) {
- return new MailboxContact(contactId, getMailboxSecret(),
- getMailboxSecret(), getMailboxSecret());
+ return new MailboxContact(contactId, getMailboxId(), getMailboxId(),
+ getMailboxId());
}
}
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImplTest.java
index 424554c97..3df58bef5 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImplTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxSettingsManagerImplTest.java
@@ -2,6 +2,7 @@ package org.briarproject.bramble.mailbox;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.db.Transaction;
+import org.briarproject.bramble.api.mailbox.MailboxId;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.api.mailbox.MailboxSettingsManager;
import org.briarproject.bramble.api.mailbox.MailboxStatus;
@@ -20,6 +21,7 @@ import static org.briarproject.bramble.mailbox.MailboxSettingsManagerImpl.SETTIN
import static org.briarproject.bramble.mailbox.MailboxSettingsManagerImpl.SETTINGS_KEY_TOKEN;
import static org.briarproject.bramble.mailbox.MailboxSettingsManagerImpl.SETTINGS_NAMESPACE;
import static org.briarproject.bramble.mailbox.MailboxSettingsManagerImpl.SETTINGS_UPLOADS_NAMESPACE;
+import static org.briarproject.bramble.test.TestUtils.getMailboxId;
import static org.briarproject.bramble.util.StringUtils.getRandomString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -35,7 +37,7 @@ public class MailboxSettingsManagerImplTest extends BrambleMockTestCase {
new MailboxSettingsManagerImpl(settingsManager);
private final Random random = new Random();
private final String onion = getRandomString(64);
- private final String token = getRandomString(64);
+ private final MailboxId token = getMailboxId();
private final ContactId contactId1 = new ContactId(random.nextInt());
private final ContactId contactId2 = new ContactId(random.nextInt());
private final ContactId contactId3 = new ContactId(random.nextInt());
@@ -62,7 +64,7 @@ public class MailboxSettingsManagerImplTest extends BrambleMockTestCase {
Transaction txn = new Transaction(null, true);
Settings settings = new Settings();
settings.put(SETTINGS_KEY_ONION, onion);
- settings.put(SETTINGS_KEY_TOKEN, token);
+ settings.put(SETTINGS_KEY_TOKEN, token.toString());
context.checking(new Expectations() {{
oneOf(settingsManager).getSettings(txn, SETTINGS_NAMESPACE);
@@ -81,7 +83,7 @@ public class MailboxSettingsManagerImplTest extends BrambleMockTestCase {
Transaction txn = new Transaction(null, false);
Settings expectedSettings = new Settings();
expectedSettings.put(SETTINGS_KEY_ONION, onion);
- expectedSettings.put(SETTINGS_KEY_TOKEN, token);
+ expectedSettings.put(SETTINGS_KEY_TOKEN, token.toString());
MailboxProperties properties =
new MailboxProperties(onion, token, true);
@@ -180,7 +182,7 @@ public class MailboxSettingsManagerImplTest extends BrambleMockTestCase {
Transaction txn = new Transaction(null, true);
Settings settings = new Settings();
settings.put(String.valueOf(contactId1.getInt()), onion);
- settings.put(String.valueOf(contactId2.getInt()), token);
+ settings.put(String.valueOf(contactId2.getInt()), token.toString());
settings.put(String.valueOf(contactId3.getInt()), "");
context.checking(new Expectations() {{
@@ -192,7 +194,8 @@ public class MailboxSettingsManagerImplTest extends BrambleMockTestCase {
String filename1 = manager.getPendingUpload(txn, contactId1);
assertEquals(onion, filename1);
String filename2 = manager.getPendingUpload(txn, contactId2);
- assertEquals(token, filename2);
+ assertNotNull(filename2);
+ assertEquals(token, MailboxId.fromString(filename2));
String filename3 = manager.getPendingUpload(txn, contactId3);
assertNull(filename3);
String filename4 =