diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransport.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransport.java index a6a978a2d..8f92400e4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransport.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransport.java @@ -63,7 +63,7 @@ public class JingleIBBTransport extends JingleTransport createTransportForResponder(JingleContent content, JingleTransport peersTransport) { JingleIBBTransport other = (JingleIBBTransport) peersTransport; - return new JingleIBBTransport(other.getSid(), (short) Math.min(other.getBlockSize(), MAX_BLOCKSIZE)); + return new JingleIBBTransport(other.getStreamId(), (short) Math.min(other.getBlockSize(), MAX_BLOCKSIZE)); } @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/element/JingleIBBTransportElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/element/JingleIBBTransportElement.java index 0ccb91599..25ddf2a9a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/element/JingleIBBTransportElement.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/element/JingleIBBTransportElement.java @@ -30,7 +30,7 @@ public class JingleIBBTransportElement extends JingleContentTransportElement { public static final short DEFAULT_BLOCK_SIZE = 4096; private final String sid; - private final short blockSize; + private final Short blockSize; public JingleIBBTransportElement(String streamId, Short blockSize) { super(null); @@ -38,11 +38,11 @@ public class JingleIBBTransportElement extends JingleContentTransportElement { this.blockSize = blockSize != null ? blockSize : DEFAULT_BLOCK_SIZE; } - public short getBlockSize() { + public Short getBlockSize() { return blockSize; } - public String getSid() { + public String getStreamId() { return sid; } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/component/JingleSessionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/component/JingleSessionTest.java index e14b7bfb8..93496b4db 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/component/JingleSessionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/component/JingleSessionTest.java @@ -18,13 +18,21 @@ package org.jivesoftware.smackx.jingle.component; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertFalse; +import static junit.framework.TestCase.assertNotNull; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.test.util.SmackTestSuite; +import org.jivesoftware.smackx.bytestreams.BytestreamSession; import org.jivesoftware.smackx.jingle.JingleManager; +import org.jivesoftware.smackx.jingle.element.JingleAction; +import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionElement; +import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionInfoElement; import org.jivesoftware.smackx.jingle.element.JingleContentElement; +import org.jivesoftware.smackx.jingle.element.JingleElement; +import org.jivesoftware.smackx.jingle.transport.jingle_ibb.JingleIBBTransport; +import org.jivesoftware.smackx.jingle.transport.jingle_ibb.element.JingleIBBTransportElement; import org.jivesoftware.smackx.jingle.util.Role; import org.junit.Test; @@ -82,4 +90,158 @@ public class JingleSessionTest extends SmackTestSuite { assertEquals(c1, session.getSoleContentOrThrow()); } + + @Test + public void createSessionAcceptTest() throws XmppStringprepException { + FullJid initiator = JidCreate.fullFrom("initiator@server.tld/res"); + FullJid responder = JidCreate.fullFrom("responder@server.tld/res"); + JingleManager manager = JingleManager.getInstanceFor(new DummyConnection()); + JingleSession session = new JingleSession(manager, initiator, responder, Role.initiator, "sessionId"); + + JingleContent content = new JingleContent(JingleContentElement.Creator.initiator, JingleContentElement.Senders.initiator); + + JingleIBBTransport transport = new JingleIBBTransport("streamId", (short) 1024); + content.setTransport(transport); + + JingleDescription description = new JingleDescription() { + public static final String NAMESPACE = "urn:xmpp:jingle:apps:stub:0"; + + @Override + public JingleContentDescriptionElement getElement() { + return new JingleContentDescriptionElement(null) { + @Override + public String getNamespace() { + return NAMESPACE; + } + }; + } + + @Override + public JingleElement handleDescriptionInfo(JingleContentDescriptionInfoElement info) { + return null; + } + + @Override + public void onBytestreamReady(BytestreamSession bytestreamSession) { + + } + + @Override + public String getNamespace() { + return NAMESPACE; + } + }; + content.setDescription(description); + + session.addContent(content); + + JingleElement sessionElement = session.createSessionInitiate(); + assertNotNull(sessionElement); + assertEquals("sessionId", sessionElement.getSid()); + assertEquals(initiator, sessionElement.getInitiator()); + assertNull(sessionElement.getResponder()); + assertEquals(JingleAction.session_initiate, sessionElement.getAction()); + JingleContentElement contentElement = sessionElement.getSoleContentOrThrow(); + assertNotNull(contentElement); + assertEquals(content.getName(), contentElement.getName()); + assertEquals(content.getCreator(), contentElement.getCreator()); + assertEquals(content.getSenders(), contentElement.getSenders()); + assertEquals(0, content.getTransportBlacklist().size()); + assertEquals(content.getElement().toXML().toString(), contentElement.toXML().toString()); + + JingleIBBTransportElement transportElement = (JingleIBBTransportElement) contentElement.getTransport(); + assertNotNull(transportElement); + assertEquals(transport.getBlockSize(), transportElement.getBlockSize()); + assertEquals(transport.getStreamId(), transportElement.getStreamId()); + assertEquals(transport.getNamespace(), transportElement.getNamespace()); + assertEquals(transport.getElement().toXML().toString(), transportElement.toXML().toString()); + + JingleContentDescriptionElement descriptionElement = contentElement.getDescription(); + assertNotNull(descriptionElement); + assertEquals(description.getNamespace(), descriptionElement.getNamespace()); + assertEquals(description.getElement().toXML().toString(), descriptionElement.toXML().toString()); + + assertNull(contentElement.getSecurity()); + } + + @Test(expected = IllegalArgumentException.class) + public void duplicateContentAddTest() throws XmppStringprepException { + FullJid initiator = JidCreate.fullFrom("initiator@server.tld/res"); + FullJid responder = JidCreate.fullFrom("responder@server.tld/res"); + JingleManager manager = JingleManager.getInstanceFor(new DummyConnection()); + JingleSession session = new JingleSession(manager, initiator, responder, Role.initiator, "sessionId"); + + JingleContent content1 = new JingleContent(JingleContentElement.Creator.initiator, JingleContentElement.Senders.initiator); + JingleContent content2 = new JingleContent(null, null, null, content1.getName(), null, JingleContentElement.Creator.initiator, JingleContentElement.Senders.initiator); + + session.addContent(content1); + session.addContent(content2); + } + + @Test(expected = IllegalStateException.class) + public void sessionInitiateThrowsAsResponderTest() { + JingleSession session = new JingleSession(JingleManager.getInstanceFor(new DummyConnection()), + null, null, Role.responder, "session"); + session.createSessionInitiate(); + } + + @Test + public void sessionAcceptTest() throws XmppStringprepException { + FullJid initiator = JidCreate.fullFrom("initiator@server.tld/res"); + FullJid responder = JidCreate.fullFrom("responder@server.tld/res"); + JingleManager manager = JingleManager.getInstanceFor(new DummyConnection()); + JingleSession session = new JingleSession(manager, initiator, responder, Role.responder, "sessionId"); + + JingleContent content = new JingleContent(JingleContentElement.Creator.initiator, JingleContentElement.Senders.initiator); + + JingleIBBTransport transport = new JingleIBBTransport("streamId", (short) 1024); + content.setTransport(transport); + + JingleDescription description = new JingleDescription() { + public static final String NAMESPACE = "urn:xmpp:jingle:apps:stub:0"; + + @Override + public JingleContentDescriptionElement getElement() { + return new JingleContentDescriptionElement(null) { + @Override + public String getNamespace() { + return NAMESPACE; + } + }; + } + + @Override + public JingleElement handleDescriptionInfo(JingleContentDescriptionInfoElement info) { + return null; + } + + @Override + public void onBytestreamReady(BytestreamSession bytestreamSession) { + + } + + @Override + public String getNamespace() { + return NAMESPACE; + } + }; + content.setDescription(description); + + session.addContent(content); + + JingleElement accept = session.createSessionAccept(); + assertNotNull(accept); + assertEquals(JingleAction.session_accept, accept.getAction()); + assertNull(accept.getInitiator()); + assertEquals(session.getResponder(), accept.getResponder()); + assertEquals(1, accept.getContents().size()); + assertEquals(content.getName(), accept.getSoleContentOrThrow().getName()); + } + + @Test(expected = IllegalStateException.class) + public void sessionAcceptThrowsAsInitiatorTest() { + JingleSession session = new JingleSession(JingleManager.getInstanceFor(new DummyConnection()), + null, null, Role.initiator, "session"); + session.createSessionAccept(); + } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportTest.java index 7c93820cb..8b2ad4074 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportTest.java @@ -42,7 +42,7 @@ public class JingleIBBTransportTest extends SmackTestSuite { JingleIBBTransport transport = new JingleIBBTransport(sid, size); assertEquals(xml, transport.getElement().toXML().toString()); assertEquals(size, (short) transport.getBlockSize()); - assertEquals(sid, transport.getSid()); + assertEquals(sid, transport.getStreamId()); JingleIBBTransportElement parsed = new JingleIBBTransportProvider() .parse(TestUtils.getParser(xml)); diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jet/JetTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jet/JetIntegrationTestTest.java similarity index 95% rename from smack-integration-test/src/main/java/org/jivesoftware/smackx/jet/JetTest.java rename to smack-integration-test/src/main/java/org/jivesoftware/smackx/jet/JetIntegrationTestTest.java index 37e718008..9c80e1a36 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jet/JetTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jet/JetIntegrationTestTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.jet; -import static org.jivesoftware.smackx.jft.JingleFileTransferTest.prepareNewTestFile; +import static org.jivesoftware.smackx.jft.JingleFileTransferIntegrationTest.prepareNewTestFile; import static org.jivesoftware.smackx.omemo.OmemoIntegrationTestHelper.cleanServerSideTraces; import static org.jivesoftware.smackx.omemo.OmemoIntegrationTestHelper.setUpOmemoManager; import static org.jivesoftware.smackx.omemo.OmemoIntegrationTestHelper.subscribe; @@ -46,7 +46,7 @@ import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; -public class JetTest extends AbstractOmemoIntegrationTest { +public class JetIntegrationTestTest extends AbstractOmemoIntegrationTest { private OmemoManager oa, ob; private JetManager ja, jb; @@ -65,7 +65,7 @@ public class JetTest extends AbstractOmemoIntegrationTest { } } - public JetTest(SmackIntegrationTestEnvironment environment) + public JetIntegrationTestTest(SmackIntegrationTestEnvironment environment) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException, TestNotPossibleException { super(environment); diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferIntegrationTest.java similarity index 97% rename from smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTest.java rename to smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferIntegrationTest.java index 91a77134e..f52ea3179 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferIntegrationTest.java @@ -46,7 +46,7 @@ import org.jxmpp.jid.FullJid; /** * Created by vanitas on 29.06.17. */ -public class JingleFileTransferTest extends AbstractSmackIntegrationTest { +public class JingleFileTransferIntegrationTest extends AbstractSmackIntegrationTest { private static final File tempDir; @@ -60,7 +60,7 @@ public class JingleFileTransferTest extends AbstractSmackIntegrationTest { } } - public JingleFileTransferTest(SmackIntegrationTestEnvironment environment) { + public JingleFileTransferIntegrationTest(SmackIntegrationTestEnvironment environment) { super(environment); } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTransportFallbackTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTransportFallbackIntegrationTest.java similarity index 96% rename from smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTransportFallbackTest.java rename to smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTransportFallbackIntegrationTest.java index a34aae25e..159ec07c5 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTransportFallbackTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferTransportFallbackIntegrationTest.java @@ -46,7 +46,7 @@ import org.junit.AfterClass; import org.junit.Before; import org.jxmpp.jid.FullJid; -public class JingleFileTransferTransportFallbackTest extends AbstractSmackIntegrationTest { +public class JingleFileTransferTransportFallbackIntegrationTest extends AbstractSmackIntegrationTest { private static final File tempDir; @@ -60,7 +60,7 @@ public class JingleFileTransferTransportFallbackTest extends AbstractSmackIntegr } } - public JingleFileTransferTransportFallbackTest(SmackIntegrationTestEnvironment environment) { + public JingleFileTransferTransportFallbackIntegrationTest(SmackIntegrationTestEnvironment environment) { super(environment); } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportIntegrationTest.java similarity index 97% rename from smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java rename to smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportIntegrationTest.java index ee386c6af..c34ab0227 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportIntegrationTest.java @@ -49,9 +49,9 @@ import org.junit.Assert; /** * Test the JingleIBBTransport in a very basic case. */ -public class JingleTransportTest extends AbstractSmackIntegrationTest { +public class JingleTransportIntegrationTest extends AbstractSmackIntegrationTest { - public JingleTransportTest(SmackIntegrationTestEnvironment environment) { + public JingleTransportIntegrationTest(SmackIntegrationTestEnvironment environment) { super(environment); } @@ -61,7 +61,7 @@ public class JingleTransportTest extends AbstractSmackIntegrationTest { XMPPConnection receiver = conTwo; JingleIBBTransport sTransport = new JingleIBBTransport(); - JingleIBBTransport rTransport = new JingleIBBTransport(sTransport.getSid(), sTransport.getBlockSize()); + JingleIBBTransport rTransport = new JingleIBBTransport(sTransport.getStreamId(), sTransport.getBlockSize()); JingleSession sSession = new JingleSession(JingleManager.getInstanceFor(sender), sender.getUser().asFullJidOrThrow(), receiver.getUser().asFullJidOrThrow(), Role.initiator, "session"); JingleSession rSession = new JingleSession(JingleManager.getInstanceFor(receiver), sender.getUser().asFullJidOrThrow(), receiver.getUser().asFullJidOrThrow(), Role.responder, "session");