mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 11:49:04 +01:00
[core] address review comments for message deletion explanation
This commit is contained in:
@@ -1154,12 +1154,10 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducer can not yet remove messages
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasIntroduction());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasIntroductionSessionInProgress());
|
||||
// introducee1 can not yet remove messages
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasIntroduction());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync second REQUEST message
|
||||
sync0To2(1, true);
|
||||
@@ -1167,10 +1165,10 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducer can not yet remove messages
|
||||
assertFalse(deleteAllMessages2From0().allDeleted());
|
||||
assertTrue(deleteAllMessages2From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages2From0().hasIntroductionSessionInProgress());
|
||||
// introducee2 can not yet remove messages
|
||||
assertFalse(deleteAllMessages0From2().allDeleted());
|
||||
assertTrue(deleteAllMessages0From2().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From2().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync first ACCEPT message
|
||||
sync1To0(1, true);
|
||||
@@ -1178,7 +1176,7 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducer can not yet remove messages
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync second ACCEPT message
|
||||
sync2To0(1, true);
|
||||
@@ -1186,7 +1184,7 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducer can not yet remove messages
|
||||
assertFalse(deleteAllMessages2From0().allDeleted());
|
||||
assertTrue(deleteAllMessages2From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages2From0().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync forwarded ACCEPT messages to introducees
|
||||
sync0To1(1, true);
|
||||
@@ -1194,10 +1192,10 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducee1 can not yet remove messages
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasIntroductionSessionInProgress());
|
||||
// introducee2 can not yet remove messages
|
||||
assertFalse(deleteAllMessages0From2().allDeleted());
|
||||
assertTrue(deleteAllMessages0From2().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From2().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync first AUTH and its forward
|
||||
sync1To0(1, true);
|
||||
@@ -1205,12 +1203,12 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducer can not yet remove messages
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasIntroductionSessionInProgress());
|
||||
assertFalse(deleteAllMessages2From0().allDeleted());
|
||||
assertTrue(deleteAllMessages2From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages2From0().hasIntroductionSessionInProgress());
|
||||
// introducee2 can not yet remove messages
|
||||
assertFalse(deleteAllMessages0From2().allDeleted());
|
||||
assertTrue(deleteAllMessages0From2().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From2().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync second AUTH and its forward as well as the following ACTIVATE
|
||||
sync2To0(2, true);
|
||||
@@ -1218,12 +1216,12 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// introducer can not yet remove messages
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasIntroductionSessionInProgress());
|
||||
assertFalse(deleteAllMessages2From0().allDeleted());
|
||||
assertTrue(deleteAllMessages2From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages2From0().hasIntroductionSessionInProgress());
|
||||
// introducee1 can not yet remove messages
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasIntroductionSessionInProgress());
|
||||
|
||||
// sync second ACTIVATE and its forward
|
||||
sync1To0(1, true);
|
||||
@@ -1245,8 +1243,9 @@ public class IntroductionIntegrationTest
|
||||
assertGroupCount(messageTracker0, g1.getId(), 0, 0);
|
||||
|
||||
// introducee1 can not yet remove messages, because last not ACKed
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
DeletionResult result = deleteAllMessages0From1();
|
||||
assertFalse(result.allDeleted());
|
||||
assertTrue(result.hasIntroductionSessionInProgress());
|
||||
assertEquals(2, getMessages0From1().size());
|
||||
|
||||
// check that introducee1 messages are tracked properly
|
||||
@@ -1292,14 +1291,18 @@ public class IntroductionIntegrationTest
|
||||
assertFalse(listener2.aborted);
|
||||
|
||||
// nobody can delete anything again
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertFalse(deleteAllMessages2From0().allDeleted());
|
||||
assertTrue(deleteAllMessages2From0().hasSessionInProgress());
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertFalse(deleteAllMessages0From2().allDeleted());
|
||||
assertTrue(deleteAllMessages0From2().hasSessionInProgress());
|
||||
result = deleteAllMessages1From0();
|
||||
assertFalse(result.allDeleted());
|
||||
assertTrue(result.hasIntroductionSessionInProgress());
|
||||
result = deleteAllMessages2From0();
|
||||
assertFalse(result.allDeleted());
|
||||
assertTrue(result.hasIntroductionSessionInProgress());
|
||||
result = deleteAllMessages0From1();
|
||||
assertFalse(result.allDeleted());
|
||||
assertTrue(result.hasIntroductionSessionInProgress());
|
||||
result = deleteAllMessages0From2();
|
||||
assertFalse(result.allDeleted());
|
||||
assertTrue(result.hasIntroductionSessionInProgress());
|
||||
|
||||
// group counts get counted up again correctly
|
||||
assertGroupCount(messageTracker0, g1.getId(), 2, 1);
|
||||
@@ -1485,8 +1488,7 @@ public class IntroductionIntegrationTest
|
||||
Set<MessageId> toDelete1 = new HashSet<>();
|
||||
toDelete1.add(messageId1);
|
||||
assertFalse(deleteMessages1From0(toDelete1).allDeleted());
|
||||
assertTrue(deleteMessages1From0(toDelete1).hasIntroduction());
|
||||
assertTrue(deleteMessages1From0(toDelete1).hasSessionInProgress());
|
||||
assertTrue(deleteMessages1From0(toDelete1).hasIntroductionSessionInProgress());
|
||||
|
||||
// deleting the introduction for introducee2 will fail as well
|
||||
Collection<ConversationMessageHeader> m2From0 = getMessages2From0();
|
||||
@@ -1495,8 +1497,7 @@ public class IntroductionIntegrationTest
|
||||
Set<MessageId> toDelete2 = new HashSet<>();
|
||||
toDelete2.add(messageId2);
|
||||
assertFalse(deleteMessages2From0(toDelete2).allDeleted());
|
||||
assertTrue(deleteMessages2From0(toDelete2).hasIntroduction());
|
||||
assertTrue(deleteMessages2From0(toDelete2).hasSessionInProgress());
|
||||
assertTrue(deleteMessages2From0(toDelete2).hasIntroductionSessionInProgress());
|
||||
|
||||
// sync REQUEST messages
|
||||
sync0To1(1, true);
|
||||
@@ -1506,9 +1507,9 @@ public class IntroductionIntegrationTest
|
||||
|
||||
// deleting introduction fails, because responses did not arrive
|
||||
assertFalse(deleteMessages0From1(toDelete1).allDeleted());
|
||||
assertTrue(deleteMessages0From1(toDelete1).hasSessionInProgress());
|
||||
assertTrue(deleteMessages0From1(toDelete1).hasIntroductionSessionInProgress());
|
||||
assertFalse(deleteMessages0From2(toDelete2).allDeleted());
|
||||
assertTrue(deleteMessages0From2(toDelete2).hasSessionInProgress());
|
||||
assertTrue(deleteMessages0From2(toDelete2).hasIntroductionSessionInProgress());
|
||||
|
||||
// remember response of introducee1 for future deletion
|
||||
Collection<ConversationMessageHeader> m0From1 = getMessages0From1();
|
||||
@@ -1568,8 +1569,7 @@ public class IntroductionIntegrationTest
|
||||
// deleting introduction fails for introducee 2,
|
||||
// because response is not yet selected for deletion
|
||||
assertFalse(deleteMessages0From2(toDelete2).allDeleted());
|
||||
assertTrue(deleteMessages0From2(toDelete2).hasIntroduction());
|
||||
assertTrue(deleteMessages0From2(toDelete2).hasNotAllSelected());
|
||||
assertTrue(deleteMessages0From2(toDelete2).hasNotAllIntroductionSelected());
|
||||
|
||||
// add response to be deleted as well
|
||||
toDelete2.add(response2);
|
||||
@@ -1587,8 +1587,7 @@ public class IntroductionIntegrationTest
|
||||
// deleting introduction fails for introducee 1,
|
||||
// because response is not yet selected for deletion
|
||||
assertFalse(deleteMessages0From1(toDelete1).allDeleted());
|
||||
assertTrue(deleteMessages0From1(toDelete1).hasIntroduction());
|
||||
assertTrue(deleteMessages0From1(toDelete1).hasNotAllSelected());
|
||||
assertTrue(deleteMessages0From1(toDelete1).hasNotAllIntroductionSelected());
|
||||
|
||||
// add response to be deleted as well
|
||||
toDelete1.add(response1);
|
||||
|
||||
@@ -280,38 +280,30 @@ public class MessagingManagerIntegrationTest
|
||||
PrivateMessage m =
|
||||
sendMessage(c0, c1, getRandomString(42), singletonList(h));
|
||||
|
||||
// attachment exists on both devices, state is set to PENDING
|
||||
db0.transaction(false, txn -> {
|
||||
db0.getMessage(txn, h.getMessageId());
|
||||
db0.setMessageState(txn, h.getMessageId(), PENDING);
|
||||
});
|
||||
// attachment exists on both devices, state set to PENDING for receiver
|
||||
db1.transaction(false, txn -> {
|
||||
db1.getMessage(txn, h.getMessageId());
|
||||
db1.setMessageState(txn, h.getMessageId(), PENDING);
|
||||
});
|
||||
|
||||
// deleting message fails (on both sides),
|
||||
// because attachment is not yet delivered
|
||||
// deleting succeeds for sender
|
||||
Set<MessageId> toDelete = singleton(m.getMessage().getId());
|
||||
DeletionResult result0 = db0.transactionWithResult(false, txn ->
|
||||
messagingManager0.deleteMessages(txn, contactId, toDelete));
|
||||
assertFalse(result0.allDeleted());
|
||||
assertTrue(result0.hasNotFullyDownloaded());
|
||||
assertTrue(result0.allDeleted());
|
||||
|
||||
// deleting message fails for receiver,
|
||||
// because attachment is not yet delivered
|
||||
DeletionResult result1 = db1.transactionWithResult(false, txn ->
|
||||
messagingManager1.deleteMessages(txn, contactId, toDelete));
|
||||
assertFalse(result1.allDeleted());
|
||||
assertTrue(result1.hasNotFullyDownloaded());
|
||||
|
||||
// deliver attachment
|
||||
db0.transaction(false,
|
||||
txn -> db0.setMessageState(txn, h.getMessageId(), DELIVERED));
|
||||
db1.transaction(false,
|
||||
txn -> db1.setMessageState(txn, h.getMessageId(), DELIVERED));
|
||||
|
||||
// deleting message and attachment on both sides works now
|
||||
assertTrue(db0.transactionWithResult(false, txn ->
|
||||
messagingManager0.deleteMessages(txn, contactId, toDelete))
|
||||
.allDeleted());
|
||||
// deleting message and attachment works for sender now
|
||||
assertTrue(db1.transactionWithResult(false, txn ->
|
||||
messagingManager1.deleteMessages(txn, contactId, toDelete))
|
||||
.allDeleted());
|
||||
|
||||
@@ -465,12 +465,10 @@ public class GroupInvitationIntegrationTest
|
||||
|
||||
// messages can not be deleted
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasInvitation());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasInvitationSessionInProgress());
|
||||
assertEquals(1, getMessages1From0().size());
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitation());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
assertEquals(1, getMessages0From1().size());
|
||||
|
||||
// respond
|
||||
@@ -485,13 +483,13 @@ public class GroupInvitationIntegrationTest
|
||||
// messages can be deleted now by creator, invitee needs to wait for ACK
|
||||
assertTrue(deleteAllMessages1From0().allDeleted());
|
||||
assertEquals(0, getMessages1From0().size());
|
||||
assertTrue(deleteAllMessages1From0().allDeleted()); // a second time nothing happens
|
||||
assertTrue(deleteAllMessages1From0()
|
||||
.allDeleted()); // a second time nothing happens
|
||||
assertGroupCount(messageTracker0, g1From0.getId(), 0, 0);
|
||||
|
||||
// trying to delete fails for invitee
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitation());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
assertEquals(2, getMessages0From1().size());
|
||||
|
||||
// creator sends two JOIN messages (one sharing + one in private group)
|
||||
@@ -539,8 +537,7 @@ public class GroupInvitationIntegrationTest
|
||||
|
||||
// trying to delete fails for invitee
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitation());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
assertEquals(2, getMessages0From1().size());
|
||||
|
||||
// creator sends ACK
|
||||
@@ -559,9 +556,9 @@ public class GroupInvitationIntegrationTest
|
||||
|
||||
// now new messages can not be deleted anymore
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasInvitationSessionInProgress());
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
|
||||
// responding again
|
||||
groupInvitationManager1
|
||||
@@ -595,9 +592,11 @@ public class GroupInvitationIntegrationTest
|
||||
Set<MessageId> toDelete = new HashSet<>();
|
||||
toDelete.add(messageId);
|
||||
assertFalse(deleteMessages1From0(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasSessionInProgress());
|
||||
assertTrue(deleteMessages1From0(toDelete)
|
||||
.hasInvitationSessionInProgress());
|
||||
assertFalse(deleteMessages0From1(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasSessionInProgress());
|
||||
assertTrue(deleteMessages0From1(toDelete)
|
||||
.hasInvitationSessionInProgress());
|
||||
|
||||
// respond
|
||||
groupInvitationManager1
|
||||
@@ -607,9 +606,11 @@ public class GroupInvitationIntegrationTest
|
||||
// both can still not delete the invitation,
|
||||
// because the response was not selected for deletion as well
|
||||
assertFalse(deleteMessages1From0(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasNotAllSelected());
|
||||
assertTrue(
|
||||
deleteMessages1From0(toDelete).hasNotAllInvitationSelected());
|
||||
assertFalse(deleteMessages0From1(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasNotAllSelected());
|
||||
assertTrue(
|
||||
deleteMessages0From1(toDelete).hasNotAllInvitationSelected());
|
||||
|
||||
// after selecting response, both messages can be deleted by creator
|
||||
m0 = getMessages1From0();
|
||||
@@ -626,7 +627,8 @@ public class GroupInvitationIntegrationTest
|
||||
|
||||
// 1 can still not delete the messages, as last one has not been ACKed
|
||||
assertFalse(deleteMessages0From1(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasSessionInProgress());
|
||||
assertTrue(deleteMessages0From1(toDelete)
|
||||
.hasInvitationSessionInProgress());
|
||||
assertEquals(2, getMessages0From1().size());
|
||||
assertGroupCount(messageTracker1, g0From1.getId(), 2, 1);
|
||||
|
||||
|
||||
@@ -866,11 +866,9 @@ public class ForumSharingIntegrationTest
|
||||
|
||||
// messages can not be deleted
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasInvitation());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasInvitationSessionInProgress());
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitation());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
|
||||
// accept invitation
|
||||
respondToRequest(contactId0From1, true);
|
||||
@@ -892,7 +890,7 @@ public class ForumSharingIntegrationTest
|
||||
|
||||
// 1 can not delete all messages, as last one has not been ACKed
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
assertGroupCount(messageTracker1, g0From1, 2, 1);
|
||||
|
||||
// 0 sends an ACK to their last message
|
||||
@@ -918,11 +916,11 @@ public class ForumSharingIntegrationTest
|
||||
|
||||
// messages can not be deleted anymore
|
||||
assertFalse(deleteAllMessages1From0().allDeleted());
|
||||
assertTrue(deleteAllMessages1From0().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages1From0().hasInvitationSessionInProgress());
|
||||
assertEquals(1, getMessages1From0().size());
|
||||
assertGroupCount(messageTracker0, g1From0, 1, 1);
|
||||
assertFalse(deleteAllMessages0From1().allDeleted());
|
||||
assertTrue(deleteAllMessages0From1().hasSessionInProgress());
|
||||
assertTrue(deleteAllMessages0From1().hasInvitationSessionInProgress());
|
||||
assertEquals(1, getMessages0From1().size());
|
||||
assertGroupCount(messageTracker1, g0From1, 1, 0);
|
||||
|
||||
@@ -998,8 +996,7 @@ public class ForumSharingIntegrationTest
|
||||
Set<MessageId> toDelete = new HashSet<>();
|
||||
toDelete.add(messageId);
|
||||
assertFalse(deleteMessages1From0(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasInvitation());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasSessionInProgress());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasInvitationSessionInProgress());
|
||||
|
||||
// decline invitation
|
||||
respondToRequest(contactId0From1, true);
|
||||
@@ -1009,11 +1006,9 @@ public class ForumSharingIntegrationTest
|
||||
// both can still not delete the invitation,
|
||||
// because the response was not selected for deletion as well
|
||||
assertFalse(deleteMessages1From0(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasInvitation());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasNotAllSelected());
|
||||
assertTrue(deleteMessages1From0(toDelete).hasNotAllInvitationSelected());
|
||||
assertFalse(deleteMessages0From1(toDelete).allDeleted());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasInvitation());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasNotAllSelected());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasNotAllInvitationSelected());
|
||||
|
||||
// after selecting response, both messages can be deleted
|
||||
m0 = getMessages1From0();
|
||||
@@ -1028,9 +1023,8 @@ public class ForumSharingIntegrationTest
|
||||
|
||||
// 1 can still not delete the messages, as last one has not been ACKed
|
||||
assertFalse(deleteMessages0From1(toDelete).allDeleted());
|
||||
assertFalse(deleteMessages0From1(toDelete).hasNotAllSelected());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasInvitation());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasSessionInProgress());
|
||||
assertFalse(deleteMessages0From1(toDelete).hasNotAllInvitationSelected());
|
||||
assertTrue(deleteMessages0From1(toDelete).hasInvitationSessionInProgress());
|
||||
|
||||
// 0 sends an ACK to their last message
|
||||
sendAcks(c0, c1, contactId1From0, 1);
|
||||
|
||||
Reference in New Issue
Block a user