[Telepathy-commits] [telepathy-gabble/master] call gabble_presence_cache_contacts_removed_from_olpc_view when view is closed

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Thu Oct 16 10:20:22 PDT 2008


---
 src/olpc-view.c                     |    3 +++
 tests/twisted/olpc/view-presence.py |   27 ++++++++++++++++++---------
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/olpc-view.c b/src/olpc-view.c
index fc83f0c..db9eb41 100644
--- a/src/olpc-view.c
+++ b/src/olpc-view.c
@@ -543,6 +543,9 @@ do_close (GabbleOlpcView *self,
 
   lm_message_unref (msg);
 
+  gabble_presence_cache_contacts_removed_from_olpc_view (
+      self->conn->presence_cache, priv->buddies);
+
   /* Claim that all the buddies left their activities */
   tp_handle_set_foreach (priv->buddies,
       (TpHandleSetMemberFunc) buddy_left_activities_foreach, self);
diff --git a/tests/twisted/olpc/view-presence.py b/tests/twisted/olpc/view-presence.py
index 4b68a5b..3087935 100644
--- a/tests/twisted/olpc/view-presence.py
+++ b/tests/twisted/olpc/view-presence.py
@@ -30,12 +30,6 @@ tp_name_prefix = 'org.freedesktop.Telepathy'
 olpc_name_prefix = 'org.laptop.Telepathy'
 
 def send_presence(stream, from_, type, msg):
-    #presence = domish.Element((None, 'presence'))
-    #presence['from'] = from_
-    #show = presence.addElement((None, 'show'))
-    #show.addContent(type)
-    #status = presence.addElement((None, 'status'))
-    #status.addContent(msg)
     presence = elem('presence', from_=from_)(
         elem('show')(unicode(type)),
         elem('status')(unicode(msg)))
@@ -76,8 +70,8 @@ def test(q, bus, conn, stream):
         EventPattern('dbus-signal', signal='PresenceUpdate'))
 
     handles = {}
-    handles['bob'], handles['charles'], handles['damien'] = conn.RequestHandles(1, ['bob at localhost', 'charles at localhost',
-        'damien at localhost'])
+    handles['bob'], handles['charles'], handles['damien'], handles['eric'] = conn.RequestHandles(1,
+        ['bob at localhost', 'charles at localhost', 'damien at localhost', 'eric at localhost'])
 
     presence = event.args[0]
     # Connection_Presence_Type_Busy = 6
@@ -113,6 +107,8 @@ def test(q, bus, conn, stream):
     buddy['jid'] = 'bob at localhost'
     buddy = view.addElement((None, "buddy"))
     buddy['jid'] = 'damien at localhost'
+    buddy = view.addElement((None, "buddy"))
+    buddy['jid'] = 'eric at localhost'
     stream.send(reply)
 
     view_path = return_event.value[0]
@@ -125,10 +121,11 @@ def test(q, bus, conn, stream):
 
     # Only Bob and Damien presences are changed as we received a presence from Charles
     presence = event.args[0]
-    assert len(presence) == 2
+    assert len(presence) == 3
     # Connection_Presence_Type_Available = 2
     assert presence[handles['bob']] == (2, 'available', '')
     assert presence[handles['damien']] == (2, 'available', '')
+    assert presence[handles['eric']] == (2, 'available', '')
 
     # Charles's presence didn't change
     presence = simple_presence_iface.GetPresences([handles['charles']])
@@ -176,5 +173,17 @@ def test(q, bus, conn, stream):
     presence = simple_presence_iface.GetPresences([handles['damien']])
     assert presence[handles['damien']] == (3, 'away', 'Watching pr0n')
 
+    # close view 1
+    view1.Close(dbus_interface='org.freedesktop.Telepathy.Channel')
+
+    # Eric's presence is changed as it's not in the view anymore
+    event, _ = q.expect_many(
+        EventPattern('dbus-signal', signal='PresencesChanged'),
+        EventPattern('dbus-signal', signal='PresenceUpdate'))
+
+    presence = event.args[0]
+    # Connection_Presence_Type_Unknown = 7
+    assert presence[handles['eric']] == (7, 'unknown', '')
+
 if __name__ == '__main__':
     exec_test(test)
-- 
1.5.6.5




More information about the Telepathy-commits mailing list