|
|
@ -1,4 +1,5 @@ |
|
|
|
package foundation.pEp.jniadapter.test.utils; |
|
|
|
|
|
|
|
import foundation.pEp.jniadapter.*; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
@ -17,7 +18,7 @@ public class TestUtils { |
|
|
|
|
|
|
|
public static String identityToString(Identity i, Boolean full) { |
|
|
|
String ret = ""; |
|
|
|
if(full) { |
|
|
|
if (full) { |
|
|
|
ret += "address: " + i.address + "\n"; |
|
|
|
ret += "fpr: " + i.fpr + "\n"; |
|
|
|
ret += "username: " + i.username + "\n"; |
|
|
@ -33,141 +34,169 @@ public class TestUtils { |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
public static String msgToString(Message msg) { |
|
|
|
public static String msgToString(Message msg, boolean full) { |
|
|
|
String ret = ""; |
|
|
|
ret += "getAttachments: "; |
|
|
|
ArrayList<Pair<String, String>> kvs = new ArrayList<>(); |
|
|
|
String key = ""; |
|
|
|
String value = ""; |
|
|
|
|
|
|
|
key = "getAttachments"; |
|
|
|
try { |
|
|
|
ret += blobListToString(msg.getAttachments()) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = blobListToString(msg.getAttachments(), full) + "\n"; |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "Id: "; |
|
|
|
key = "Id"; |
|
|
|
try { |
|
|
|
ret += msg.getId() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getId(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getDir: "; |
|
|
|
key = "getDir"; |
|
|
|
try { |
|
|
|
ret += msg.getDir().toString() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getDir().toString(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getShortmsg: "; |
|
|
|
key = "getShortmsg"; |
|
|
|
try { |
|
|
|
ret += msg.getShortmsg() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getShortmsg(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getLongmsg: "; |
|
|
|
key = "getLongmsg"; |
|
|
|
try { |
|
|
|
ret += msg.getLongmsg() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getLongmsg(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getLongmsgFormatted: "; |
|
|
|
key = "getLongmsgFormatted"; |
|
|
|
try { |
|
|
|
ret += msg.getLongmsgFormatted() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getLongmsgFormatted(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getFrom: "; |
|
|
|
key = "getFrom"; |
|
|
|
try { |
|
|
|
ret += identityToString(msg.getFrom(), false) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = identityToString(msg.getFrom(), full); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getTo: "; |
|
|
|
key = "getTo"; |
|
|
|
try { |
|
|
|
ret += identityListToString(msg.getTo(), false) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = identityListToString(msg.getTo(), full); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getRecvBy: "; |
|
|
|
key = "getRecvBy"; |
|
|
|
try { |
|
|
|
ret += identityToString(msg.getRecvBy(), false) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = identityToString(msg.getRecvBy(), full); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getCc: "; |
|
|
|
key = "getCc"; |
|
|
|
try { |
|
|
|
ret += identityListToString(msg.getCc(), false)+ "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = identityListToString(msg.getCc(), full) + "\n"; |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getBcc: "; |
|
|
|
key = "getBcc"; |
|
|
|
try { |
|
|
|
ret += identityListToString(msg.getBcc(), false) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = identityListToString(msg.getBcc(), full); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getReplyTo: "; |
|
|
|
key = "getReplyTo"; |
|
|
|
try { |
|
|
|
ret += identityListToString(msg.getReplyTo(), false) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = identityListToString(msg.getReplyTo(), full); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getInReplyTo: "; |
|
|
|
key = "getInReplyTo"; |
|
|
|
try { |
|
|
|
ret += stringVectorToString(msg.getInReplyTo()) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = stringVectorToString(msg.getInReplyTo()); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getReferences: "; |
|
|
|
key = "getReferences"; |
|
|
|
try { |
|
|
|
ret += stringVectorToString(msg.getReferences()) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = stringVectorToString(msg.getReferences()); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getKeywords: "; |
|
|
|
key = "getKeywords"; |
|
|
|
try { |
|
|
|
ret += stringVectorToString(msg.getKeywords()) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = stringVectorToString(msg.getKeywords()); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getComments: "; |
|
|
|
key = "getComments"; |
|
|
|
try { |
|
|
|
ret += msg.getComments() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getComments(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getOptFields: "; |
|
|
|
key = "getOptFields"; |
|
|
|
try { |
|
|
|
ret += stringPairListToString(msg.getOptFields()) + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = stringPairListToString(msg.getOptFields()); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<>(key, value)); |
|
|
|
|
|
|
|
ret += "getEncFormat: "; |
|
|
|
key = "getEncFormat"; |
|
|
|
try { |
|
|
|
ret += msg.getEncFormat().toString() + "\n"; |
|
|
|
} catch(Throwable e) { |
|
|
|
ret += e.toString() + "\n"; |
|
|
|
value = msg.getEncFormat().toString(); |
|
|
|
} catch (Throwable e) { |
|
|
|
value = e.toString(); |
|
|
|
} |
|
|
|
kvs.add(new Pair<String,String>(key, value)); |
|
|
|
|
|
|
|
if (!full) { |
|
|
|
kvs = clipStrings(kvs, 200); |
|
|
|
} |
|
|
|
|
|
|
|
ret = stringPairListToString(kvs); |
|
|
|
|
|
|
|
ret = ret.trim(); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
public static String stringVectorToString(Vector<String> vS) { |
|
|
|
String ret = ""; |
|
|
|
for (String s : vS){ |
|
|
|
for (String s : vS) { |
|
|
|
ret += s + "\n"; |
|
|
|
} |
|
|
|
ret = ret.trim(); |
|
|
@ -176,34 +205,88 @@ public class TestUtils { |
|
|
|
|
|
|
|
public static String identityListToString(Vector<Identity> vI, Boolean full) { |
|
|
|
String ret = ""; |
|
|
|
for(Identity i : vI) { |
|
|
|
for (Identity i : vI) { |
|
|
|
ret += identityToString(i, full) + "\n"; |
|
|
|
} |
|
|
|
ret = ret.trim(); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
public static String stringPairListToString(ArrayList<Pair<String, String>> opts) { |
|
|
|
String ret = ""; |
|
|
|
for(Pair<String, String> el : opts) { |
|
|
|
ret += el.first + "=" + el.second + "\n"; |
|
|
|
}; |
|
|
|
public static String stringPairListToString(ArrayList<Pair<String, String>> spl) { |
|
|
|
String ret = "Invalid List: null object\n"; |
|
|
|
if (spl != null) { |
|
|
|
ret = ""; |
|
|
|
for (Pair<String, String> el : spl) { |
|
|
|
String item = "Invalid StringPair: null object\n"; |
|
|
|
if (el != null) { |
|
|
|
item = ""; |
|
|
|
String k = "Invalid String: null object"; |
|
|
|
String v = "Invalid String: null object"; |
|
|
|
if (el.first != null) { |
|
|
|
k = el.first; |
|
|
|
} |
|
|
|
if (el.second != null) { |
|
|
|
v = el.second; |
|
|
|
} |
|
|
|
|
|
|
|
String delimBegin = "'"; |
|
|
|
String delimEnd = "'"; |
|
|
|
String indent = ""; |
|
|
|
if (v.contains("\n") || (v.length() > 200)) { |
|
|
|
delimBegin = " {\n"; |
|
|
|
delimEnd = "\n}"; |
|
|
|
delimEnd = String.format("%-100s", delimEnd); |
|
|
|
indent = String.format("%4s", " "); |
|
|
|
v = v.replace("\n", "\n" + indent); |
|
|
|
} |
|
|
|
|
|
|
|
item = k + " = " + delimBegin + indent + v + delimEnd + "\n"; |
|
|
|
} |
|
|
|
ret += item; |
|
|
|
} |
|
|
|
} |
|
|
|
ret = ret.trim(); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
public static String blobListToString(Vector<Blob> attachments) { |
|
|
|
public static String blobListToString(Vector<Blob> attachments, boolean full) { |
|
|
|
String ret = ""; |
|
|
|
ret += "Attachments count: " + attachments.size() + "\n"; |
|
|
|
for( Blob a: attachments) { |
|
|
|
for (Blob a : attachments) { |
|
|
|
ret += "-----BEGIN Attachment index: " + attachments.indexOf(a) + "-----\n"; |
|
|
|
ret += a.toString(); |
|
|
|
String tmp = a.toString(); |
|
|
|
if (!full) { |
|
|
|
tmp = clipString(tmp, 250); |
|
|
|
} |
|
|
|
ret += tmp + "\n"; |
|
|
|
ret += "-----END Attachment index: " + attachments.indexOf(a) + "-----\n"; |
|
|
|
} |
|
|
|
ret = ret.trim(); |
|
|
|
return ret; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
public static String clipString(String str, int len) { |
|
|
|
String ret = str; |
|
|
|
if (str.length() > len) { |
|
|
|
ret = str.substring(0, len); |
|
|
|
ret += " clipped... "; |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
public static ArrayList<Pair<String,String>> clipStrings(ArrayList<Pair<String,String>> spv, int len) { |
|
|
|
for (Pair<String,String> p : spv) { |
|
|
|
if(p != null) { |
|
|
|
if(p.first != null) { |
|
|
|
p.first = clipString(p.first, len); |
|
|
|
} |
|
|
|
if(p.second != null) { |
|
|
|
p.second = clipString(p.second, len); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return spv; |
|
|
|
} |
|
|
|
// ------------------------ Logging ------------------------
|
|
|
|
|
|
|
|
private static boolean logEnabled = true; |
|
|
@ -217,7 +300,7 @@ public class TestUtils { |
|
|
|
} |
|
|
|
|
|
|
|
public static void log(String msg) { |
|
|
|
if(logEnabled) { |
|
|
|
if (logEnabled) { |
|
|
|
String threadNameFmt = String.format("%-10s", Thread.currentThread().getName()); |
|
|
|
String msgOut = threadNameFmt + ": " + msg; |
|
|
|
System.out.println(msgOut); |
|
|
@ -225,11 +308,11 @@ public class TestUtils { |
|
|
|
} |
|
|
|
|
|
|
|
public static void logH1(String msg) { |
|
|
|
log( getDecoratedString(msg, "=")); |
|
|
|
log(getDecoratedString(msg, "=")); |
|
|
|
} |
|
|
|
|
|
|
|
public static void logH2(String msg) { |
|
|
|
log( getDecoratedString(msg, "-")); |
|
|
|
log(getDecoratedString(msg, "-")); |
|
|
|
} |
|
|
|
|
|
|
|
private static String getDecoratedString(String msg, String s) { |
|
|
|