From 25029e1fcaeb6ceacfb466eb4559bec425da5fb9 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Mon, 30 Aug 2021 12:20:06 +0200 Subject: [PATCH] Add a test to check revoke functionality --- .../remotewipe/RemoteWipeIntegrationTest.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/briar-core/src/test/java/org/briarproject/briar/remotewipe/RemoteWipeIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/remotewipe/RemoteWipeIntegrationTest.java index c1c517fd4..508495571 100644 --- a/briar-core/src/test/java/org/briarproject/briar/remotewipe/RemoteWipeIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/remotewipe/RemoteWipeIntegrationTest.java @@ -187,6 +187,63 @@ public class RemoteWipeIntegrationTest extends BriarIntegrationTest { + // Assert that we do not already have a wipe setup + assertFalse(remoteWipeManager0.remoteWipeIsSetup(txn)); + remoteWipeManager0.setup(txn, + asList(contactId1From0, contactId2From0)); + // Now check that we do have a wipe setup + assertTrue(remoteWipeManager0.remoteWipeIsSetup(txn)); + // Check we have 2 wipers + assertEquals(remoteWipeManager0.getWipers(txn).size(), 2); + }); + // Sync the setup messages to the contacts + sync0To1(1, true); + sync0To2(1, true); + + // The setup message from 0 should have arrived at 1 + Collection messages0At1 = + getMessages0At1(); + assertEquals(1, messages0At1.size()); + + Collection messages0At2 = + getMessages0At2(); + assertEquals(1, messages0At2.size()); + + for (ConversationMessageHeader h : messages0At1) { + assertTrue(h instanceof RemoteWipeMessageHeader); + RemoteWipeMessageHeader r = (RemoteWipeMessageHeader) h; + assertFalse(r.isLocal()); + } + + // Revoke contact 1's wiper status + db0.transaction(false, txn -> { + remoteWipeManager0.revoke(txn, contactId1From0); + // Check we now only have one wiper + assertEquals(remoteWipeManager0.getWipers(txn).size(), 1); + }); + + + // Sync the revoke message + sync0To1(1, true); + + // The wipers check if they are now wipers + db1.transaction(false, txn -> { + assertFalse(remoteWipeManager1.amWiper(txn, contactId0From1)); + boolean cannotWipe = false; + try { + remoteWipeManager1.wipe(txn, contact0From1); + } catch(DbException e) { + cannotWipe = true; + } finally { + assertTrue(cannotWipe); + } + }); + + } private Collection getMessages1At0() throws DbException { return db0.transactionWithResult(true, txn -> remoteWipeManager0