diff --git a/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java b/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java index df44d03..1926ca9 100644 --- a/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/basic/TestMain.java @@ -28,7 +28,6 @@ class TestMain { // load try { engine = new Engine(); - SyncCallbacks c = new SyncCallbacks(); SyncCallbacks callbacks = new SyncCallbacks(); // e.setNotifyHandshakeCallback(callbacks); engine.setMessageToSendCallback(callbacks); @@ -171,7 +170,7 @@ class TestMain { user2.me = true; user2.username = "Test User 2"; user2.address = "jniTestUser2@peptest.ch"; -// user2 = e.myself(user2); + user2 = engine.myself(user2); System.out.print("Keys generated: "); System.out.println(user2.fpr); diff --git a/test/java/foundation/pEp/jniadapter/test/framework/TestContext.java b/test/java/foundation/pEp/jniadapter/test/framework/TestContext.java index 6ae9775..63a9e37 100644 --- a/test/java/foundation/pEp/jniadapter/test/framework/TestContext.java +++ b/test/java/foundation/pEp/jniadapter/test/framework/TestContext.java @@ -9,21 +9,30 @@ import java.util.Vector; public class TestContext { public Sync.DefaultCallback cb = new Sync.DefaultCallback(); - public Identity alice = new Identity(); - public Identity bob = new Identity(); + public Identity alice; + public Identity bob; public Message msgToSelf; public Message msgToBob; - public Vector vID = new Vector(); - public Vector vStr = new Vector(); + public Vector vID; + public Vector vStr; public byte[] key; private String fileName = "../resources/test_keys/pub/pep-test-alice-0x6FF00E97_pub.asc"; - public Engine engine = new Engine(); + public Engine engine; - public TestContext() throws Exception { + public TestContext() { } + + public void init() throws Exception { + vID = new Vector(); + vStr = new Vector(); + + engine = new Engine(); + + alice = new Identity(); alice.user_id = "23"; alice.address = "alice@peptest.org"; alice.me = true; + bob = new Identity(); bob.user_id = "42"; bob.address = "bob@peptest.org"; diff --git a/test/java/foundation/pEp/jniadapter/test/framework/TestUnit.java b/test/java/foundation/pEp/jniadapter/test/framework/TestUnit.java index 883707d..607ff51 100644 --- a/test/java/foundation/pEp/jniadapter/test/framework/TestUnit.java +++ b/test/java/foundation/pEp/jniadapter/test/framework/TestUnit.java @@ -3,12 +3,12 @@ import foundation.pEp.jniadapter.test.utils.TestUtils; import java.util.function.Consumer; -public class TestUnit { +public class TestUnit implements Runnable { String testUnitName = "default test unit"; - TestContext ctx; - Consumer lambda; + T ctx; + Consumer lambda; - public TestUnit(String name, TestContext c, Consumer consumer) throws Exception { + public TestUnit(String name, T c, Consumer consumer) { testUnitName = name; lambda = consumer; ctx = c; @@ -17,6 +17,7 @@ public class TestUnit { public void run() { TestUtils.logH1(testUnitName); try { + ctx.init(); lambda.accept(ctx); } catch (Throwable e) { TestUtils.logH1("TestUnit FAILED: " + e.toString()); diff --git a/test/java/foundation/pEp/jniadapter/test/regression/TestMain.java b/test/java/foundation/pEp/jniadapter/test/regression/TestMain.java index 50323f0..d9ec2cd 100644 --- a/test/java/foundation/pEp/jniadapter/test/regression/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/regression/TestMain.java @@ -2,62 +2,72 @@ package foundation.pEp.jniadapter.test.regression; import foundation.pEp.jniadapter.test.framework.*; import foundation.pEp.jniadapter.*; +class RegTestContext extends TestContext { + // enhance the context + + @Override + public void init() throws Exception { + super.init(); + // init the enhancements + } +} + class TestMain { public static void main(String[] args) throws Exception { - new TestUnit("Engine.myself", new TestContext(), ctx -> { + new TestUnit("Engine.myself", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); }).run(); - new TestUnit("Engine.encrypt_message", new TestContext(), ctx -> { + new TestUnit("Engine.encrypt_message", new RegTestContext(), ctx -> { ctx.engine.encrypt_message(ctx.msgToBob, null, Message.EncFormat.PEP); }).run(); - new TestUnit("Engine.encrypt_message_and_add_priv_key", new TestContext(), ctx -> { + new TestUnit("Engine.encrypt_message_and_add_priv_key", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.encrypt_message_and_add_priv_key(ctx.msgToSelf, ctx.alice.fpr); }).run(); - new TestUnit("Engine.encrypt_message_for_self", new TestContext(), ctx -> { + new TestUnit("Engine.encrypt_message_for_self", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.encrypt_message_for_self(ctx.alice, ctx.msgToSelf, null); }).run(); - new TestUnit("Engine.decrypt_message", new TestContext(), ctx -> { + new TestUnit("Engine.decrypt_message", new RegTestContext(), ctx -> { ctx.engine.decrypt_message(ctx.msgToSelf, ctx.vStr, 0); }).run(); //TODO: Coredump -// new TestUnit("Engine.re_evaluate_message_rating", new TestContext(), ctx -> { +// new TestUnit("Engine.re_evaluate_message_rating", new RegTestContext(), ctx -> { // ctx.alice = ctx.engine.myself(ctx.alice); // ctx.bob = ctx.engine.myself(ctx.bob); // Message msg = ctx.engine.encrypt_message(ctx.msgToBob,null, Message.EncFormat.PEP); // ctx.engine.re_evaluate_message_rating(msg); // }).run(); - new TestUnit("Engine.outgoing_message_rating", new TestContext(), ctx -> { + new TestUnit("Engine.outgoing_message_rating", new RegTestContext(), ctx -> { ctx.engine.outgoing_message_rating(ctx.msgToBob); }).run(); - new TestUnit("Engine.outgoing_message_rating_preview", new TestContext(), ctx -> { + new TestUnit("Engine.outgoing_message_rating_preview", new RegTestContext(), ctx -> { ctx.engine.outgoing_message_rating_preview(ctx.msgToBob); }).run(); - new TestUnit("Engine.get_identity", new TestContext(), ctx -> { + new TestUnit("Engine.get_identity", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.get_identity(ctx.alice.address, ctx.alice.user_id); }).run(); - new TestUnit("Engine.identity_rating", new TestContext(), ctx -> { + new TestUnit("Engine.identity_rating", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.identity_rating(ctx.alice); }).run(); - new TestUnit("Engine.blacklist_retrieve", new TestContext(), ctx -> { + new TestUnit("Engine.blacklist_retrieve", new RegTestContext(), ctx -> { ctx.engine.blacklist_retrieve(); }).run(); //FAIL - new TestUnit("Engine.own_message_private_key_details", new TestContext(), ctx -> { + new TestUnit("Engine.own_message_private_key_details", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.bob = ctx.engine.myself(ctx.bob); @@ -65,63 +75,63 @@ class TestMain { ctx.engine.own_message_private_key_details(ctx.msgToBob); }).run(); - new TestUnit("Engine.OpenPGP_list_keyinfo", new TestContext(), ctx -> { + new TestUnit("Engine.OpenPGP_list_keyinfo", new RegTestContext(), ctx -> { ctx.engine.OpenPGP_list_keyinfo(""); }).run(); - new TestUnit("Engine.set_identity_flags", new TestContext(), ctx -> { + new TestUnit("Engine.set_identity_flags", new RegTestContext(), ctx -> { ctx.engine.set_identity_flags(ctx.alice, 0); }).run(); - new TestUnit("Engine.unset_identity_flags", new TestContext(), ctx -> { + new TestUnit("Engine.unset_identity_flags", new RegTestContext(), ctx -> { ctx.engine.unset_identity_flags(ctx.alice, 0); }).run(); - new TestUnit("Engine.own_identities_retrieve", new TestContext(), ctx -> { + new TestUnit("Engine.own_identities_retrieve", new RegTestContext(), ctx -> { ctx.engine.own_identities_retrieve(); }).run(); - new TestUnit("Engine.get_trustwords", new TestContext(), ctx -> { + new TestUnit("Engine.get_trustwords", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.bob = ctx.engine.myself(ctx.bob); ctx.engine.get_trustwords(ctx.alice, ctx.bob, "en", false); }).run(); - new TestUnit("Engine.get_trustwords_for_fprs", new TestContext(), ctx -> { + new TestUnit("Engine.get_trustwords_for_fprs", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.bob = ctx.engine.myself(ctx.bob); ctx.engine.get_trustwords_for_fprs(ctx.alice.fpr, ctx.bob.fpr, "en", false); }).run(); - new TestUnit("Engine.get_message_trustwords", new TestContext(), ctx -> { + new TestUnit("Engine.get_message_trustwords", new RegTestContext(), ctx -> { ctx.engine.get_message_trustwords(ctx.msgToBob, null, ctx.bob, "en", false); }).run(); - new TestUnit("Engine.get_languagelist", new TestContext(), ctx -> { + new TestUnit("Engine.get_languagelist", new RegTestContext(), ctx -> { ctx.engine.get_languagelist(); }).run(); - new TestUnit("Engine.key_reset_trust", new TestContext(), ctx -> { + new TestUnit("Engine.key_reset_trust", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.key_reset_trust(ctx.alice); }).run(); - new TestUnit("Engine.key_reset_identity", new TestContext(), ctx -> { + new TestUnit("Engine.key_reset_identity", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.key_reset_identity(ctx.alice, ""); }).run(); - new TestUnit("Engine.key_reset_user", new TestContext(), ctx -> { + new TestUnit("Engine.key_reset_user", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.key_reset_user("fsdjugsh", ctx.alice.fpr); }).run(); - new TestUnit("Engine.key_reset_all_own_keys", new TestContext(), ctx -> { + new TestUnit("Engine.key_reset_all_own_keys", new RegTestContext(), ctx -> { ctx.engine.key_reset_all_own_keys(); }).run(); - new TestUnit("Engine.deliverHandshakeResult", new TestContext(), ctx -> { + new TestUnit("Engine.deliverHandshakeResult", new RegTestContext(), ctx -> { ctx.engine.deliverHandshakeResult(SyncHandshakeResult.SyncHandshakeCancel, ctx.vID); }).run(); @@ -132,119 +142,119 @@ class TestMain { //[17:53] < heck> | *** send message KeySync Beacon service KeySync_fsm.c:234 //[17:53] < heck> | Assertion failed: (msg->from && msg->from->fpr), function attach_own_key, file message_api.c, line 1581. -// new TestUnit("Engine.leave_device_group", new TestContext(), ctx -> { +// new TestUnit("Engine.leave_device_group", new RegTestContext(), ctx -> { // ctx.engine.startSync(); // ctx.engine.leave_device_group(); // }).run(); - new TestUnit("Engine.enable_identity_for_sync", new TestContext(), ctx -> { + new TestUnit("Engine.enable_identity_for_sync", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.enable_identity_for_sync(ctx.alice); }).run(); - new TestUnit("Engine.disable_identity_for_sync", new TestContext(), ctx -> { + new TestUnit("Engine.disable_identity_for_sync", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.disable_identity_for_sync(ctx.alice); }).run(); // TODO: class not found: foundation/pEp/jniadapter/Message$CipherSuite -// new TestUnit("Engine.config_cipher_suite", new TestContext(), ctx -> { +// new TestUnit("Engine.config_cipher_suite", new RegTestContext(), ctx -> { // ctx.engine.config_cipher_suite(CipherSuite.pEpCipherSuiteDefault); // }).run(); - new TestUnit("Engine.trustwords", new TestContext(), ctx -> { + new TestUnit("Engine.trustwords", new RegTestContext(), ctx -> { ctx.engine.trustwords(ctx.alice); }).run(); - new TestUnit("Engine.updateIdentity", new TestContext(), ctx -> { + new TestUnit("Engine.updateIdentity", new RegTestContext(), ctx -> { ctx.engine.updateIdentity(ctx.alice); }).run(); - new TestUnit("Engine.setOwnKey", new TestContext(), ctx -> { + new TestUnit("Engine.setOwnKey", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.setOwnKey(ctx.alice, ctx.alice.fpr); }).run(); - new TestUnit("Engine.keyMistrusted", new TestContext(), ctx -> { + new TestUnit("Engine.keyMistrusted", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.keyMistrusted(ctx.alice); }).run(); - new TestUnit("Engine.keyResetTrust", new TestContext(), ctx -> { + new TestUnit("Engine.keyResetTrust", new RegTestContext(), ctx -> { ctx.engine.keyResetTrust(ctx.alice); }).run(); - new TestUnit("Engine.trustPersonalKey", new TestContext(), ctx -> { + new TestUnit("Engine.trustPersonalKey", new RegTestContext(), ctx -> { ctx.engine.trustPersonalKey(ctx.alice); }).run(); - new TestUnit("Engine.trustOwnKey", new TestContext(), ctx -> { + new TestUnit("Engine.trustOwnKey", new RegTestContext(), ctx -> { ctx.alice = ctx.engine.myself(ctx.alice); ctx.engine.trustOwnKey(ctx.alice); }).run(); - new TestUnit("Engine.importKey", new TestContext(), ctx -> { + new TestUnit("Engine.importKey", new RegTestContext(), ctx -> { ctx.engine.importKey(ctx.key); }).run(); - new TestUnit("Engine.blacklist_add", new TestContext(), ctx -> { + new TestUnit("Engine.blacklist_add", new RegTestContext(), ctx -> { ctx.engine.blacklist_add("43"); }).run(); - new TestUnit("Engine.blacklist_delete", new TestContext(), ctx -> { + new TestUnit("Engine.blacklist_delete", new RegTestContext(), ctx -> { ctx.engine.blacklist_delete("43"); }).run(); - new TestUnit("Engine.blacklist_is_listed", new TestContext(), ctx -> { + new TestUnit("Engine.blacklist_is_listed", new RegTestContext(), ctx -> { ctx.engine.blacklist_is_listed("43"); }).run(); - new TestUnit("Engine.config_passive_mode", new TestContext(), ctx -> { + new TestUnit("Engine.config_passive_mode", new RegTestContext(), ctx -> { ctx.engine.config_passive_mode(false); }).run(); - new TestUnit("Engine.config_unencrypted_subject", new TestContext(), ctx -> { + new TestUnit("Engine.config_unencrypted_subject", new RegTestContext(), ctx -> { ctx.engine.config_unencrypted_subject(false); }).run(); - new TestUnit("Engine.getCrashdumpLog", new TestContext(), ctx -> { + new TestUnit("Engine.getCrashdumpLog", new RegTestContext(), ctx -> { ctx.engine.getCrashdumpLog(0); }).run(); - new TestUnit("Engine.getUserDirectory", new TestContext(), ctx -> { + new TestUnit("Engine.getUserDirectory", new RegTestContext(), ctx -> { ctx.engine.getUserDirectory(); }).run(); - new TestUnit("Engine.getMachineDirectory", new TestContext(), ctx -> { + new TestUnit("Engine.getMachineDirectory", new RegTestContext(), ctx -> { ctx.engine.getMachineDirectory(); }).run(); // AbstractEngine.java - new TestUnit("Engine.close", new TestContext(), ctx -> { + new TestUnit("Engine.close", new RegTestContext(), ctx -> { ctx.engine.close(); }).run(); - new TestUnit("Engine.getVersion", new TestContext(), ctx -> { + new TestUnit("Engine.getVersion", new RegTestContext(), ctx -> { ctx.engine.getVersion(); }).run(); - new TestUnit("Engine.getProtocolVersion", new TestContext(), ctx -> { + new TestUnit("Engine.getProtocolVersion", new RegTestContext(), ctx -> { ctx.engine.getProtocolVersion(); }).run(); - new TestUnit("Engine.startKeyserverLookup", new TestContext(), ctx -> { + new TestUnit("Engine.startKeyserverLookup", new RegTestContext(), ctx -> { ctx.engine.startKeyserverLookup(); }).run(); - new TestUnit("Engine.startSync", new TestContext(), ctx -> { + new TestUnit("Engine.startSync", new RegTestContext(), ctx -> { ctx.engine.startSync(); }).run(); - new TestUnit("Engine.stopSync", new TestContext(), ctx -> { + new TestUnit("Engine.stopSync", new RegTestContext(), ctx -> { ctx.engine.stopSync(); }).run(); - new TestUnit("Engine.isSyncRunning", new TestContext(), ctx -> { + new TestUnit("Engine.isSyncRunning", new RegTestContext(), ctx -> { ctx.engine.isSyncRunning(); }).run(); } diff --git a/test/java/foundation/pEp/jniadapter/test/template/TestMain.java b/test/java/foundation/pEp/jniadapter/test/template/TestMain.java index d0e4fe1..e3b9348 100644 --- a/test/java/foundation/pEp/jniadapter/test/template/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/template/TestMain.java @@ -5,8 +5,15 @@ import foundation.pEp.jniadapter.*; class TestMain { public static void main(String[] args) throws Exception { - new TestUnit("Engine.myself",new TestContext() , ctx -> { + new TestUnit("Test Template",new TestContext() , ctx -> { + // do stuff using the context + // Test FAILS on unhandled exception, otherwise SUCCESS + ctx.alice = ctx.engine.myself(ctx.alice); + + if(ctx.alice.fpr == null) { + throw new RuntimeException(); + } }).run(); } } diff --git a/test/java/foundation/pEp/jniadapter/test/utils/TestCallbacks.java b/test/java/foundation/pEp/jniadapter/test/utils/TestCallbacks.java new file mode 100644 index 0000000..96bd7da --- /dev/null +++ b/test/java/foundation/pEp/jniadapter/test/utils/TestCallbacks.java @@ -0,0 +1,21 @@ +package foundation.pEp.jniadapter.test.utils; +import foundation.pEp.jniadapter.*; + +public class TestCallbacks implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback { + public void messageToSend(Message message) { + TestUtils.logH1("Message to send called"); + TestUtils.log("From: " + message.getFrom()); + TestUtils.log("To: " + message.getTo()); + TestUtils.log("Subject: " + message.getShortmsg()); + TestUtils.log("Attachement[0]: " + message.getAttachments().get(0).toString()); + } + + public void notifyHandshake(Identity myself, Identity partner, SyncHandshakeSignal signal) { + TestUtils.logH1("Notify handshake called"); + TestUtils.log("myself: " + TestUtils.identityToString(myself, false)); + TestUtils.log("Partner: " + TestUtils.identityToString(partner, false)); + TestUtils.log("Signal: " + signal); + } +} + +