Store invitation outcome in metadata

and include in canBeOpened calculation for private groups and sharables.
This commit is contained in:
Torsten Grote
2017-01-05 12:56:46 -02:00
parent 5653c6d650
commit 04508a7431
24 changed files with 122 additions and 39 deletions

View File

@@ -169,7 +169,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase {
final boolean visible) throws Exception {
context.checking(new Expectations() {{
oneOf(messageEncoder).encodeMetadata(type, privateGroupId,
message.getTimestamp(), true, true, visible, false);
message.getTimestamp(), true, true, visible, false, false);
will(returnValue(meta));
oneOf(clientHelper).addLocalMessage(txn, message, meta, true);
}});

View File

@@ -104,6 +104,7 @@ public class GroupInvitationIntegrationTest
assertEquals(privateGroup0.getName(), request.getShareable().getName());
assertFalse(request.isLocal());
assertFalse(request.isRead());
assertFalse(request.canBeOpened());
}
@Test
@@ -175,6 +176,8 @@ public class GroupInvitationIntegrationTest
foundResponse = true;
InvitationResponse response = (GroupInvitationResponse) m;
assertTrue(response.wasAccepted());
} else {
assertTrue(((GroupInvitationRequest) m).canBeOpened());
}
}
assertTrue(foundResponse);

View File

@@ -638,10 +638,10 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
final long time1 = 1L, time2 = 2L;
final MessageMetadata messageMetadata1 =
new MessageMetadata(INVITE, privateGroup.getId(), time1, true,
true, true, false);
true, true, false, true);
final MessageMetadata messageMetadata2 =
new MessageMetadata(JOIN, privateGroup.getId(), time2, true,
true, true, true);
true, true, true, false);
final InviteMessage invite =
new InviteMessage(message.getId(), contactGroup.getId(),
privateGroup.getId(), time1, "name", author,

View File

@@ -311,7 +311,7 @@ public class GroupInvitationValidatorTest extends ValidatorTestCase {
} else {
oneOf(messageEncoder).encodeMetadata(INVITE,
message.getGroupId(), message.getTimestamp(), false,
false, false, false);
false, false, false, false);
will(returnValue(meta));
}
}});
@@ -389,7 +389,7 @@ public class GroupInvitationValidatorTest extends ValidatorTestCase {
BdfList body = BdfList.of(JOIN.getValue(), privateGroup.getId(), null);
context.checking(new Expectations() {{
oneOf(messageEncoder).encodeMetadata(JOIN, message.getGroupId(),
message.getTimestamp(), false, false, false, false);
message.getTimestamp(), false, false, false, false, false);
will(returnValue(meta));
}});
BdfMessageContext messageContext =
@@ -404,7 +404,7 @@ public class GroupInvitationValidatorTest extends ValidatorTestCase {
previousMessageId);
context.checking(new Expectations() {{
oneOf(messageEncoder).encodeMetadata(JOIN, message.getGroupId(),
message.getTimestamp(), false, false, false, false);
message.getTimestamp(), false, false, false, false, false);
will(returnValue(meta));
}});
BdfMessageContext messageContext =
@@ -487,7 +487,7 @@ public class GroupInvitationValidatorTest extends ValidatorTestCase {
BdfList body = BdfList.of(LEAVE.getValue(), privateGroup.getId(), null);
context.checking(new Expectations() {{
oneOf(messageEncoder).encodeMetadata(LEAVE, message.getGroupId(),
message.getTimestamp(), false, false, false, false);
message.getTimestamp(), false, false, false, false, false);
will(returnValue(meta));
}});
BdfMessageContext messageContext =
@@ -500,7 +500,7 @@ public class GroupInvitationValidatorTest extends ValidatorTestCase {
public void testAcceptsValidLeaveMessage() throws Exception {
context.checking(new Expectations() {{
oneOf(messageEncoder).encodeMetadata(LEAVE, message.getGroupId(),
message.getTimestamp(), false, false, false, false);
message.getTimestamp(), false, false, false, false, false);
will(returnValue(meta));
}});
BdfList body = BdfList.of(LEAVE.getValue(), privateGroup.getId(),
@@ -557,7 +557,7 @@ public class GroupInvitationValidatorTest extends ValidatorTestCase {
public void testAcceptsValidAbortMessage() throws Exception {
context.checking(new Expectations() {{
oneOf(messageEncoder).encodeMetadata(ABORT, message.getGroupId(),
message.getTimestamp(), false, false, false, false);
message.getTimestamp(), false, false, false, false, false);
will(returnValue(meta));
}});
BdfList body = BdfList.of(ABORT.getValue(), privateGroup.getId());

View File

@@ -3,11 +3,9 @@ package org.briarproject.briar.privategroup.invitation;
import org.briarproject.bramble.api.contact.Contact;
import org.briarproject.bramble.api.data.BdfDictionary;
import org.briarproject.bramble.api.data.BdfEntry;
import org.briarproject.bramble.api.data.BdfList;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.identity.AuthorId;
import org.briarproject.bramble.api.identity.LocalAuthor;
import org.briarproject.bramble.api.sync.Message;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.privategroup.GroupMessage;
@@ -132,15 +130,17 @@ public class InviteeProtocolEngineTest extends AbstractProtocolEngineTest {
final JoinMessage properJoinMessage =
new JoinMessage(messageId, contactGroupId, privateGroupId,
messageTimestamp, lastRemoteMessageId);
final Message inviteMsg =
new Message(lastRemoteMessageId, contactGroupId, 1337L,
getRandomBytes(42));
final BdfList inviteList = BdfList.of("inviteMessage");
final long timestamp = 0L;
final GroupMessage joinGroupMessage =
new GroupMessage(message, null, localAuthor);
final BdfDictionary meta = new BdfDictionary();
expectMarkMessageAvailableToAnswer(lastRemoteMessageId, false);
context.checking(new Expectations() {{
oneOf(messageEncoder).setInvitationAccepted(meta, true);
oneOf(clientHelper)
.mergeMessageMetadata(txn, lastRemoteMessageId, meta);
}});
expectSendJoinMessage(properJoinMessage, true);
context.checking(new Expectations() {{
oneOf(messageTracker).trackOutgoingMessage(txn, message);

View File

@@ -136,6 +136,7 @@ public class ForumSharingIntegrationTest
assertEquals(forum0.getName(), invitation.getForumName());
assertEquals(contactId1From0, invitation.getContactId());
assertEquals("Hi!", invitation.getMessage());
assertTrue(invitation.canBeOpened());
} else {
ForumInvitationResponse response =
(ForumInvitationResponse) m;
@@ -195,6 +196,7 @@ public class ForumSharingIntegrationTest
assertEquals(forum0.getName(), invitation.getForumName());
assertEquals(contactId1From0, invitation.getContactId());
assertEquals(null, invitation.getMessage());
assertFalse(invitation.canBeOpened());
} else {
ForumInvitationResponse response =
(ForumInvitationResponse) m;

View File

@@ -147,7 +147,7 @@ public abstract class SharingValidatorTest extends ValidatorTestCase {
context.checking(new Expectations() {{
oneOf(messageEncoder)
.encodeMetadata(type, groupId, timestamp, false, false,
false, false);
false, false, false);
will(returnValue(meta));
}});
}