You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/01/08 22:39:33 UTC
svn commit: r1056808 - in /mina/vysper/trunk/server/core/src:
main/java/org/apache/vysper/xmpp/server/response/
main/java/org/apache/vysper/xmpp/server/s2s/
test/java/org/apache/vysper/xmpp/server/response/
Author: ngn
Date: Sat Jan 8 21:39:33 2011
New Revision: 1056808
URL: http://svn.apache.org/viewvc?rev=1056808&view=rev
Log:
Adding unit test for ServerResponses
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java?rev=1056808&r1=1056807&r2=1056808&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java Sat Jan 8 21:39:33 2011
@@ -22,6 +22,8 @@ package org.apache.vysper.xmpp.server.re
import java.util.List;
+import org.apache.vysper.xml.fragment.XMLElement;
+import org.apache.vysper.xml.fragment.XMLElementBuilder;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.authorization.SASLMechanism;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
@@ -63,13 +65,15 @@ public class ServerResponses {
public Stanza getStreamOpenerForServerAcceptor(Entity from, XMPPVersion version, SessionContext sessionContext, boolean tlsConfigured) {
- Stanza features = null;
+ XMLElement features = null;
// only include <features> if the other server support version 1.0
if(XMPPVersion.VERSION_1_0.equals(version)) {
- StanzaBuilder featureBuilder = startFeatureStanza();
+ XMLElementBuilder featureBuilder = new XMLElementBuilder("features", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS);
if (sessionContext.getState() == SessionState.INITIATED) {
- featureBuilder.startInnerElement("starttls", NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS).endInnerElement();
+ if(tlsConfigured) {
+ featureBuilder.startInnerElement("starttls", NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS).endInnerElement();
+ }
featureBuilder.startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK).endInnerElement();
} else if (sessionContext.getState() == SessionState.ENCRYPTED) {
@@ -102,7 +106,7 @@ public class ServerResponses {
}
public StanzaBuilder getStreamOpener(boolean forClient, Entity from, String xmlLang, XMPPVersion version,
- String sessionId, Stanza innerStanza) {
+ String sessionId, XMLElement innerStanza) {
StanzaBuilder stanzaBuilder = new StanzaBuilder("stream", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS,
"stream").declareNamespace("", forClient ? NamespaceURIs.JABBER_CLIENT : NamespaceURIs.JABBER_SERVER)
.addAttribute("from", from.getFullQualifiedName());
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java?rev=1056808&r1=1056807&r2=1056808&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java Sat Jan 8 21:39:33 2011
@@ -138,8 +138,6 @@ public class DefaultXMPPServerConnector
connector.setHandler(new ConnectorIoHandler(authenticatedLatch));
return connector;
}
-
-
private void startPinging() {
// are pings not already running and is the XMPP ping module active?
Modified: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java?rev=1056808&r1=1056807&r2=1056808&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java (original)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java Sat Jan 8 21:39:33 2011
@@ -25,21 +25,36 @@ import java.util.List;
import junit.framework.TestCase;
+import org.apache.vysper.xml.fragment.Renderer;
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.authorization.Anonymous;
import org.apache.vysper.xmpp.authorization.External;
import org.apache.vysper.xmpp.authorization.Plain;
import org.apache.vysper.xmpp.authorization.SASLMechanism;
import org.apache.vysper.xmpp.parser.ParsingException;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.XMPPVersion;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
/**
*/
-public class ServerResponsesTestCase extends TestCase {
+public class ServerResponsesTestCase {
- public void testFeaturesForAuthentication() throws ParsingException {
+ private static final Entity FROM = EntityImpl.parseUnchecked("from.org");
+ private static final Entity TO = EntityImpl.parseUnchecked("to.org");
+ private static final XMPPVersion VERSION = XMPPVersion.VERSION_1_0;
+ private SessionContext sessionContext = Mockito.mock(SessionContext.class);
+
+ @Test
+ public void testFeaturesForAuthentication() throws ParsingException {
Stanza stanza = new StanzaBuilder("features").startInnerElement("mechanisms",
NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_SASL).startInnerElement("mechanism",
NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_SASL).addText("EXTERNAL").endInnerElement()
@@ -52,7 +67,96 @@ public class ServerResponsesTestCase ext
mechanismList.add(new Plain());
mechanismList.add(new Anonymous());
// add others
- assertEquals("stanzas are identical", stanza.toString(), new ServerResponses().getFeaturesForAuthentication(
+ Assert.assertEquals("stanzas are identical", stanza.toString(), new ServerResponses().getFeaturesForAuthentication(
mechanismList).toString());
}
+
+ @Test
+ public void getStreamOpenerForServerAcceptorInititatedTlsSupported() throws ParsingException {
+ Mockito.when(sessionContext.getState()).thenReturn(SessionState.INITIATED);
+
+ Stanza expected = new StanzaBuilder("stream", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS, "stream")
+ .addAttribute("from", FROM.getFullQualifiedName())
+ .addAttribute("version", "1.0")
+ .declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK)
+ .declareNamespace("", NamespaceURIs.JABBER_SERVER)
+ .startInnerElement("features", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS)
+ .startInnerElement("starttls", NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS).endInnerElement()
+ .startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK).endInnerElement()
+ .endInnerElement()
+ .build();
+
+ Stanza actual = new ServerResponses().getStreamOpenerForServerAcceptor(FROM, VERSION, sessionContext, true);
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getStreamOpenerForServerAcceptorInititatedTlsNotSupported() throws ParsingException {
+ Mockito.when(sessionContext.getState()).thenReturn(SessionState.INITIATED);
+
+ Stanza expected = new StanzaBuilder("stream", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS, "stream")
+ .addAttribute("from", FROM.getFullQualifiedName())
+ .addAttribute("version", "1.0")
+ .declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK)
+ .declareNamespace("", NamespaceURIs.JABBER_SERVER)
+ .startInnerElement("features", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS)
+ .startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK).endInnerElement()
+ .endInnerElement()
+ .build();
+
+ Stanza actual = new ServerResponses().getStreamOpenerForServerAcceptor(FROM, VERSION, sessionContext, false);
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getStreamOpenerForServerAcceptorInititatedNoVersion() throws ParsingException {
+ Mockito.when(sessionContext.getState()).thenReturn(SessionState.INITIATED);
+
+ Stanza expected = new StanzaBuilder("stream", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS, "stream")
+ .addAttribute("from", FROM.getFullQualifiedName())
+ .declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK)
+ .declareNamespace("", NamespaceURIs.JABBER_SERVER)
+ .build();
+
+ Stanza actual = new ServerResponses().getStreamOpenerForServerAcceptor(FROM, null, sessionContext, true);
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getStreamOpenerForServerAcceptorEncryptedTlsSupported() throws ParsingException {
+ Mockito.when(sessionContext.getState()).thenReturn(SessionState.ENCRYPTED);
+
+ Stanza expected = new StanzaBuilder("stream", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS, "stream")
+ .addAttribute("from", FROM.getFullQualifiedName())
+ .addAttribute("version", "1.0")
+ .declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK)
+ .declareNamespace("", NamespaceURIs.JABBER_SERVER)
+ .startInnerElement("features", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS)
+ .startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK).endInnerElement()
+ .endInnerElement()
+ .build();
+
+ Stanza actual = new ServerResponses().getStreamOpenerForServerAcceptor(FROM, VERSION, sessionContext, true);
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getStreamOpenerForServerConnector() throws ParsingException {
+ Mockito.when(sessionContext.getXMLLang()).thenReturn("sv");
+
+ Stanza expected = new StanzaBuilder("stream", NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS, "stream")
+ .addAttribute("from", FROM.getFullQualifiedName())
+ .addAttribute("to", TO.getFullQualifiedName())
+ .addAttribute("version", "1.0")
+ .addAttribute(NamespaceURIs.XML, "lang", "sv")
+ .declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK)
+ .declareNamespace("", NamespaceURIs.JABBER_SERVER)
+ .build();
+
+ Stanza actual = new ServerResponses().getStreamOpenerForServerConnector(FROM, TO, VERSION, sessionContext);
+ System.out.println(new Renderer(expected).getComplete());
+ System.out.println(new Renderer(actual).getComplete());
+ Assert.assertEquals(expected, actual);
+ }
+
}