From dac6add671b035e071ff1bbf7ecc1ac23886f6e6 Mon Sep 17 00:00:00 2001 From: heck Date: Wed, 20 May 2020 23:25:50 +0200 Subject: [PATCH] Migrate test "Basic" to using the test framework, being split into TestUnits using shared context --- .../pEp/jniadapter/test/basic/Makefile | 7 +- .../jniadapter/test/basic/SyncCallbacks.java | 26 -- .../pEp/jniadapter/test/basic/TestMain.java | 259 ++++++------------ 3 files changed, 96 insertions(+), 196 deletions(-) delete mode 100644 test/java/foundation/pEp/jniadapter/test/basic/SyncCallbacks.java diff --git a/test/java/foundation/pEp/jniadapter/test/basic/Makefile b/test/java/foundation/pEp/jniadapter/test/basic/Makefile index 1383458..2e41b02 100644 --- a/test/java/foundation/pEp/jniadapter/test/basic/Makefile +++ b/test/java/foundation/pEp/jniadapter/test/basic/Makefile @@ -4,9 +4,12 @@ include ../Makefile.conf TEST_UNIT_NAME=basic JAVA_CLASSES = \ - SyncCallbacks.class \ - TestMain.class + TestMain.class \ + ../utils/AdapterBaseTestContext.class \ + ../utils/AdapterTestUtils.class \ + ../utils/TestCallbacks.class +JAVA_CLASSES += $(JAVA_CLASSES_FRAMEWORK) .PHONY: compile run test clean diff --git a/test/java/foundation/pEp/jniadapter/test/basic/SyncCallbacks.java b/test/java/foundation/pEp/jniadapter/test/basic/SyncCallbacks.java deleted file mode 100644 index 6a9868b..0000000 --- a/test/java/foundation/pEp/jniadapter/test/basic/SyncCallbacks.java +++ /dev/null @@ -1,26 +0,0 @@ -package foundation.pEp.jniadapter.test.basic; -import foundation.pEp.jniadapter.*; - -class SyncCallbacks implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback { - public void messageToSend(Message message) - { - System.out.println("================================"); - System.out.println("Message to send called"); - System.out.println("From: " + message.getFrom()); - System.out.println("To: " + message.getTo()); - System.out.println("Subject: " + message.getShortmsg()); - System.out.println("Attachement[0]: " + message.getAttachments().get(0).toString()); - System.out.println("================================"); - } - - public void notifyHandshake(Identity myself, Identity partner, SyncHandshakeSignal signal) - { - System.out.println("================================"); - System.out.println("Notify handshake called"); - System.out.println("Myself: " + myself); - System.out.println("Partner: " + partner); - System.out.println("Signal: " + signal); - System.out.println("================================"); - } -} - diff --git a/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java b/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java index d326246..34153ea 100644 --- a/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java @@ -1,93 +1,48 @@ package foundation.pEp.jniadapter.test.basic; -import foundation.pEp.jniadapter.*; -import java.util.Vector; -import java.net.URL; -import java.net.URLClassLoader; -import java.lang.Thread; -import java.lang.InterruptedException; +import foundation.pEp.jniadapter.Blob; +import foundation.pEp.jniadapter.Engine; +import foundation.pEp.jniadapter.Identity; +import foundation.pEp.jniadapter.Message; +import foundation.pEp.jniadapter.test.framework.TestUnit; +import foundation.pEp.jniadapter.test.utils.AdapterBaseTestContext; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; +import java.util.Vector; -class TestMain { - public void printClassPath() { - ClassLoader cl = ClassLoader.getSystemClassLoader(); +import static foundation.pEp.jniadapter.test.framework.TestLogger.log; - URL[] urls = ((URLClassLoader)cl).getURLs(); +class BasicTestContext extends AdapterBaseTestContext { + Message enc; + Engine.decrypt_message_Return result; - for(URL url: urls){ - System.out.println(url.getFile()); - } + public BasicTestContext() { + setTestContextName("BasicTestContext"); } +} +class TestMain { public static void main(String[] args) { - Engine engine; - // load - try { - engine = new Engine(); - SyncCallbacks callbacks = new SyncCallbacks(); -// e.setNotifyHandshakeCallback(callbacks); - engine.setMessageToSendCallback(callbacks); - } - catch (pEpException ex) { - System.out.println("Cannot load"); - return; - } - System.out.println("Test loaded"); - - // Keygen - System.out.println("Generating keys: "); - Identity user = new Identity(); - user.user_id = "pEp_own_userId"; - user.me = true; - user.username = "Test User"; - user.address = "jniTestUser@peptest.ch"; - user = engine.myself(user); - System.out.print("Keys generated: "); - System.out.println(user.fpr); - - // Import key - try { - Path path = Paths.get("../resources/test_keys/pub/pep-test-alice-0x6FF00E97_pub.asc"); - byte[] key = Files.readAllBytes(path); - engine.importKey(key); - } catch (IOException exception) { - System.out.println("Could not import key"); - exception.printStackTrace(); - - } - // trustwords - Identity alice = new Identity(); - alice.fpr = "4ABE3AAF59AC32CFE4F86500A9411D176FF00E97"; - String t = engine.trustwords(alice); - System.out.print("Trustwords: "); - System.out.println(t); - - // message - Message msg = new Message(); - - msg.setFrom(user); - - Vector to = new Vector(); - Identity to1 = new Identity(); - to1.username = "pEp Test Alice (test key don't use)"; - to1.address = "pep.test.alice@pep-project.org"; - to1.user_id = "42"; - to.add(to1); - //to.add(user); - msg.setTo(to); - - msg.setShortmsg("hello, world"); - msg.setLongmsg("this is a test"); - msg.setDir(Message.Direction.Outgoing); - - // Test setAttachements() with nrAttachemnts - int nrAttachemnts = 3; - { - System.out.print("Adding " + nrAttachemnts + " attachements ["); + BasicTestContext btc = new BasicTestContext(); + + new TestUnit("Gen Keys", btc, ctx -> { + ctx.alice = ctx.engine.myself(ctx.alice); + log("Keys generated: " + ctx.alice.fpr); + }).run(); + + new TestUnit("Import key", btc, ctx -> { + ctx.engine.importKey(ctx.keyBobPub); + }).run(); + + new TestUnit("Trustwords", btc, ctx -> { + ctx.carol = new Identity(); + ctx.carol.fpr = "4ABE3AAF59AC32CFE4F86500A9411D176FF00E97"; + String t = ctx.engine.trustwords(ctx.carol); + log("Trustwords: " + t); + }).run(); + + new TestUnit("setAttachments", btc, ctx -> { + int nrAttachemnts = 3; + log("Adding " + nrAttachemnts + " attachments"); Vector attachments = new Vector<>(); for (int i = 0; i < nrAttachemnts; i++) { @@ -96,95 +51,63 @@ class TestMain { blb.data = dataString.getBytes(); blb.filename = "testfilename.txt"; attachments.add(blb); - System.out.print("."); } - msg.setAttachments(attachments); - System.out.println("]"); - } - - Message enc = null; - try { - enc = engine.encrypt_message(msg, null, Message.EncFormat.PEP); - System.out.println("encrypted"); - } - catch (pEpException ex) { - System.out.println("cannot encrypt"); - ex.printStackTrace(); - } - - System.out.println(enc.getLongmsg()); - - try { - System.out.println("Rating preview: " + engine.outgoing_message_rating_preview(msg)); - System.out.println("Rating" + engine.outgoing_message_rating(msg)); - } - catch (pEpException ex) { - System.out.println("cannot measure outgoing message rating"); - } - - Engine.decrypt_message_Return result = null; - try { - result = engine.decrypt_message(enc, new Vector<>(), 0); - System.out.println("decrypted"); - } - catch (pEpException ex) { - System.out.println("cannot decrypt"); - ex.printStackTrace(); - } - - - System.out.println(result.dst.getShortmsg()); - System.out.println(result.dst.getLongmsg()); - - // Test getAttachments() - { - Vector attachments = result.dst.getAttachments(); - - System.out.println("get attachement data"); - System.out.println("Attachement count: " + attachments.size()); - for( Blob a: attachments) { - System.out.println("Attachement nr: " + attachments.indexOf(a)); - System.out.println("["); - System.out.println(a.toString()); - System.out.println("]"); + ctx.msgToBob.setAttachments(attachments); + }).run(); + + new TestUnit("Encrypt", btc, ctx -> { + ctx.enc = ctx.engine.encrypt_message(ctx.msgToBob, null, Message.EncFormat.PEP); + log(ctx.enc.getLongmsg()); + }).run(); + + new TestUnit("Rating Preview", btc, ctx -> { + log("Rating preview: " + ctx.engine.outgoing_message_rating_preview(ctx.msgToBob)); + }).run(); + + new TestUnit("Rating", btc, ctx -> { + log("Rating" + ctx.engine.outgoing_message_rating(ctx.msgToBob)); + }).run(); + + new TestUnit("Decrypt", btc, ctx -> { + ctx.result = ctx.engine.decrypt_message(ctx.enc, new Vector<>(), 0); + log("decrypted"); + log(ctx.result.dst.getShortmsg()); + log(ctx.result.dst.getLongmsg()); + }).run(); + + new TestUnit("getAttachments", btc, ctx -> { + Vector attachments = ctx.result.dst.getAttachments(); + log("get attachement data"); + log("Attachement count: " + attachments.size()); + for (Blob a : attachments) { + log("Attachement nr: " + attachments.indexOf(a)); + log("["); + log(a.toString()); + log("]"); } - } - - System.out.println("TEST DONE - FINISHED"); - - try { - engine.key_reset_all_own_keys(); - } - catch (pEpException ex) { - System.out.println("cannot reset all own keys"); - ex.printStackTrace(); - } - - System.out.println("Testing.java: e.StartSync()"); - engine.startSync(); - - // Keygen - System.out.println("Generating keys: "); - Identity user2 = new Identity(); - user2.user_id = "pEp_own_userId"; - user2.me = true; - user2.username = "Test User 2"; - user2.address = "jniTestUser2@peptest.ch"; - user2 = engine.myself(user2); - System.out.print("Keys generated: "); - System.out.println(user2.fpr); - - // it's not necessary - you can just shutdown Sync and that's it - // but for this test give sync a chance to process all messages - try { - Thread.sleep(2000); - } - catch (InterruptedException ex) { } - - System.out.println("STOP SYNC"); - engine.stopSync(); - - System.exit(0); + }).run(); + + new TestUnit("key_reset_all_own_keys()", btc, ctx -> { + ctx.engine.key_reset_all_own_keys(); + }).run(); + + new TestUnit("startSync()", btc, ctx -> { + ctx.engine.startSync(); + }).run(); + + new TestUnit("Keygen2", btc, ctx -> { + Identity user2 = new Identity(); + user2.user_id = "pEp_own_userId"; + user2.me = true; + user2.username = "Test User 2"; + user2.address = "jniTestUser2@peptest.ch"; + user2 = ctx.engine.myself(user2); + log("Keys generated: " + user2.fpr); + }).run(); + + new TestUnit("stopSync()", btc, ctx -> { + ctx.engine.stopSync(); + }).run(); } }