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);
+    }
+
 }