diff --git a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java index c7b55fbfe..8250dbc71 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java @@ -13,10 +13,10 @@ import javax.annotation.Nullable; public class BlogInvitationRequest extends InvitationRequest { public BlogInvitationRequest(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, Blog blog, @Nullable String text, boolean available, boolean canBeOpened) { - super(id, groupId, time, local, sent, seen, read, sessionId, blog, + super(id, groupId, time, local, read, sent, seen, sessionId, blog, text, available, canBeOpened); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationResponse.java index e0761b0dc..29b3553f9 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationResponse.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationResponse.java @@ -11,9 +11,9 @@ import org.briarproject.briar.api.sharing.InvitationResponse; public class BlogInvitationResponse extends InvitationResponse { public BlogInvitationResponse(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, boolean accept, GroupId shareableId) { - super(id, groupId, time, local, sent, seen, read, sessionId, + super(id, groupId, time, local, read, sent, seen, sessionId, accept, shareableId); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationRequest.java index 8e43afaa0..214d0d1d4 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationRequest.java @@ -21,10 +21,10 @@ public abstract class ConversationRequest private final boolean answered; public ConversationRequest(MessageId messageId, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, N nameable, @Nullable String text, boolean answered) { - super(messageId, groupId, time, local, sent, seen, read); + super(messageId, groupId, time, local, read, sent, seen); this.sessionId = sessionId; this.nameable = nameable; this.text = text; diff --git a/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationResponse.java index 79dfb6ddf..cf6c879f0 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationResponse.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationResponse.java @@ -15,9 +15,9 @@ public abstract class ConversationResponse extends ConversationMessageHeader { private final boolean accepted; public ConversationResponse(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, boolean accepted) { - super(id, groupId, time, local, sent, seen, read); + super(id, groupId, time, local, read, sent, seen); this.sessionId = sessionId; this.accepted = accepted; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java index 28c534bdc..26d0e94c9 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java @@ -15,10 +15,10 @@ import javax.annotation.concurrent.Immutable; public class ForumInvitationRequest extends InvitationRequest { public ForumInvitationRequest(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, Forum forum, @Nullable String text, boolean available, boolean canBeOpened) { - super(id, groupId, time, local, sent, seen, read, sessionId, forum, + super(id, groupId, time, local, read, sent, seen, sessionId, forum, text, available, canBeOpened); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationResponse.java index 7af450afa..edaeb2cf0 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationResponse.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationResponse.java @@ -14,9 +14,9 @@ import javax.annotation.concurrent.Immutable; public class ForumInvitationResponse extends InvitationResponse { public ForumInvitationResponse(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, boolean accept, GroupId shareableId) { - super(id, groupId, time, local, sent, seen, read, sessionId, + super(id, groupId, time, local, read, sent, seen, sessionId, accept, shareableId); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java index e070d520e..fbb341ce0 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java @@ -19,10 +19,10 @@ public class IntroductionRequest extends ConversationRequest { private final AuthorInfo authorInfo; public IntroductionRequest(MessageId messageId, GroupId groupId, - long time, boolean local, boolean sent, boolean seen, boolean read, + long time, boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, Author author, @Nullable String text, boolean answered, AuthorInfo authorInfo) { - super(messageId, groupId, time, local, sent, seen, read, sessionId, + super(messageId, groupId, time, local, read, sent, seen, sessionId, author, text, answered); this.authorInfo = authorInfo; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionResponse.java index c87ae96c4..7e73da471 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionResponse.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionResponse.java @@ -22,10 +22,10 @@ public class IntroductionResponse extends ConversationResponse { private final Role ourRole; public IntroductionResponse(MessageId messageId, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, boolean accepted, Author author, AuthorInfo introducedAuthorInfo, Role role) { - super(messageId, groupId, time, local, sent, seen, read, sessionId, + super(messageId, groupId, time, local, read, sent, seen, sessionId, accepted); this.introducedAuthor = author; this.introducedAuthorInfo = introducedAuthorInfo; diff --git a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java index 0577fea41..caab08faf 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java @@ -16,10 +16,10 @@ import javax.annotation.concurrent.Immutable; public class GroupInvitationRequest extends InvitationRequest { public GroupInvitationRequest(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, PrivateGroup shareable, @Nullable String text, boolean available, boolean canBeOpened) { - super(id, groupId, time, local, sent, seen, read, sessionId, shareable, + super(id, groupId, time, local, read, sent, seen, sessionId, shareable, text, available, canBeOpened); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationResponse.java index 63c15bb62..a6d72ae0a 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationResponse.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationResponse.java @@ -14,9 +14,9 @@ import javax.annotation.concurrent.Immutable; public class GroupInvitationResponse extends InvitationResponse { public GroupInvitationResponse(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, boolean accept, GroupId shareableId) { - super(id, groupId, time, local, sent, seen, read, sessionId, + super(id, groupId, time, local, read, sent, seen, sessionId, accept, shareableId); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java index 391138ef4..d122c8aea 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java @@ -13,10 +13,10 @@ public abstract class InvitationRequest extends private final boolean canBeOpened; public InvitationRequest(MessageId messageId, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, S object, @Nullable String text, boolean available, boolean canBeOpened) { - super(messageId, groupId, time, local, sent, seen, read, sessionId, + super(messageId, groupId, time, local, read, sent, seen, sessionId, object, text, !available); this.canBeOpened = canBeOpened; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java index 94052fa97..c5ae5c4d6 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java @@ -10,9 +10,9 @@ public abstract class InvitationResponse extends ConversationResponse { private final GroupId shareableId; public InvitationResponse(MessageId id, GroupId groupId, long time, - boolean local, boolean sent, boolean seen, boolean read, + boolean local, boolean read, boolean sent, boolean seen, SessionId sessionId, boolean accepted, GroupId shareableId) { - super(id, groupId, time, local, sent, seen, read, sessionId, accepted); + super(id, groupId, time, local, read, sent, seen, sessionId, accepted); this.shareableId = shareableId; } diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java index 5524c67eb..560651ed6 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java @@ -453,7 +453,7 @@ class IntroductionManagerImpl extends ConversationClientImpl authorInfos.put(author.getId(), authorInfo); } return new IntroductionRequest(m, contactGroupId, meta.getTimestamp(), - meta.isLocal(), status.isSent(), status.isSeen(), meta.isRead(), + meta.isLocal(), meta.isRead(), status.isSent(), status.isSeen(), sessionId, author, text, !meta.isAvailableToAnswer(), authorInfo); } @@ -487,7 +487,7 @@ class IntroductionManagerImpl extends ConversationClientImpl authorInfos.put(author.getId(), authorInfo); } return new IntroductionResponse(m, contactGroupId, meta.getTimestamp(), - meta.isLocal(), status.isSent(), status.isSeen(), meta.isRead(), + meta.isLocal(), meta.isRead(), status.isSent(), status.isSeen(), sessionId, accept, author, authorInfo, role); } diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java index 84d5dd499..c252ac787 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java @@ -414,8 +414,8 @@ class GroupInvitationManagerImpl extends ConversationClientImpl boolean canBeOpened = meta.wasAccepted() && db.containsGroup(txn, invite.getPrivateGroupId()); return new GroupInvitationRequest(m, contactGroupId, - meta.getTimestamp(), meta.isLocal(), status.isSent(), - status.isSeen(), meta.isRead(), sessionId, pg, + meta.getTimestamp(), meta.isLocal(), meta.isRead(), + status.isSent(), status.isSeen(), sessionId, pg, invite.getText(), meta.isAvailableToAnswer(), canBeOpened); } @@ -424,10 +424,9 @@ class GroupInvitationManagerImpl extends ConversationClientImpl MessageStatus status, boolean accept) { SessionId sessionId = getSessionId(meta.getPrivateGroupId()); return new GroupInvitationResponse(m, contactGroupId, - meta.getTimestamp(), meta.isLocal(), status.isSent(), - status.isSeen(), meta.isRead(), sessionId, accept, - meta.getPrivateGroupId() - ); + meta.getTimestamp(), meta.isLocal(), meta.isRead(), + status.isSent(), status.isSeen(), sessionId, accept, + meta.getPrivateGroupId()); } @Override diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java index 2a8d1a859..abf489ac6 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java @@ -329,7 +329,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine { PrivateGroup pg) { SessionId sessionId = new SessionId(m.getPrivateGroupId().getBytes()); return new GroupInvitationRequest(m.getId(), m.getContactGroupId(), - m.getTimestamp(), false, false, true, false, sessionId, pg, + m.getTimestamp(), false, false, false, false, sessionId, pg, m.getText(), true, false); } diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogInvitationFactoryImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogInvitationFactoryImpl.java index f8c0a1400..10f4d1e31 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogInvitationFactoryImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogInvitationFactoryImpl.java @@ -23,7 +23,7 @@ public class BlogInvitationFactoryImpl ContactId c, boolean available, boolean canBeOpened) { SessionId sessionId = new SessionId(m.getShareableId().getBytes()); return new BlogInvitationRequest(m.getId(), m.getContactGroupId(), - m.getTimestamp(), local, sent, seen, read, sessionId, + m.getTimestamp(), local, read, sent, seen, sessionId, m.getShareable(), m.getText(), available, canBeOpened); } @@ -32,8 +32,8 @@ public class BlogInvitationFactoryImpl GroupId contactGroupId, long time, boolean local, boolean sent, boolean seen, boolean read, boolean accept, GroupId shareableId) { SessionId sessionId = new SessionId(shareableId.getBytes()); - return new BlogInvitationResponse(id, contactGroupId, time, local, sent, - seen, read, sessionId, accept, shareableId); + return new BlogInvitationResponse(id, contactGroupId, time, local, read, + sent, seen, sessionId, accept, shareableId); } } diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumInvitationFactoryImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumInvitationFactoryImpl.java index 4566ad047..09fcd9896 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumInvitationFactoryImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumInvitationFactoryImpl.java @@ -23,7 +23,7 @@ public class ForumInvitationFactoryImpl ContactId c, boolean available, boolean canBeOpened) { SessionId sessionId = new SessionId(m.getShareableId().getBytes()); return new ForumInvitationRequest(m.getId(), m.getContactGroupId(), - m.getTimestamp(), local, sent, seen, read, sessionId, + m.getTimestamp(), local, read, sent, seen, sessionId, m.getShareable(), m.getText(), available, canBeOpened); } @@ -33,7 +33,7 @@ public class ForumInvitationFactoryImpl boolean seen, boolean read, boolean accept, GroupId shareableId) { SessionId sessionId = new SessionId(shareableId.getBytes()); return new ForumInvitationResponse(id, contactGroupId, time, local, - sent, seen, read, sessionId, accept, shareableId); + read, sent, seen, sessionId, accept, shareableId); } } 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 c3a4d3342..4c65c6e9c 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 @@ -25,6 +25,7 @@ import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.conversation.ConversationMessageHeader; +import org.briarproject.briar.api.conversation.ConversationResponse; import org.briarproject.briar.api.introduction.IntroductionManager; import org.briarproject.briar.api.introduction.IntroductionRequest; import org.briarproject.briar.api.introduction.IntroductionResponse; @@ -138,6 +139,18 @@ public class IntroductionIntegrationTest assertGroupCount(messageTracker0, g1.getId(), 1, 0); assertGroupCount(messageTracker0, g2.getId(), 1, 0); + // check that request message states are correct + Collection messages = + db0.transactionWithResult(true, txn -> introductionManager0 + .getMessageHeaders(txn, contactId1From0)); + assertEquals(1, messages.size()); + assertMessageState(messages.iterator().next(), true, false, false); + messages = + db0.transactionWithResult(true, txn -> introductionManager0 + .getMessageHeaders(txn, contactId2From0)); + assertEquals(1, messages.size()); + assertMessageState(messages.iterator().next(), true, false, false); + // sync first REQUEST message sync0To1(1, true); eventWaiter.await(TIMEOUT, 1); @@ -146,6 +159,17 @@ public class IntroductionIntegrationTest listener1.getRequest().getName()); assertGroupCount(messageTracker1, g1.getId(), 2, 1); + // check that accept message state is correct + messages = + db1.transactionWithResult(true, txn -> introductionManager1 + .getMessageHeaders(txn, contactId0From1)); + assertEquals(2, messages.size()); + for (ConversationMessageHeader h : messages) { + if (h instanceof ConversationResponse) { + assertMessageState(h, true, false, false); + } + } + // sync second REQUEST message sync0To2(1, true); eventWaiter.await(TIMEOUT, 1); diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java index 033b90304..2b648d5bc 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java @@ -163,14 +163,21 @@ public class GroupInvitationIntegrationTest long timestamp = clock.currentTimeMillis(); sendInvitation(timestamp, null); + // check that invitation message state is correct + Collection messages = + db0.transactionWithResult(true, txn -> groupInvitationManager0 + .getMessageHeaders(txn, contactId1From0)); + assertEquals(1, messages.size()); + assertMessageState(messages.iterator().next(), true, false, false); + sync0To1(1, true); assertFalse(groupInvitationManager1.getInvitations().isEmpty()); groupInvitationManager1 .respondToInvitation(contactId0From1, privateGroup0, true); - Collection messages = - db1.transactionWithResult(true, txn -> groupInvitationManager1 + messages = db1.transactionWithResult(true, + txn -> groupInvitationManager1 .getMessageHeaders(txn, contactId0From1)); assertEquals(2, messages.size()); boolean foundResponse = false; @@ -178,6 +185,7 @@ public class GroupInvitationIntegrationTest if (m instanceof GroupInvitationResponse) { foundResponse = true; GroupInvitationResponse response = (GroupInvitationResponse) m; + assertMessageState(response, true, false, false); assertEquals(privateGroup0.getId(), response.getShareableId()); assertTrue(response.wasAccepted()); } else { diff --git a/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingIntegrationTest.java index d0bad4ae9..a7cea84bd 100644 --- a/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingIntegrationTest.java @@ -19,6 +19,7 @@ import org.briarproject.briar.api.blog.BlogSharingManager; import org.briarproject.briar.api.blog.event.BlogInvitationRequestReceivedEvent; import org.briarproject.briar.api.blog.event.BlogInvitationResponseReceivedEvent; import org.briarproject.briar.api.conversation.ConversationMessageHeader; +import org.briarproject.briar.api.conversation.ConversationResponse; import org.briarproject.briar.test.BriarIntegrationTest; import org.briarproject.briar.test.BriarIntegrationTestComponent; import org.briarproject.briar.test.DaggerBriarIntegrationTestComponent; @@ -128,12 +129,29 @@ public class BlogSharingIntegrationTest MAJOR_VERSION, contact1From0).getId(); assertGroupCount(messageTracker0, g, 1, 0); + // check that request message state is correct + Collection messages = + db0.transactionWithResult(true, txn -> blogSharingManager0 + .getMessageHeaders(txn, contactId1From0)); + assertEquals(1, messages.size()); + assertMessageState(messages.iterator().next(), true, false, false); + // sync first request message sync0To1(1, true); eventWaiter.await(TIMEOUT, 1); assertTrue(listener1.requestReceived); assertGroupCount(messageTracker1, g, 2, 1); + // check that accept message state is correct + messages = db1.transactionWithResult(true, txn -> blogSharingManager1 + .getMessageHeaders(txn, contactId0From1)); + assertEquals(2, messages.size()); + for (ConversationMessageHeader h : messages) { + if (h instanceof ConversationResponse) { + assertMessageState(h, true, false, false); + } + } + // sync response back sync1To0(1, true); eventWaiter.await(TIMEOUT, 1); diff --git a/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java index 8921f3bfa..987a78d20 100644 --- a/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java @@ -13,6 +13,7 @@ import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.briar.api.conversation.ConversationMessageHeader; +import org.briarproject.briar.api.conversation.ConversationResponse; import org.briarproject.briar.api.forum.Forum; import org.briarproject.briar.api.forum.ForumInvitationRequest; import org.briarproject.briar.api.forum.ForumInvitationResponse; @@ -114,11 +115,28 @@ public class ForumSharingIntegrationTest .sendInvitation(forum0.getId(), contactId1From0, "Hi!", clock.currentTimeMillis()); + // check that request message state is correct + Collection messages = + db0.transactionWithResult(true, txn -> forumSharingManager0 + .getMessageHeaders(txn, contactId1From0)); + assertEquals(1, messages.size()); + assertMessageState(messages.iterator().next(), true, false, false); + // sync first request message sync0To1(1, true); eventWaiter.await(TIMEOUT, 1); assertTrue(listener1.requestReceived); + // check that accept message state is correct + messages = db1.transactionWithResult(true, txn -> forumSharingManager1 + .getMessageHeaders(txn, contactId0From1)); + assertEquals(2, messages.size()); + for (ConversationMessageHeader h : messages) { + if (h instanceof ConversationResponse) { + assertMessageState(h, true, false, false); + } + } + // sync response back sync1To0(1, true); eventWaiter.await(TIMEOUT, 1); 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 c278b83bb..f610700b2 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 @@ -40,6 +40,7 @@ import org.briarproject.bramble.versioning.VersioningModule; import org.briarproject.briar.api.blog.BlogFactory; import org.briarproject.briar.api.blog.BlogPostFactory; import org.briarproject.briar.api.client.MessageTracker; +import org.briarproject.briar.api.conversation.ConversationMessageHeader; import org.briarproject.briar.api.forum.ForumPostFactory; import org.briarproject.briar.api.privategroup.GroupMessageFactory; import org.briarproject.briar.api.privategroup.PrivateGroupFactory; @@ -330,6 +331,13 @@ public abstract class BriarIntegrationTest