From 63d71230cc99436b02f57bce64a908d8c0bdf34b Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Sat, 8 Jul 2017 00:23:18 +0200 Subject: [PATCH] More tests --- .../smackx/jingle/JingleUtil.java | 12 ++- .../smackx/jingle/JingleUtilTest.java | 76 +++++++++++++++---- 2 files changed, 71 insertions(+), 17 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java index 8f47fea94..845311738 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java @@ -249,7 +249,7 @@ public class JingleUtil { JingleContent.Creator contentCreator, String contentName) { Jingle.Builder jb = Jingle.getBuilder(); jb.setAction(JingleAction.session_terminate) - .setSessionId(sessionId); + .setSessionId(sessionId).setReason(JingleReason.Reason.cancel); JingleContent.Builder cb = JingleContent.getBuilder(); cb.setCreator(contentCreator).setName(contentName); @@ -497,8 +497,16 @@ public class JingleUtil { connection.sendStanza(createErrorOutOfOrder(request)); } + /** + * XEP-0166 Ex. 16 + * @param request + * @return + */ public IQ createErrorMalformedRequest(Jingle request) { - return IQ.createErrorResponse(request, XMPPError.Condition.bad_request); + XMPPError.Builder error = XMPPError.getBuilder(); + error.setType(XMPPError.Type.CANCEL); + error.setCondition(XMPPError.Condition.bad_request); + return IQ.createErrorResponse(request, error); } public void sendErrorMalformedRequest(Jingle request) diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java index cf126f7b4..458b8bfeb 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java @@ -28,6 +28,7 @@ import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; +import org.jivesoftware.smackx.jingle.element.JingleContent; import org.jivesoftware.smackx.jingle.element.JingleReason; import org.jivesoftware.smackx.jingle.provider.JingleProvider; @@ -54,8 +55,8 @@ public class JingleUtilTest extends SmackTestSuite { connection = new DummyConnection( DummyConnection.getDummyConfigurationBuilder() - .setUsernameAndPassword("romeo@montague.lit", - "iluvJulibabe13").build()); + .setUsernameAndPassword("romeo@montague.lit", + "iluvJulibabe13").build()); JingleManager jm = JingleManager.getInstanceFor(connection); jutil = new JingleUtil(connection); romeo = connection.getUser().asFullJidOrThrow(); @@ -75,12 +76,12 @@ public class JingleUtilTest extends SmackTestSuite { Jingle terminate = jutil.createSessionTerminateDecline(juliet, "thisismadness"); String jingleXML = "" + - "" + + "action='session-terminate' " + + "sid='thisismadness'>" + + "" + "" + - "" + - ""; + "" + + ""; String xml = getIQXML(romeo, juliet, terminate.getStanzaId(), jingleXML); assertXMLEqual(xml, terminate.toXML().toString()); Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); @@ -94,12 +95,12 @@ public class JingleUtilTest extends SmackTestSuite { Jingle success = jutil.createSessionTerminateSuccess(juliet, "thisissparta"); String jingleXML = "" + - "" + + "action='session-terminate' " + + "sid='thisissparta'>" + + "" + "" + - "" + - ""; + "" + + ""; String xml = getIQXML(romeo, juliet, success.getStanzaId(), jingleXML); assertXMLEqual(xml, success.toXML().toString()); Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); @@ -221,10 +222,55 @@ public class JingleUtilTest extends SmackTestSuite { assertEquals(JingleAction.session_info, jingle.getAction()); } + @Test + public void createSessionTerminateContentCancelTest() throws Exception { + Jingle cancel = jutil.createSessionTerminateContentCancel(juliet, "thisismumbo#5", JingleContent.Creator.initiator, "content123"); + String jingleXML = + "" + + "" + + "" + + "" + + "" + + ""; + String xml = getIQXML(romeo, juliet, cancel.getStanzaId(), jingleXML); + assertXMLEqual(xml, cancel.toXML().toString()); + Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); + assertNotNull(jingle); + assertEquals(JingleAction.session_terminate, jingle.getAction()); + assertEquals(JingleReason.Reason.cancel, jingle.getReason().asEnum()); + assertEquals("thisismumbo#5", jingle.getSid()); + JingleContent content = jingle.getContents().get(0); + assertNotNull(content); + assertEquals("content123", content.getName()); + assertEquals(JingleContent.Creator.initiator, content.getCreator()); + } + + @Test + public void createErrorMalformedRequestTest() throws Exception { + Jingle j = defaultJingle(romeo, "error123"); + IQ error = jutil.createErrorMalformedRequest(j); + String xml = + "" + + "" + + "" + + "" + + ""; + assertXMLEqual(xml, error.toXML().toString()); + } + private String getIQXML(FullJid from, FullJid to, String stanzaId, String jingleXML) { - return - "" + - jingleXML + + return "" + + jingleXML + ""; } + + private Jingle defaultJingle(FullJid recipient, String sessionId) { + return jutil.createSessionPing(recipient, sessionId); + } }