diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/ChecksumTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/ChecksumTest.java new file mode 100644 index 000000000..c3f20c941 --- /dev/null +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/ChecksumTest.java @@ -0,0 +1,34 @@ +package org.jivesoftware.smackx.jingle_filetransfer; + +import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; + +import org.jivesoftware.smack.test.util.SmackTestSuite; +import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smackx.hashes.HashManager; +import org.jivesoftware.smackx.hashes.element.HashElement; +import org.jivesoftware.smackx.jingle.element.JingleContent; +import org.jivesoftware.smackx.jingle_filetransfer.element.Checksum; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChild; +import org.jivesoftware.smackx.jingle_filetransfer.provider.ChecksumProvider; + +import org.junit.Test; + +/** + * Created by vanitas on 12.07.17. + */ +public class ChecksumTest extends SmackTestSuite { + + @Test + public void parserTest() throws Exception { + HashElement hash = new HashElement(HashManager.ALGORITHM.SHA_256, "f4OxZX/x/FO5LcGBSKHWXfwtSx+j1ncoSt3SABJtkGk="); + JingleFileTransferChild file = new JingleFileTransferChild(null, null, hash, null, null, -1, null); + Checksum checksum = new Checksum(JingleContent.Creator.initiator, "name", file); + + String xml = "" + + file.toXML().toString() + + ""; + + assertXMLEqual(xml, checksum.toXML().toString()); + assertXMLEqual(xml, new ChecksumProvider().parse(TestUtils.getParser(xml)).toXML().toString()); + } +} diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleUtilFileTransferTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleUtilFileTransferTest.java index ec6f7b0a7..346884b04 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleUtilFileTransferTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleUtilFileTransferTest.java @@ -4,13 +4,13 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; -import java.io.IOException; import java.util.Collections; import java.util.Date; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.test.util.SmackTestSuite; +import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smackx.hashes.HashManager; import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.jingle.JingleManager; @@ -23,6 +23,7 @@ import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildEleme import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport; import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransfer; import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChild; +import org.jivesoftware.smackx.jingle_filetransfer.provider.JingleFileTransferProvider; import org.junit.Before; import org.junit.Test; @@ -30,7 +31,6 @@ import org.jxmpp.jid.FullJid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.stringprep.XmppStringprepException; import org.jxmpp.util.XmppDateTime; -import org.xml.sax.SAXException; /** * Created by vanitas on 12.07.17. @@ -55,11 +55,11 @@ public class JingleUtilFileTransferTest extends SmackTestSuite { } @Test - public void createSessionInitiateTest() throws IOException, SAXException { + public void createSessionInitiateTest() throws Exception { JingleIBBTransport transport = new JingleIBBTransport("transid"); Date date = new Date(); HashElement hash = new HashElement(HashManager.ALGORITHM.SHA_256, "f4OxZX/x/FO5LcGBSKHWXfwtSx+j1ncoSt3SABJtkGk="); - JingleFileTransferChild file = new JingleFileTransferChild(date, "desc", hash, "application/octet-string", "name", 1337, null); + JingleFileTransferChild file = new JingleFileTransferChild(date, "desc", hash, "application/octet-stream", "name", 1337, null); JingleFileTransfer description = new JingleFileTransfer(Collections.singletonList(file)); String contentName = "content"; @@ -97,7 +97,7 @@ public class JingleUtilFileTransferTest extends SmackTestSuite { assertEquals(JingleFileTransfer.NAMESPACE_V5, description.getNamespace()); assertEquals(date, file.getDate()); assertEquals(hash, file.getHash()); - assertEquals("application/octet-string", file.getMediaType()); + assertEquals("application/octet-stream", file.getMediaType()); assertEquals("name", file.getName()); assertEquals(1337, file.getSize()); assertNull(file.getRange()); @@ -117,7 +117,7 @@ public class JingleUtilFileTransferTest extends SmackTestSuite { "" + "" + XmppDateTime.formatXEP0082Date(date) + "" + "desc" + - "application/octet-string" + + "application/octet-stream" + "name" + //"" + TODO: insert empty element when null? "1337" + @@ -127,6 +127,10 @@ public class JingleUtilFileTransferTest extends SmackTestSuite { ""; assertXMLEqual(descriptionXML, description.toXML().toString()); + JingleFileTransfer parsed = new JingleFileTransferProvider().parse(TestUtils.getParser(descriptionXML)); + assertEquals(1, parsed.getJingleContentDescriptionChildren().size()); + assertEquals(file.toXML().toString(), parsed.getJingleContentDescriptionChildren().get(0).toXML().toString()); + String contentXML = "" + descriptionXML + transportXML +