Mercury-IM/domain/src/test/java/org/jivesoftware/smackx/ikey/element/IkeyElementTest.java

62 lines
2.9 KiB
Java
Raw Normal View History

package org.jivesoftware.smackx.ikey.element;
2020-09-06 21:41:38 +02:00
import org.jivesoftware.smack.parsing.SmackParsingException;
2020-09-25 12:58:27 +02:00
import org.jivesoftware.smack.util.PacketParserUtils;
2020-09-06 21:41:38 +02:00
import org.jivesoftware.smack.xml.XmlPullParserException;
2020-09-02 16:40:36 +02:00
import org.jivesoftware.smackx.ikey.mechanism.IkeyType;
2020-09-06 21:41:38 +02:00
import org.jivesoftware.smackx.ikey.provider.IkeyElementProvider;
2020-09-11 14:41:48 +02:00
import org.jivesoftware.smackx.util.MercurySmackTestSuite;
import org.junit.jupiter.api.Test;
import org.jxmpp.jid.EntityBareJid;
import org.jxmpp.jid.impl.JidCreate;
2020-09-06 21:41:38 +02:00
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
2020-09-02 16:40:36 +02:00
import java.util.Date;
2020-09-11 14:41:48 +02:00
import static org.junit.jupiter.api.Assertions.assertEquals;
2020-09-06 21:41:38 +02:00
public class IkeyElementTest extends MercurySmackTestSuite {
@Test
2020-09-06 21:41:38 +02:00
public void elementTest() throws URISyntaxException, XmlPullParserException, IOException, SmackParsingException {
IkeyType type = IkeyType.OX;
2020-09-02 16:40:36 +02:00
Date date = new Date();
SuperordinateElement superordinate = new SuperordinateElement("" +
"VGhpcyBpcyBvbmx5IGEgdGVzdCwgbm90IGEgcmVhbCBrZXkuIFdoeSB3b3VsZCB5b3UgdGhpbmsg" +
"dGhpcyBpcyBhIHJlYWwga2V5PyBCZWNhdXNlIGl0IGlzICdiYXNlNjQtZW5jcnlwdGVkJz8gRHVt" +
"bXkgZHVtYiBkdW1iLg==");
SubordinateListElement subordinates = buildSubListElement(
JidCreate.entityBareFromOrThrowUnchecked("hamlet@denmark.lit"),
2020-09-02 16:40:36 +02:00
date,
new SubordinateElement(
2020-10-24 19:25:28 +02:00
"urn:xmpp:openpgp:0",
new URI("xmpp:hamlet@denmark.lit?;node=urn:xmpp:openpgp:0:public-keys:1357B01865B2503C18453D208CAC2A9678548E35;item=2020-01-21T10:46:21Z"),
"1357B01865B2503C18453D208CAC2A9678548E35"),
new SubordinateElement(
2020-10-24 19:25:28 +02:00
"urn:xmpp:omemo:1",
new URI("xmpp:hamlet@denmark.lit?;node=urn:xmpp:omemo:1:bundles;item=123456"),
"e64dc9166dd34db64c9247bd502c5969e365a98f3aa41c87247d120487fdd32f")
);
ProofElement proof = new ProofElement("d2hpbGUgdGhpcyBpcyBub3QgYSB2YWxpZCBwcm9vZiwgaXQgaXMgc3VmZmljaWVudCBmb3IgdGVzdGluZy4=");
2020-09-25 12:58:27 +02:00
IkeyElement ikeyElement = new IkeyElement(type, superordinate, new SignedElement(subordinates), proof);
2020-09-06 21:41:38 +02:00
String xml = ikeyElement.toXML().toString();
2020-09-11 14:41:48 +02:00
System.out.println(xml);
2020-09-25 22:18:42 +02:00
System.out.println(subordinates.toXML().toString());
2020-09-06 21:41:38 +02:00
2020-09-25 12:58:27 +02:00
IkeyElement parsed = IkeyElementProvider.INSTANCE.parse(PacketParserUtils.getParserFor(xml));
2020-09-06 21:41:38 +02:00
assertEquals(ikeyElement, parsed);
2020-09-25 12:58:27 +02:00
assertEquals(subordinates, parsed.getSignedElement().getChildElement());
}
2020-09-11 14:41:48 +02:00
private static SubordinateListElement buildSubListElement(EntityBareJid jid, Date date, SubordinateElement... subordinateElements) {
2020-09-02 16:40:36 +02:00
return new SubordinateListElement(jid, date, Arrays.asList(subordinateElements));
}
2020-09-11 14:41:48 +02:00
}