@ -3,268 +3,300 @@ import foundation.pEp.pitytest.*;
import foundation.pEp.jniadapter.test.utils.* ;
import foundation.pEp.jniadapter.* ;
class RegTestContext extends AdapterBaseTestContext {
// enhance the context
import java.util.ArrayList ;
import java.util.Vector ;
import static foundation.pEp.pitytest.TestLogger.log ;
class CTXAlice extends AdapterBaseTestContext {
@Override
public CTXAlice init ( ) throws Throwable {
super . init ( ) ;
alice = engine . myself ( alice ) ;
return this ;
}
}
class CTXAlice2 extends CTXAlice {
@Override
public CTXAlice2 init ( ) throws Throwable {
super . init ( ) ;
engine . importKey ( keyBobSec ) ;
bob = engine . updateIdentity ( bob ) ;
return this ;
}
}
// Almost exact copy of JNI1118Context, we need a shared context hierarchy
class CTXReEvaluateMessageRating extends AdapterBaseTestContext {
public Message msgToBobEncrypted ;
public Message msgToBobDecrypted ;
public decrypt_message_Return msgToBobDecryptResult ;
@Override
public void init ( ) throws Throwable {
public CTXReEvaluateMessageRating init ( ) throws Throwable {
super . init ( ) ;
// init the enhancements
alice = engine . myself ( alice ) ;
engine . importKey ( keyBobPub ) ;
Vector < Identity > msgToBobRcpts = new Vector < > ( ) ;
msgToBobRcpts . add ( bob ) ;
msgToBob . setTo ( msgToBobRcpts ) ;
msgToBobEncrypted = engine . encrypt_message ( msgToBob , null , Message . EncFormat . PEP ) ;
msgToBobDecrypted = msgToBobEncrypted ;
msgToBobDecryptResult = engine . decrypt_message ( msgToBobDecrypted , new Vector < String > ( ) , 0 ) ;
if ( msgToBobEncrypted = = null ) {
throw new RuntimeException ( "Context failure, error decrypting message" ) ;
}
addRatingToOptFields ( msgToBobDecrypted , msgToBobDecryptResult . rating . getInternalStringValue ( ) ) ;
addRcptsToOptFields ( msgToBobDecrypted , Identity . toXKeyList ( msgToBobDecrypted . getTo ( ) ) ) ;
return this ;
}
public void addRatingToOptFields ( Message msg , String ratingStr ) {
ArrayList < Pair < String , String > > opts = msg . getOptFields ( ) ;
opts . add ( new Pair < String , String > ( "X-EncStatus" , ratingStr ) ) ;
msg . setOptFields ( opts ) ;
}
public void addRcptsToOptFields ( Message msg , String fprs ) {
ArrayList < Pair < String , String > > opts = msg . getOptFields ( ) ;
opts . add ( new Pair < String , String > ( "X-KeyList" , fprs ) ) ;
msg . setOptFields ( opts ) ;
}
}
class TestMain {
public static void main ( String [ ] args ) {
TestSuite . getDefault ( ) . setVerbose ( false ) ;
new TestUnit < RegTestContext > ( "Engine.myself" , new RegTestContext ( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.myself" , new AdapterBase TestContext( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.encrypt_message" , new RegTestContext ( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.encrypt_message" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . encrypt_message ( ctx . msgToBob , null , Message . EncFormat . PEP ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.encrypt_message_and_add_priv_key" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.encrypt_message_and_add_priv_key" , new CTXAlice ( ) , ctx - > {
ctx . engine . encrypt_message_and_add_priv_key ( ctx . msgToSelf , ctx . alice . fpr ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.encrypt_message_for_self" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.encrypt_message_for_self" , new CTXAlice ( ) , ctx - > {
ctx . engine . encrypt_message_for_self ( ctx . alice , ctx . msgToSelf , null ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.decrypt_message" , new Reg TestContext( ) , ctx - > {
ctx . engine . decrypt_message ( ctx . msgToSelf , ctx . vStr , 0 ) ;
new TestUnit < AdapterBase TestContext> ( "Engine.decrypt_message" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . decrypt_message ( ctx . msgToSelf , new Vector < String > ( ) , 0 ) ;
} ) ;
//TODO: Coredump
// new TestUnit<RegTestContext>("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);
// });
new TestUnit < CTXReEvaluateMessageRating > ( "Engine.re_evaluate_message_rating" , new CTXReEvaluateMessageRating ( ) , ctx - > {
ctx . engine . re_evaluate_message_rating ( ctx . msgToBobDecrypted ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.outgoing_message_rating" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBaseTestContext > ( "Engine.outgoing_message_rating" , new AdapterBaseTestContext ( ) , ctx - > {
ctx . engine . outgoing_message_rating ( ctx . msgToBob ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.outgoing_message_rating_preview" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.outgoing_message_rating_preview" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . outgoing_message_rating_preview ( ctx . msgToBob ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.get_identity" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.get_identity" , new CTXAlice ( ) , ctx - > {
ctx . engine . get_identity ( ctx . alice . address , ctx . alice . user_id ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.identity_rating" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.identity_rating" , new CTXAlice ( ) , ctx - > {
ctx . engine . identity_rating ( ctx . alice ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.blacklist_retrieve" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.blacklist_retrieve" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . blacklist_retrieve ( ) ;
} ) ;
//FAIL
new TestUnit < RegTestContext > ( "Engine.own_message_private_key_details" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
ctx . bob = ctx . engine . myself ( ctx . bob ) ;
ctx . engine . encrypt_message ( ctx . msgToBob , null , Message . EncFormat . PEP ) ;
ctx . engine . own_message_private_key_details ( ctx . msgToBob ) ;
} ) ;
// TODO: FAILS
// new TestUnit<CTXAlice2>("Engine.own_message_private_key_details", new CTXAlice2(), ctx -> {
// ctx.engine.own_message_private_key_details(ctx.msgToSelf);
// });
new TestUnit < Reg TestContext> ( "Engine.OpenPGP_list_keyinfo" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBaseTestContext > ( "Engine.OpenPGP_list_keyinfo" , new AdapterBaseTestContext ( ) , ctx - > {
ctx . engine . OpenPGP_list_keyinfo ( "" ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.set_identity_flags" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.set_identity_flags" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . set_identity_flags ( ctx . alice , 0 ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.unset_identity_flags" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.unset_identity_flags" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . unset_identity_flags ( ctx . alice , 0 ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.own_identities_retrieve" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.own_identities_retrieve" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . own_identities_retrieve ( ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.get_trustwords" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
ctx . bob = ctx . engine . myself ( ctx . bob ) ;
new TestUnit < CTXAlice2 > ( "Engine.get_trustwords" , new CTXAlice2 ( ) , ctx - > {
ctx . engine . get_trustwords ( ctx . alice , ctx . bob , "en" , false ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.get_trustwords_for_fprs" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
ctx . bob = ctx . engine . myself ( ctx . bob ) ;
new TestUnit < CTXAlice2 > ( "Engine.get_trustwords_for_fprs" , new CTXAlice2 ( ) , ctx - > {
ctx . engine . get_trustwords_for_fprs ( ctx . alice . fpr , ctx . bob . fpr , "en" , false ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.get_message_trustwords" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.get_message_trustwords" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . get_message_trustwords ( ctx . msgToBob , null , ctx . bob , "en" , false ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.get_languagelist" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.get_languagelist" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . get_languagelist ( ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.key_reset_trust" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.key_reset_trust" , new CTXAlice ( ) , ctx - > {
ctx . engine . key_reset_trust ( ctx . alice ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.key_reset_identity" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.key_reset_identity" , new CTXAlice ( ) , ctx - > {
ctx . engine . key_reset_identity ( ctx . alice , "" ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.key_reset_user" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.key_reset_user" , new CTXAlice ( ) , ctx - > {
ctx . engine . key_reset_user ( "fsdjugsh" , ctx . alice . fpr ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.key_reset_all_own_keys" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.key_reset_all_own_keys" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . key_reset_all_own_keys ( ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.deliverHandshakeResult" , new RegTestContext ( ) , ctx - > {
ctx . engine . deliverHandshakeResult ( SyncHandshakeResult . SyncHandshakeCancel , ctx . vID ) ;
} ) ;
// TODO: FAILS
// new TestUnit<AdapterBaseTestContext>("Engine.deliverHandshakeResult", new AdapterBaseTestContext(), ctx -> {
// ctx.engine.deliverHandshakeResult(SyncHandshakeResult.SyncHandshakeCancel, ctx.vID);
// });
// TODO: FAILS
// [17:51] < heck> | this one fails since: 4665:f067c9e95455
// [17:52] < heck> | i confirmed it still works in the parent revision 4662:71147c43e31b
// [17:52] < heck> | the error i get is:
// [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<RegTestContext>("Engine.leave_device_group", new RegTestContext(), ctx -> {
// new TestUnit<AdapterBaseTestContext>("Engine.leave_device_group", new AdapterBaseTestContext(), ctx -> {
// ctx.engine.startSync();
// ctx.engine.leave_device_group();
// });
new TestUnit < RegTestContext > ( "Engine.enable_identity_for_sync" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.enable_identity_for_sync" , new CTXAlice ( ) , ctx - > {
ctx . engine . enable_identity_for_sync ( ctx . alice ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.disable_identity_for_sync" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.disable_identity_for_sync" , new CTXAlice ( ) , ctx - > {
ctx . engine . disable_identity_for_sync ( ctx . alice ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.config_cipher_suite" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.config_cipher_suite" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . config_cipher_suite ( CipherSuite . pEpCipherSuiteDefault ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.trustwords" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.trustwords" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . trustwords ( ctx . alice ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.updateIdentity" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.updateIdentity" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . updateIdentity ( ctx . alice ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.setOwnKey" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.setOwnKey" , new CTXAlice ( ) , ctx - > {
ctx . engine . setOwnKey ( ctx . alice , ctx . alice . fpr ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.keyMistrusted" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.keyMistrusted" , new CTXAlice ( ) , ctx - > {
ctx . engine . keyMistrusted ( ctx . alice ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.keyResetTrust" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.keyResetTrust" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . keyResetTrust ( ctx . alice ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.trustPersonalKey" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.trustPersonalKey" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . trustPersonalKey ( ctx . alice ) ;
} ) ;
new TestUnit < RegTestContext > ( "Engine.trustOwnKey" , new RegTestContext ( ) , ctx - > {
ctx . alice = ctx . engine . myself ( ctx . alice ) ;
new TestUnit < CTXAlice > ( "Engine.trustOwnKey" , new CTXAlice ( ) , ctx - > {
ctx . engine . trustOwnKey ( ctx . alice ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.importKey" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.importKey" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . importKey ( ctx . keyBobPub ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.blacklist_add" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.blacklist_add" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . blacklist_add ( "43" ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.blacklist_delete" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.blacklist_delete" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . blacklist_delete ( "43" ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.blacklist_is_listed" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.blacklist_is_listed" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . blacklist_is_listed ( "43" ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.config_passive_mode" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.config_passive_mode" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . config_passive_mode ( false ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.config_unencrypted_subject" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.config_unencrypted_subject" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . config_unencrypted_subject ( false ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.getCrashdumpLog" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.getCrashdumpLog" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . getCrashdumpLog ( 0 ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.getUserDirectory" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.getUserDirectory" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . getUserDirectory ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.getMachineDirectory" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.getMachineDirectory" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . getMachineDirectory ( ) ;
} ) ;
// AbstractEngine.java
new TestUnit < Reg TestContext> ( "Engine.close" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.close" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . close ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.getVersion" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.getVersion" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . getVersion ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.getProtocolVersion" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.getProtocolVersion" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . getProtocolVersion ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.startKeyserverLookup" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.startKeyserverLookup" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . startKeyserverLookup ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.startSync" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.startSync" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . startSync ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.stopSync" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.stopSync" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . stopSync ( ) ;
} ) ;
new TestUnit < Reg TestContext> ( "Engine.isSyncRunning" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBase TestContext> ( "Engine.isSyncRunning" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . isSyncRunning ( ) ;
} ) ;
new TestUnit < AdapterBaseTestContext > ( "Engine.config_passphrase" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBaseTestContext > ( "Engine.config_passphrase" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . config_passphrase ( "SUPERCOMPLICATEDPASSPHRASE" ) ;
} ) ;
new TestUnit < AdapterBaseTestContext > ( "Engine.config_passphrase_for_new_keys" , new Reg TestContext( ) , ctx - > {
new TestUnit < AdapterBaseTestContext > ( "Engine.config_passphrase_for_new_keys" , new AdapterBase TestContext( ) , ctx - > {
ctx . engine . config_passphrase_for_new_keys ( true , "SUPERCOMPLICATEDPASSPHRASE" ) ;
} ) ;