mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 19:59:05 +01:00
Introduce MailboxId sub-classes for even more type-safety
This commit is contained in:
@@ -4,6 +4,9 @@ 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.MailboxAuthToken;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxFileId;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxFolderId;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxId;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxProperties;
|
||||
import org.briarproject.bramble.mailbox.MailboxApi.ApiException;
|
||||
@@ -32,8 +35,8 @@ 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.getMailboxId;
|
||||
import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
|
||||
import static org.briarproject.bramble.test.TestUtils.getRandomId;
|
||||
import static org.briarproject.bramble.test.TestUtils.readBytes;
|
||||
import static org.briarproject.bramble.test.TestUtils.writeBytes;
|
||||
import static org.briarproject.bramble.util.StringUtils.getRandomString;
|
||||
@@ -63,12 +66,15 @@ public class MailboxApiTest extends BrambleTestCase {
|
||||
};
|
||||
private final MailboxApiImpl api = new MailboxApiImpl(httpClientProvider);
|
||||
|
||||
private final MailboxId token = getMailboxId();
|
||||
private final MailboxId token2 = getMailboxId();
|
||||
private final MailboxAuthToken token = new MailboxAuthToken(getRandomId());
|
||||
private final MailboxAuthToken token2 = new MailboxAuthToken(getRandomId());
|
||||
private final ContactId contactId = getContactId();
|
||||
private final MailboxId contactToken = getMailboxId();
|
||||
private final MailboxId contactInboxId = getMailboxId();
|
||||
private final MailboxId contactOutboxId = getMailboxId();
|
||||
private final MailboxAuthToken contactToken =
|
||||
new MailboxAuthToken(getRandomId());
|
||||
private final MailboxFolderId contactInboxId =
|
||||
new MailboxFolderId(getRandomId());
|
||||
private final MailboxFolderId contactOutboxId =
|
||||
new MailboxFolderId(getRandomId());
|
||||
private final MailboxContact mailboxContact = new MailboxContact(
|
||||
contactId, contactToken, contactInboxId, contactOutboxId);
|
||||
|
||||
@@ -428,9 +434,11 @@ public class MailboxApiTest extends BrambleTestCase {
|
||||
|
||||
@Test
|
||||
public void testGetFiles() throws Exception {
|
||||
MailboxFile mailboxFile1 = new MailboxFile(getMailboxId(), 1337);
|
||||
MailboxFile mailboxFile1 =
|
||||
new MailboxFile(new MailboxFileId(getRandomId()), 1337);
|
||||
MailboxFile mailboxFile2 =
|
||||
new MailboxFile(getMailboxId(), System.currentTimeMillis());
|
||||
new MailboxFile(new MailboxFileId(getRandomId()),
|
||||
System.currentTimeMillis());
|
||||
String fileResponse1 =
|
||||
new ObjectMapper().writeValueAsString(mailboxFile1);
|
||||
String fileResponse2 =
|
||||
@@ -539,7 +547,7 @@ public class MailboxApiTest extends BrambleTestCase {
|
||||
|
||||
@Test
|
||||
public void testGetFile() throws Exception {
|
||||
MailboxId name = getMailboxId();
|
||||
MailboxFileId name = new MailboxFileId(getRandomId());
|
||||
File file1 = folder.newFile();
|
||||
File file2 = folder.newFile();
|
||||
File file3 = folder.newFile();
|
||||
@@ -586,7 +594,7 @@ public class MailboxApiTest extends BrambleTestCase {
|
||||
|
||||
@Test
|
||||
public void testDeleteFile() throws Exception {
|
||||
MailboxId name = getMailboxId();
|
||||
MailboxFileId name = new MailboxFileId(getRandomId());
|
||||
|
||||
MockWebServer server = new MockWebServer();
|
||||
server.enqueue(new MockResponse());
|
||||
@@ -636,8 +644,8 @@ public class MailboxApiTest extends BrambleTestCase {
|
||||
|
||||
@Test
|
||||
public void testGetFolders() throws Exception {
|
||||
MailboxId id1 = getMailboxId();
|
||||
MailboxId id2 = getMailboxId();
|
||||
MailboxFolderId id1 = new MailboxFolderId(getRandomId());
|
||||
MailboxFolderId id2 = new MailboxFolderId(getRandomId());
|
||||
String validResponse1 = "{\"folders\": [ {\"id\": \"" + id1 + "\"} ] }";
|
||||
String validResponse2 = "{\"folders\": [ {\"id\": \"" + id1 + "\"}, " +
|
||||
"{ \"id\": \"" + id2 + "\"} ] }";
|
||||
|
||||
@@ -2,7 +2,10 @@ 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.InvalidMailboxIdException;
|
||||
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.mailbox.MailboxApi.ApiException;
|
||||
import org.briarproject.bramble.mailbox.MailboxApi.MailboxContact;
|
||||
@@ -28,8 +31,8 @@ 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.getMailboxId;
|
||||
import static org.briarproject.bramble.test.TestUtils.getRandomBytes;
|
||||
import static org.briarproject.bramble.test.TestUtils.getRandomId;
|
||||
import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled;
|
||||
import static org.briarproject.bramble.test.TestUtils.readBytes;
|
||||
import static org.briarproject.bramble.test.TestUtils.writeBytes;
|
||||
@@ -45,8 +48,16 @@ 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 MailboxId SETUP_TOKEN = MailboxId.fromString(
|
||||
"54686973206973206120736574757020746f6b656e20666f722042726961722e");
|
||||
private final static MailboxAuthToken SETUP_TOKEN;
|
||||
|
||||
static {
|
||||
try {
|
||||
SETUP_TOKEN = MailboxAuthToken.fromString(
|
||||
"54686973206973206120736574757020746f6b656e20666f722042726961722e");
|
||||
} catch (InvalidMailboxIdException e) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
private final OkHttpClient client = new OkHttpClient.Builder()
|
||||
.socketFactory(SocketFactory.getDefault())
|
||||
@@ -77,7 +88,7 @@ public class MailboxIntegrationTest extends BrambleTestCase {
|
||||
if (ownerProperties != null) return;
|
||||
MailboxProperties setupProperties =
|
||||
new MailboxProperties(URL_BASE, SETUP_TOKEN, true);
|
||||
MailboxId ownerToken = api.setup(setupProperties);
|
||||
MailboxAuthToken ownerToken = api.setup(setupProperties);
|
||||
ownerProperties = new MailboxProperties(URL_BASE, ownerToken, true);
|
||||
}
|
||||
|
||||
@@ -133,7 +144,7 @@ public class MailboxIntegrationTest extends BrambleTestCase {
|
||||
List<MailboxFile> files1 =
|
||||
api.getFiles(contactProperties, contact.inboxId);
|
||||
assertEquals(1, files1.size());
|
||||
MailboxId fileName1 = files1.get(0).name;
|
||||
MailboxFileId fileName1 = files1.get(0).name;
|
||||
|
||||
// owner can't check files
|
||||
assertThrows(ApiException.class, () ->
|
||||
@@ -171,15 +182,15 @@ public class MailboxIntegrationTest extends BrambleTestCase {
|
||||
api.addFile(contactProperties, contact.outboxId, file3);
|
||||
|
||||
// owner checks folders with available files
|
||||
List<MailboxId> folders = api.getFolders(ownerProperties);
|
||||
List<MailboxFolderId> folders = api.getFolders(ownerProperties);
|
||||
assertEquals(singletonList(contact.outboxId), folders);
|
||||
|
||||
// owner lists files in contact's outbox
|
||||
List<MailboxFile> files2 =
|
||||
api.getFiles(ownerProperties, contact.outboxId);
|
||||
assertEquals(2, files2.size());
|
||||
MailboxId file2name = files2.get(0).name;
|
||||
MailboxId file3name = files2.get(1).name;
|
||||
MailboxFileId file2name = files2.get(0).name;
|
||||
MailboxFileId file3name = files2.get(1).name;
|
||||
|
||||
// contact can't list files in contact's outbox
|
||||
assertThrows(ApiException.class, () ->
|
||||
@@ -232,8 +243,10 @@ public class MailboxIntegrationTest extends BrambleTestCase {
|
||||
}
|
||||
|
||||
private MailboxContact getMailboxContact(ContactId contactId) {
|
||||
return new MailboxContact(contactId, getMailboxId(), getMailboxId(),
|
||||
getMailboxId());
|
||||
MailboxAuthToken authToken = new MailboxAuthToken(getRandomId());
|
||||
MailboxFolderId inboxId = new MailboxFolderId(getRandomId());
|
||||
MailboxFolderId outboxId = new MailboxFolderId(getRandomId());
|
||||
return new MailboxContact(contactId, authToken, inboxId, outboxId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +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.MailboxAuthToken;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxProperties;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxSettingsManager;
|
||||
import org.briarproject.bramble.api.mailbox.MailboxStatus;
|
||||
@@ -21,7 +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.test.TestUtils.getRandomId;
|
||||
import static org.briarproject.bramble.util.StringUtils.getRandomString;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@@ -37,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 MailboxId token = getMailboxId();
|
||||
private final MailboxAuthToken token = new MailboxAuthToken(getRandomId());
|
||||
private final ContactId contactId1 = new ContactId(random.nextInt());
|
||||
private final ContactId contactId2 = new ContactId(random.nextInt());
|
||||
private final ContactId contactId3 = new ContactId(random.nextInt());
|
||||
@@ -195,7 +195,7 @@ public class MailboxSettingsManagerImplTest extends BrambleMockTestCase {
|
||||
assertEquals(onion, filename1);
|
||||
String filename2 = manager.getPendingUpload(txn, contactId2);
|
||||
assertNotNull(filename2);
|
||||
assertEquals(token, MailboxId.fromString(filename2));
|
||||
assertEquals(token.toString(), filename2);
|
||||
String filename3 = manager.getPendingUpload(txn, contactId3);
|
||||
assertNull(filename3);
|
||||
String filename4 =
|
||||
|
||||
Reference in New Issue
Block a user