[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