From 322587c0b510b650bf1888019a880c2979b6a00c Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Fri, 30 Jun 2017 18:49:34 +0200 Subject: [PATCH] More jingle related tests --- .../elements/JingleS5BTransportCandidate.java | 6 +- .../JingleContentProviderManagerTest.java | 50 +++++++++++++++++ .../smackx/jingle/JingleContentTest.java | 3 +- .../smackx/jingle/JingleErrorTest.java | 40 ++++++++++---- .../jingle_ibb/JingleIBBTransportTest.java | 3 + .../jingle_s5b/JingleS5BTransportTest.java | 55 +++++++++++++++++++ 6 files changed, 143 insertions(+), 14 deletions(-) create mode 100644 smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentProviderManagerTest.java diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java index 284fc72e9..d532b6fde 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java @@ -54,8 +54,12 @@ public final class JingleS5BTransportCandidate extends JingleContentTransportCan Objects.requireNonNull(candidateId); Objects.requireNonNull(host); Objects.requireNonNull(jid); + if (priority < 0) { - throw new IllegalArgumentException("Priority MUST be present and NOT less than 0."); + throw new IllegalArgumentException("Priority MUST NOT be less than 0."); + } + if (port < 0) { + throw new IllegalArgumentException("Port MUST NOT be less than 0."); } this.cid = candidateId; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentProviderManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentProviderManagerTest.java new file mode 100644 index 000000000..8b9109426 --- /dev/null +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentProviderManagerTest.java @@ -0,0 +1,50 @@ +/** + * + * Copyright 2017 Paul Schaub + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smackx.jingle; + +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNull; + +import org.jivesoftware.smack.test.util.SmackTestSuite; +import org.jivesoftware.smackx.jingle.provider.JingleContentProviderManager; +import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport; +import org.jivesoftware.smackx.jingle.transports.jingle_ibb.provider.JingleIBBTransportProvider; +import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; +import org.jivesoftware.smackx.jingle.transports.jingle_s5b.provider.JingleS5BTransportProvider; + +import org.junit.Test; + +/** + * Tests for the JingleContentProviderManager. + */ +public class JingleContentProviderManagerTest extends SmackTestSuite { + + @Test + public void transportProviderTest() { + assertNull(JingleContentProviderManager.getJingleContentTransportProvider(JingleIBBTransport.NAMESPACE_V1)); + assertNull(JingleContentProviderManager.getJingleContentTransportProvider(JingleS5BTransport.NAMESPACE_V1)); + + JingleIBBTransportProvider ibbProvider = new JingleIBBTransportProvider(); + JingleContentProviderManager.addJingleContentTransportProvider(JingleIBBTransport.NAMESPACE_V1, ibbProvider); + assertEquals(ibbProvider, JingleContentProviderManager.getJingleContentTransportProvider(JingleIBBTransport.NAMESPACE_V1)); + + assertNull(JingleContentProviderManager.getJingleContentTransportProvider(JingleS5BTransport.NAMESPACE_V1)); + JingleS5BTransportProvider s5bProvider = new JingleS5BTransportProvider(); + JingleContentProviderManager.addJingleContentTransportProvider(JingleS5BTransport.NAMESPACE_V1, s5bProvider); + assertEquals(s5bProvider, JingleContentProviderManager.getJingleContentTransportProvider(JingleS5BTransport.NAMESPACE_V1)); + } +} diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java index 49bd0fde4..bd1a430a8 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java @@ -22,7 +22,6 @@ import static junit.framework.TestCase.assertNotSame; import static junit.framework.TestCase.assertNull; import org.jivesoftware.smack.test.util.SmackTestSuite; - import org.jivesoftware.smackx.jingle.element.JingleContent; import org.junit.Test; @@ -46,7 +45,7 @@ public class JingleContentTest extends SmackTestSuite { } @Test - public void parserTest() { + public void parserTest() throws Exception { JingleContent.Builder builder = JingleContent.getBuilder(); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java index d21ecf73d..6ca6d88a9 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.jingle; import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; - +import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smackx.jingle.element.JingleError; +import org.jivesoftware.smackx.jingle.provider.JingleErrorProvider; import org.junit.Test; @@ -30,20 +31,37 @@ import org.junit.Test; public class JingleErrorTest extends SmackTestSuite { @Test - public void parserTest() { - assertEquals("", - JingleError.fromString("out-of-order").toXML().toString()); - assertEquals("", - JingleError.fromString("tie-break").toXML().toString()); - assertEquals("", - JingleError.fromString("unknown-session").toXML().toString()); - assertEquals("", - JingleError.fromString("unsupported-info").toXML().toString()); - assertEquals("unknown-session", JingleError.fromString("unknown-session").getMessage()); + public void tieBreakTest() throws Exception { + String xml = ""; + JingleError error = new JingleErrorProvider().parse(TestUtils.getParser(xml)); + assertEquals(xml, error.toXML().toString()); + } + + @Test + public void unknownSessionTest() throws Exception { + String xml = ""; + JingleError error = new JingleErrorProvider().parse(TestUtils.getParser(xml)); + assertEquals(xml, error.toXML().toString()); + } + + @Test + public void unsupportedInfoTest() throws Exception { + String xml = ""; + JingleError error = new JingleErrorProvider().parse(TestUtils.getParser(xml)); + assertEquals(xml, error.toXML().toString()); + } + + @Test + public void outOfOrderTest() throws Exception { + String xml = ""; + JingleError error = new JingleErrorProvider().parse(TestUtils.getParser(xml)); + assertEquals(xml, error.toXML().toString()); } @Test(expected = IllegalArgumentException.class) public void illegalArgumentTest() { JingleError.fromString("inexistent-error"); } + + } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportTest.java index 70e0411b3..e33b2b814 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportTest.java @@ -69,5 +69,8 @@ public class JingleIBBTransportTest extends SmackTestSuite { assertEquals(transport3.getNamespace(), JingleIBBTransport.NAMESPACE_V1); assertEquals(transport3.getElementName(), "transport"); + + JingleIBBTransport transport4 = new JingleIBBTransport("session-id"); + assertEquals(JingleIBBTransport.DEFAULT_BLOCK_SIZE, transport4.getBlockSize()); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java index 33e616efd..4561b412b 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java @@ -16,7 +16,9 @@ */ package org.jivesoftware.smackx.jingle.transports.jingle_s5b; +import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertNull; +import static junit.framework.TestCase.assertTrue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -29,7 +31,9 @@ import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTr import org.jivesoftware.smackx.jingle.transports.jingle_s5b.provider.JingleS5BTransportProvider; import org.junit.Test; +import org.jxmpp.jid.FullJid; import org.jxmpp.jid.impl.JidCreate; +import org.jxmpp.stringprep.XmppStringprepException; /** * Test Provider and serialization. @@ -76,8 +80,13 @@ public class JingleS5BTransportTest extends SmackTestSuite { assertEquals(Bytestream.Mode.tcp, transport.getMode()); assertEquals(3, transport.getCandidates().size()); + assertTrue(transport.hasCandidate("hft54dqy")); + assertFalse(transport.hasCandidate("invalidId")); JingleS5BTransportCandidate candidate1 = (JingleS5BTransportCandidate) transport.getCandidates().get(0); + assertEquals(candidate1, transport.getCandidate("hft54dqy")); + assertNotNull(candidate1.getStreamHost()); + assertEquals(JingleS5BTransportCandidate.Type.direct.getWeight(), candidate1.getType().getWeight()); assertEquals("hft54dqy", candidate1.getCandidateId()); assertEquals("192.168.4.1", candidate1.getHost()); assertEquals(JidCreate.from("romeo@montague.lit/orchard"), candidate1.getJid()); @@ -162,4 +171,50 @@ public class JingleS5BTransportTest extends SmackTestSuite { candidateActivatedTransport.getInfo()).getCandidateId()); assertEquals(candidateActivated, candidateActivatedTransport.toXML().toString()); } + + @Test(expected = IllegalArgumentException.class) + public void candidateBuilderInvalidPortTest() { + JingleS5BTransportCandidate.getBuilder().setPort(-5); + } + + @Test(expected = IllegalArgumentException.class) + public void candidateBuilderInvalidPriorityTest() { + JingleS5BTransportCandidate.getBuilder().setPriority(-1000); + } + + @Test(expected = IllegalArgumentException.class) + public void transportCandidateIllegalPriorityTest() throws XmppStringprepException { + FullJid jid = JidCreate.fullFrom("test@test.test/test"); + JingleS5BTransportCandidate candidate = new JingleS5BTransportCandidate( + "cid", "host", jid, 5555, -30, JingleS5BTransportCandidate.Type.proxy); + } + + @Test(expected = IllegalArgumentException.class) + public void transportCandidateIllegalPortTest() throws XmppStringprepException { + FullJid jid = JidCreate.fullFrom("test@test.test/test"); + JingleS5BTransportCandidate candidate = new JingleS5BTransportCandidate( + "cid", "host", jid, -5555, 30, JingleS5BTransportCandidate.Type.proxy); + } + + @Test + public void candidateFromStreamHostTest() throws XmppStringprepException { + FullJid jid = JidCreate.fullFrom("test@test.test/test"); + String host = "host.address"; + int port = 1234; + Bytestream.StreamHost streamHost = new Bytestream.StreamHost(jid, host, port); + + JingleS5BTransportCandidate candidate = new JingleS5BTransportCandidate(streamHost, 2000); + + assertEquals(2000, candidate.getPriority()); + assertEquals(jid, candidate.getJid()); + assertEquals(host, candidate.getHost()); + assertEquals(port, candidate.getPort()); + + assertEquals(streamHost.toXML().toString(), candidate.getStreamHost().toXML().toString()); + } + + @Test(expected = IllegalArgumentException.class) + public void typeFromIllegalStringTest() { + JingleS5BTransportCandidate.Type.fromString("illegal-type"); + } }