1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2025-12-07 13:41:08 +01:00

Rework XML Element hierarchy and XmlStringBuilder

- Reduce the amount of types that are subtypes of NamedElement. See
javadoc of NamedElement for rationale.
- Work more with XmlEnvironment in XmlStringBuilder.
- Some minor changes to XmlStringBuilder API.
This commit is contained in:
Florian Schmaus 2019-09-07 18:17:08 +02:00
parent e9bcdf3e6d
commit 65576cf3c2
74 changed files with 653 additions and 523 deletions

View file

@ -70,7 +70,7 @@ public class JingleContentTest extends SmackTestSuite {
assertEquals(content1.toXML().toString(), builder.build().toXML().toString());
String xml =
"<content creator='initiator' disposition='session' name='A name' senders='both'>" +
"<content xmlns='urn:xmpp:jingle:1' creator='initiator' disposition='session' name='A name' senders='both'>" +
"</content>";
assertEquals(xml, content1.toXML().toString());
}

View file

@ -1,6 +1,6 @@
/**
*
* Copyright 2017 Paul Schaub
* Copyright 2017-2019 Paul Schaub, 2019 Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -16,13 +16,14 @@
*/
package org.jivesoftware.smackx.jingle;
import static junit.framework.TestCase.assertEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.jivesoftware.smack.test.util.SmackTestSuite;
import org.jivesoftware.smackx.jingle.element.JingleReason;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Test JingleReason functionality.
@ -31,56 +32,67 @@ public class JingleReasonTest extends SmackTestSuite {
@Test
public void parserTest() {
assertEquals("<reason><success/></reason>",
JingleReason.Success.toXML().toString());
assertEquals("<reason><busy/></reason>",
JingleReason.Busy.toXML().toString());
assertEquals("<reason><cancel/></reason>",
JingleReason.Cancel.toXML().toString());
assertEquals("<reason><connectivity-error/></reason>",
JingleReason.ConnectivityError.toXML().toString());
assertEquals("<reason><decline/></reason>",
JingleReason.Decline.toXML().toString());
assertEquals("<reason><expired/></reason>",
JingleReason.Expired.toXML().toString());
assertEquals("<reason><unsupported-transports/></reason>",
JingleReason.UnsupportedTransports.toXML().toString());
assertEquals("<reason><failed-transport/></reason>",
JingleReason.FailedTransport.toXML().toString());
assertEquals("<reason><general-error/></reason>",
JingleReason.GeneralError.toXML().toString());
assertEquals("<reason><gone/></reason>",
JingleReason.Gone.toXML().toString());
assertEquals("<reason><media-error/></reason>",
JingleReason.MediaError.toXML().toString());
assertEquals("<reason><security-error/></reason>",
JingleReason.SecurityError.toXML().toString());
assertEquals("<reason><unsupported-applications/></reason>",
JingleReason.UnsupportedApplications.toXML().toString());
assertEquals("<reason><timeout/></reason>",
JingleReason.Timeout.toXML().toString());
assertEquals("<reason><failed-application/></reason>",
JingleReason.FailedApplication.toXML().toString());
assertEquals("<reason><incompatible-parameters/></reason>",
JingleReason.IncompatibleParameters.toXML().toString());
assertEquals("<reason><alternative-session><sid>1234</sid></alternative-session></reason>",
JingleReason.AlternativeSession("1234").toXML().toString());
assertReasonXml("<reason><success/></reason>",
JingleReason.Success);
assertReasonXml("<reason><busy/></reason>",
JingleReason.Busy);
assertReasonXml("<reason><cancel/></reason>",
JingleReason.Cancel);
assertReasonXml("<reason><connectivity-error/></reason>",
JingleReason.ConnectivityError);
assertReasonXml("<reason><decline/></reason>",
JingleReason.Decline);
assertReasonXml("<reason><expired/></reason>",
JingleReason.Expired);
assertReasonXml("<reason><unsupported-transports/></reason>",
JingleReason.UnsupportedTransports);
assertReasonXml("<reason><failed-transport/></reason>",
JingleReason.FailedTransport);
assertReasonXml("<reason><general-error/></reason>",
JingleReason.GeneralError);
assertReasonXml("<reason><gone/></reason>",
JingleReason.Gone);
assertReasonXml("<reason><media-error/></reason>",
JingleReason.MediaError);
assertReasonXml("<reason><security-error/></reason>",
JingleReason.SecurityError);
assertReasonXml("<reason><unsupported-applications/></reason>",
JingleReason.UnsupportedApplications);
assertReasonXml("<reason><timeout/></reason>",
JingleReason.Timeout);
assertReasonXml("<reason><failed-application/></reason>",
JingleReason.FailedApplication);
assertReasonXml("<reason><incompatible-parameters/></reason>",
JingleReason.IncompatibleParameters);
assertReasonXml("<reason><alternative-session><sid>1234</sid></alternative-session></reason>",
JingleReason.AlternativeSession("1234"));
}
@Test(expected = NullPointerException.class)
private static void assertReasonXml(String expected, JingleReason reason) {
String actualXml = reason.toXML(JingleReason.NAMESPACE).toString();
assertEquals(expected, actualXml);
}
@Test
public void alternativeSessionEmptyStringTest() {
// Alternative sessionID must not be empty
JingleReason.AlternativeSession("");
assertThrows(NullPointerException.class, () ->
// Alternative sessionID must not be empty
JingleReason.AlternativeSession("")
);
}
@Test(expected = NullPointerException.class)
@Test
public void alternativeSessionNullStringTest() {
// Alternative sessionID must not be null
JingleReason.AlternativeSession(null);
assertThrows(NullPointerException.class, () ->
// Alternative sessionID must not be null
JingleReason.AlternativeSession(null)
);
}
@Test(expected = IllegalArgumentException.class)
@Test
public void illegalArgumentTest() {
JingleReason.Reason.fromString("illegal-reason");
assertThrows(IllegalArgumentException.class, () ->
JingleReason.Reason.fromString("illegal-reason")
);
}
}