Author: ngn
Date: Tue Sep  8 20:31:05 2009
New Revision: 812679

URL: http://svn.apache.org/viewvc?rev=812679&view=rev
Log:
Add test for entering room with the old groupchat protocol (VYSPER-109)

Modified:
    
mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandlerEnterRoomTestCase.java

Modified: 
mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandlerEnterRoomTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandlerEnterRoomTestCase.java?rev=812679&r1=812678&r2=812679&view=diff
==============================================================================
--- 
mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandlerEnterRoomTestCase.java
 (original)
+++ 
mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandlerEnterRoomTestCase.java
 Tue Sep  8 20:31:05 2009
@@ -31,10 +31,10 @@
 public class MUCPresenceHandlerEnterRoomTestCase extends 
AbstractMUCHandlerTestCase {
 
     private Stanza enterRoom(Entity occupantJid, Entity roomJid) throws 
ProtocolException {
-        return enterRoom(occupantJid, roomJid, null, null);
+        return enterRoom(occupantJid, roomJid, null, null, false);
     }
     
-    private Stanza enterRoom(Entity occupantJid, Entity roomJid, String 
password, History history) throws ProtocolException {
+    private Stanza enterRoom(Entity occupantJid, Entity roomJid, String 
password, History history, boolean oldProtocol) throws ProtocolException {
         SessionContext userSessionContext;
         if(occupantJid.equals(OCCUPANT1_JID)) {
             userSessionContext = sessionContext;
@@ -43,15 +43,17 @@
         }
         
         StanzaBuilder stanzaBuilder = 
StanzaBuilder.createPresenceStanza(occupantJid, roomJid, null, null, null, 
null);
-        
stanzaBuilder.startInnerElement("x").addNamespaceAttribute(NamespaceURIs.XEP0045_MUC);
-        if(password != null) {
-            
stanzaBuilder.startInnerElement("password").addText(password).endInnerElement();
+        if(!oldProtocol) {
+            
stanzaBuilder.startInnerElement("x").addNamespaceAttribute(NamespaceURIs.XEP0045_MUC);
+            if(password != null) {
+                
stanzaBuilder.startInnerElement("password").addText(password).endInnerElement();
+            }
+            if(history != null) {
+                stanzaBuilder.addPreparedElement(history);
+            }
+            
+            stanzaBuilder.endInnerElement();
         }
-        if(history != null) {
-            stanzaBuilder.addPreparedElement(history);
-        }
-        
-        stanzaBuilder.endInnerElement();
         Stanza presenceStanza = stanzaBuilder.getFinalStanza();
         ResponseStanzaContainer container = handler.execute(presenceStanza, 
userSessionContext.getServerRuntimeContext(), true, userSessionContext, null);
         if(container != null) {
@@ -88,6 +90,21 @@
         assertEquals(OCCUPANT1_JID, occupant.getJid());
         assertEquals("nick", occupant.getName());
     }
+
+    public void testEnterWithGroupchatProtocol() throws Exception {
+        Room room = conference.findRoom(ROOM1_JID);
+        assertEquals(0, room.getOccupants().size());
+
+        // enter using the old groupchat protocol
+        enterRoom(OCCUPANT1_JID, ROOM1_JID_WITH_NICK, null, null, true);
+
+        assertEquals(1, room.getOccupants().size());
+        Occupant occupant = room.getOccupants().iterator().next();
+        
+        assertEquals(OCCUPANT1_JID, occupant.getJid());
+        assertEquals("nick", occupant.getName());
+    }
+
     
     public void testEnterRoomWithDuplicateNick() throws Exception {
         assertNull(enterRoom(OCCUPANT1_JID, ROOM1_JID_WITH_NICK));
@@ -123,7 +140,7 @@
         room.setPassword("secret");
 
         // no error should be returned
-        assertNull(enterRoom(OCCUPANT1_JID, ROOM2_JID_WITH_NICK, "secret", 
null));
+        assertNull(enterRoom(OCCUPANT1_JID, ROOM2_JID_WITH_NICK, "secret", 
null, false));
         assertEquals(1, room.getOccupants().size());
     }
     
@@ -203,7 +220,7 @@
                 new Occupant(OCCUPANT2_JID, "nick2", Affiliation.None, 
Role.Participant));
         
         // now, let user 1 enter room
-        enterRoom(OCCUPANT1_JID, ROOM1_JID_WITH_NICK, null, new History(2, 
null, null, null));
+        enterRoom(OCCUPANT1_JID, ROOM1_JID_WITH_NICK, null, new History(2, 
null, null, null), false);
 
         Stanza stanza = occupant1Queue.getNext();
         // first stanza should be room presence


Reply via email to