[Telepathy-commits] [telepathy-gabble/master] don't add Gadget's inspector to muc's members list

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Sep 26 10:02:39 PDT 2008


20080722125846-7fe3f-1592f26b81a3d1690318f134ff461339563766ad.gz
---
 src/muc-channel.c                   |    9 +++++++++
 tests/twisted/olpc/gadget-invite.py |   20 ++++++++++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/src/muc-channel.c b/src/muc-channel.c
index 1b491d9..aff8dd6 100644
--- a/src/muc-channel.c
+++ b/src/muc-channel.c
@@ -1874,6 +1874,15 @@ _gabble_muc_channel_member_presence_updated (GabbleMucChannel *chan,
   affil = lm_message_node_get_attribute (item_node, "affiliation");
   owner_jid = lm_message_node_get_attribute (item_node, "jid");
 
+  /* We special case OLPC Gadget as activities doesn't have to see it as
+   * a member of the room. */
+  if (owner_jid != NULL &&
+      !tp_strdiff (owner_jid, priv->conn->olpc_gadget_activity))
+    {
+      DEBUG ("Don't add Gadget's inspector as member");
+      return;
+    }
+
   /* update channel members according to presence */
   set = tp_intset_new ();
   tp_intset_add (set, handle);
diff --git a/tests/twisted/olpc/gadget-invite.py b/tests/twisted/olpc/gadget-invite.py
index ceba617..45d1ba3 100644
--- a/tests/twisted/olpc/gadget-invite.py
+++ b/tests/twisted/olpc/gadget-invite.py
@@ -4,7 +4,7 @@ test gadget invitation when an activity becomes public
 
 import dbus
 
-from servicetest import call_async, EventPattern
+from servicetest import call_async, EventPattern, sync_dbus
 from gabbletest import exec_test, make_result_iq, acknowledge_iq, sync_stream
 
 from twisted.words.xish import domish, xpath
@@ -117,8 +117,24 @@ def test(q, bus, conn, stream):
     event = q.expect('stream-iq')
     acknowledge_iq(stream, event.stanza)
 
-
     event = q.expect('dbus-return', method='SetProperties')
 
+    # Gadget joins the room
+    presence = domish.Element((None, 'presence'))
+    presence['from'] = 'myroom at conference.localhost/inspector'
+    x = presence.addElement(('http://jabber.org/protocol/muc#user', 'x'))
+    item = x.addElement('item')
+    item['jid'] = 'gadget.localhost'
+    item['affiliation'] = 'none'
+    item['role'] = 'participant'
+    stream.send(presence)
+
+    muc = bus.get_object(conn.bus_name, room_path)
+    muc_group = dbus.Interface(muc, "org.freedesktop.Telepathy.Channel.Interface.Group")
+
+    sync_stream(q, stream)
+    members = muc_group.GetMembers()
+    assert conn.InspectHandles(1, members) == ['myroom at conference.localhost/test']
+
 if __name__ == '__main__':
     exec_test(test)
-- 
1.5.6.5




More information about the Telepathy-commits mailing list