From 9ab581e2c69b27b3a08318a5c8e596f86ff524a3 Mon Sep 17 00:00:00 2001 From: Guus der Kinderen Date: Wed, 3 Jul 2024 16:11:27 +0200 Subject: [PATCH] [sinttest] XEP-0373 Integration Tests should clean-up After test execution, the OpenPGP for XMPP integration tests should clean up the data published via PEP. This prevents these tests from interfering with other tests. --- .../ox/OXSecretKeyBackupIntegrationTest.java | 50 +++++++++++-------- .../OXInstantMessagingIntegrationTest.java | 34 ++++++++----- 2 files changed, 50 insertions(+), 34 deletions(-) diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java index 0aa708e9f7..c3a4972d20 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java @@ -38,6 +38,7 @@ import org.jivesoftware.smackx.ox.exception.NoBackupFoundException; import org.jivesoftware.smackx.ox.store.definition.OpenPgpStore; import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; +import org.jivesoftware.smackx.ox.util.OpenPgpPubSubUtil; import org.jivesoftware.smackx.pubsub.PubSubException; import org.bouncycastle.openpgp.PGPException; @@ -122,38 +123,45 @@ public void test() throws InvalidAlgorithmParameterException, NoSuchAlgorithmExc assertNull(self.getSigningKeyFingerprint()); OpenPgpV4Fingerprint keyFingerprint = openPgpManager.generateAndImportKeyPair(alice); - assertEquals(keyFingerprint, self.getSigningKeyFingerprint()); - assertTrue(self.getSecretKeys().contains(keyFingerprint.getKeyId())); + try { + assertEquals(keyFingerprint, self.getSigningKeyFingerprint()); + assertTrue(self.getSecretKeys().contains(keyFingerprint.getKeyId())); - PGPSecretKeyRing beforeSec = beforeStore.getSecretKeyRing(alice, keyFingerprint); - assertNotNull(beforeSec); + PGPSecretKeyRing beforeSec = beforeStore.getSecretKeyRing(alice, keyFingerprint); + assertNotNull(beforeSec); - PGPPublicKeyRing beforePub = beforeStore.getPublicKeyRing(alice, keyFingerprint); - assertNotNull(beforePub); + PGPPublicKeyRing beforePub = beforeStore.getPublicKeyRing(alice, keyFingerprint); + assertNotNull(beforePub); - OpenPgpSecretKeyBackupPassphrase backupPassphrase = + OpenPgpSecretKeyBackupPassphrase backupPassphrase = openPgpManager.backupSecretKeyToServer(availableSecretKeys -> availableSecretKeys); - FileBasedOpenPgpStore afterStore = new FileBasedOpenPgpStore(afterPath); - afterStore.setKeyRingProtector(new UnprotectedKeysProtector()); - PainlessOpenPgpProvider afterProvider = new PainlessOpenPgpProvider(afterStore); - openPgpManager.setOpenPgpProvider(afterProvider); + FileBasedOpenPgpStore afterStore = new FileBasedOpenPgpStore(afterPath); + afterStore.setKeyRingProtector(new UnprotectedKeysProtector()); + PainlessOpenPgpProvider afterProvider = new PainlessOpenPgpProvider(afterStore); + openPgpManager.setOpenPgpProvider(afterProvider); - OpenPgpV4Fingerprint fingerprint = openPgpManager.restoreSecretKeyServerBackup(() -> backupPassphrase); + OpenPgpV4Fingerprint fingerprint = openPgpManager.restoreSecretKeyServerBackup(() -> backupPassphrase); - assertEquals(keyFingerprint, fingerprint); + assertEquals(keyFingerprint, fingerprint); - assertTrue(self.getSecretKeys().contains(keyFingerprint.getKeyId())); + assertTrue(self.getSecretKeys().contains(keyFingerprint.getKeyId())); - assertEquals(keyFingerprint, self.getSigningKeyFingerprint()); + assertEquals(keyFingerprint, self.getSigningKeyFingerprint()); - PGPSecretKeyRing afterSec = afterStore.getSecretKeyRing(alice, keyFingerprint); - assertNotNull(afterSec); - assertArrayEquals(beforeSec.getEncoded(), afterSec.getEncoded()); + PGPSecretKeyRing afterSec = afterStore.getSecretKeyRing(alice, keyFingerprint); + assertNotNull(afterSec); + assertArrayEquals(beforeSec.getEncoded(), afterSec.getEncoded()); - PGPPublicKeyRing afterPub = afterStore.getPublicKeyRing(alice, keyFingerprint); - assertNotNull(afterPub); - assertArrayEquals(beforePub.getEncoded(), afterPub.getEncoded()); + PGPPublicKeyRing afterPub = afterStore.getPublicKeyRing(alice, keyFingerprint); + assertNotNull(afterPub); + assertArrayEquals(beforePub.getEncoded(), afterPub.getEncoded()); + } finally { + Thread.sleep(10000); + OpenPgpPubSubUtil.deletePublicKeyNode(alicePepManager, keyFingerprint); + OpenPgpPubSubUtil.deletePubkeysListNode(alicePepManager); + Thread.sleep(10000); + } } } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java index 0dc5978533..4467dde1f3 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java @@ -33,6 +33,7 @@ import org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider; import org.jivesoftware.smackx.ox.element.SigncryptElement; import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; +import org.jivesoftware.smackx.ox.util.OpenPgpPubSubUtil; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; @@ -139,26 +140,33 @@ public void newIncomingOxMessage(OpenPgpContact contact, Message originalMessage aliceFingerprint = aliceOpenPgp.generateAndImportKeyPair(alice); bobFingerprint = bobOpenPgp.generateAndImportKeyPair(bob); - aliceOpenPgp.announceSupportAndPublish(); - bobOpenPgp.announceSupportAndPublish(); + try { + aliceOpenPgp.announceSupportAndPublish(); + bobOpenPgp.announceSupportAndPublish(); - OpenPgpContact bobForAlice = aliceOpenPgp.getOpenPgpContact(bob.asEntityBareJidIfPossible()); - OpenPgpContact aliceForBob = bobOpenPgp.getOpenPgpContact(alice.asEntityBareJidIfPossible()); + OpenPgpContact bobForAlice = aliceOpenPgp.getOpenPgpContact(bob.asEntityBareJidIfPossible()); + OpenPgpContact aliceForBob = bobOpenPgp.getOpenPgpContact(alice.asEntityBareJidIfPossible()); - bobForAlice.updateKeys(aliceConnection); + bobForAlice.updateKeys(aliceConnection); - assertFalse(bobForAlice.isTrusted(bobFingerprint)); - assertFalse(aliceForBob.isTrusted(aliceFingerprint)); + assertFalse(bobForAlice.isTrusted(bobFingerprint)); + assertFalse(aliceForBob.isTrusted(aliceFingerprint)); - bobForAlice.trust(bobFingerprint); - aliceForBob.trust(aliceFingerprint); + bobForAlice.trust(bobFingerprint); + aliceForBob.trust(aliceFingerprint); - assertTrue(bobForAlice.isTrusted(bobFingerprint)); - assertTrue(aliceForBob.isTrusted(aliceFingerprint)); + assertTrue(bobForAlice.isTrusted(bobFingerprint)); + assertTrue(aliceForBob.isTrusted(aliceFingerprint)); - aliceInstantMessaging.sendOxMessage(bobForAlice, body); + aliceInstantMessaging.sendOxMessage(bobForAlice, body); - bobReceivedMessage.waitForResult(timeout); + bobReceivedMessage.waitForResult(timeout); + } finally { + OpenPgpPubSubUtil.deletePublicKeyNode(alicePepManager, aliceFingerprint); + OpenPgpPubSubUtil.deletePubkeysListNode(alicePepManager); + OpenPgpPubSubUtil.deletePublicKeyNode(bobPepManager, bobFingerprint); + OpenPgpPubSubUtil.deletePubkeysListNode(bobPepManager); + } } }