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 123a967a7..9735d07e3 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 @@ -17,14 +17,19 @@ package org.jivesoftware.smackx.jingle; import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNotNull; import static junit.framework.TestCase.assertTrue; +import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; 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.JingleReason; +import org.jivesoftware.smackx.jingle.provider.JingleProvider; import org.junit.Before; import org.junit.Test; @@ -51,6 +56,7 @@ public class JingleUtilTest extends SmackTestSuite { DummyConnection.getDummyConfigurationBuilder() .setUsernameAndPassword("romeo@montague.lit", "iluvJulibabe13").build()); + JingleManager jm = JingleManager.getInstanceFor(connection); jutil = new JingleUtil(connection); romeo = connection.getUser().asFullJidOrThrow(); juliet = JidCreate.fullFrom("juliet@capulet.lit/balcony"); @@ -63,4 +69,91 @@ public class JingleUtilTest extends SmackTestSuite { assertEquals(jingle.getStanzaId(), result.getStanzaId()); assertTrue(result.getType() == IQ.Type.result); } + + @Test + public void createSessionTerminateDeclineTest() throws Exception { + Jingle terminate = jutil.createSessionTerminateDecline(juliet, "thisismadness"); + String jingleXML = + "" + + "" + + "" + + "" + + ""; + String xml = getIQXML(romeo, juliet, terminate.getStanzaId(), jingleXML); + assertXMLEqual(xml, terminate.toXML().toString()); + Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); + assertNotNull(jingle); + assertEquals(jingle.getAction(), JingleAction.session_terminate); + assertEquals(jingle.getReason().asEnum(), JingleReason.Reason.decline); + } + + @Test + public void createSessionTerminateSuccessTest() throws Exception { + Jingle success = jutil.createSessionTerminateSuccess(juliet, "thisissparta"); + String jingleXML = + "" + + "" + + "" + + "" + + ""; + String xml = getIQXML(romeo, juliet, success.getStanzaId(), jingleXML); + assertXMLEqual(xml, success.toXML().toString()); + Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); + assertNotNull(jingle); + assertEquals(jingle.getAction(), JingleAction.session_terminate); + assertEquals(jingle.getReason().asEnum(), JingleReason.Reason.success); + } + + @Test + public void createSessionTerminateBusyTest() throws Exception { + Jingle busy = jutil.createSessionTerminateBusy(juliet, "thisispatrick"); + String jingleXML = + "" + + "" + + "" + + "" + + ""; + String xml = getIQXML(romeo, juliet, busy.getStanzaId(), jingleXML); + assertXMLEqual(xml, busy.toXML().toString()); + Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); + assertNotNull(jingle); + assertEquals(jingle.getAction(), JingleAction.session_terminate); + assertEquals(jingle.getReason().asEnum(), JingleReason.Reason.busy); + } + + @Test + public void createSessionTerminateAlternativeSessionTest() throws Exception { + Jingle busy = jutil.createSessionTerminateAlternativeSession(juliet, "thisistherhythm", "ofthenight"); + String jingleXML = + "" + + "" + + "" + + "ofthenight" + + "" + + "" + + ""; + String xml = getIQXML(romeo, juliet, busy.getStanzaId(), jingleXML); + assertXMLEqual(xml, busy.toXML().toString()); + Jingle jingle = new JingleProvider().parse(TestUtils.getParser(jingleXML)); + assertNotNull(jingle); + assertEquals(jingle.getAction(), JingleAction.session_terminate); + assertEquals(jingle.getReason().asEnum(), JingleReason.Reason.alternative_session); + JingleReason.AlternativeSession alt = (JingleReason.AlternativeSession) jingle.getReason(); + assertEquals("ofthenight", alt.getAlternativeSessionId()); + } + + private String getIQXML(FullJid from, FullJid to, String stanzaId, String jingleXML) { + return + "" + + jingleXML + + ""; + } }