[telepathy-gabble/master] Our LocalPending reason is Invited in incoming calls

Will Thompson will.thompson at collabora.co.uk
Thu Mar 19 08:31:58 PDT 2009


This changes all the tests, which checked for the wrong reason.
---
 src/media-channel.c                               |    2 +-
 tests/twisted/jingle/google-relay.py              |    5 ++-
 tests/twisted/jingle/stream-handler-error.py      |    5 ++-
 tests/twisted/jingle/stun-server.py               |    4 ++-
 tests/twisted/jingle/test-content-complex.py      |    5 ++-
 tests/twisted/jingle/test-description-info.py     |    5 ++-
 tests/twisted/jingle/test-dialects-incoming.py    |    4 ++-
 tests/twisted/jingle/test-incoming-call-reject.py |    5 ++-
 tests/twisted/jingle/test-incoming-call.py        |   40 ++++++++++++---------
 9 files changed, 50 insertions(+), 25 deletions(-)

diff --git a/src/media-channel.c b/src/media-channel.c
index 7d22b6c..783889a 100644
--- a/src/media-channel.c
+++ b/src/media-channel.c
@@ -347,7 +347,7 @@ gabble_media_channel_constructor (GType type, guint n_props,
       tp_intset_add (set, ((TpBaseConnection *) priv->conn)->self_handle);
 
       tp_group_mixin_change_members (obj, "", NULL, NULL, set, NULL,
-          priv->session->peer, TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
+          priv->session->peer, TP_CHANNEL_GROUP_CHANGE_REASON_INVITED);
 
       tp_intset_destroy (set);
 
diff --git a/tests/twisted/jingle/google-relay.py b/tests/twisted/jingle/google-relay.py
index 3d32a25..e746eec 100644
--- a/tests/twisted/jingle/google-relay.py
+++ b/tests/twisted/jingle/google-relay.py
@@ -147,13 +147,16 @@ def test(q, bus, conn, stream, incoming=True, too_slow=False):
         # Remote end calls us
         jt.incoming_call()
 
+        # FIXME: these signals are not observable by real clients, since they
+        #        happen before NewChannels.
         # The caller is in members
         e = q.expect('dbus-signal', signal='MembersChanged',
                  args=[u'', [remote_handle], [], [], [], 0, 0])
 
         # We're pending because of remote_handle
         e = q.expect('dbus-signal', signal='MembersChanged',
-                 args=[u'', [], [], [1L], [], remote_handle, 0])
+                 args=[u'', [], [], [1L], [], remote_handle,
+                       cs.GC_REASON_INVITED])
 
         media_chan = make_channel_proxy(conn, tp_path_prefix + e.path,
             'Channel.Interface.Group')
diff --git a/tests/twisted/jingle/stream-handler-error.py b/tests/twisted/jingle/stream-handler-error.py
index 6712da7..0f6f73a 100644
--- a/tests/twisted/jingle/stream-handler-error.py
+++ b/tests/twisted/jingle/stream-handler-error.py
@@ -8,6 +8,7 @@ from gabbletest import exec_test
 from servicetest import make_channel_proxy, tp_path_prefix, EventPattern
 import jingletest
 
+import constants as cs
 
 def test(q, bus, conn, stream):
     jt = jingletest.JingleTest(stream, 'test at localhost', 'foo at bar.com/Foo')
@@ -21,13 +22,15 @@ def test(q, bus, conn, stream):
     # Remote end calls us
     jt.incoming_call()
 
+    # FIXME: these signals are not observable by real clients, since they
+    #        happen before NewChannels.
     # The caller is in members
     e = q.expect('dbus-signal', signal='MembersChanged',
              args=[u'', [remote_handle], [], [], [], 0, 0])
 
     # We're pending because of remote_handle
     e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [1L], [], remote_handle, 0])
+             args=[u'', [], [], [1L], [], remote_handle, cs.GC_REASON_INVITED])
 
     media_chan_suffix = e.path
 
diff --git a/tests/twisted/jingle/stun-server.py b/tests/twisted/jingle/stun-server.py
index cfd46c9..224f8f0 100644
--- a/tests/twisted/jingle/stun-server.py
+++ b/tests/twisted/jingle/stun-server.py
@@ -61,13 +61,15 @@ def test(q, bus, conn, stream,
     # Remote end calls us
     jt.incoming_call()
 
+    # FIXME: these signals are not observable by real clients, since they
+    #        happen before NewChannels.
     # The caller is in members
     e = q.expect('dbus-signal', signal='MembersChanged',
              args=[u'', [remote_handle], [], [], [], 0, 0])
 
     # We're pending because of remote_handle
     e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [1L], [], remote_handle, 0])
+             args=[u'', [], [], [1L], [], remote_handle, c.GC_REASON_INVITED])
 
     # S-E gets notified about new session handler, and calls Ready on it
     e = q.expect('dbus-signal', signal='NewSessionHandler')
diff --git a/tests/twisted/jingle/test-content-complex.py b/tests/twisted/jingle/test-content-complex.py
index ea077bf..3230ad1 100644
--- a/tests/twisted/jingle/test-content-complex.py
+++ b/tests/twisted/jingle/test-content-complex.py
@@ -47,13 +47,16 @@ def worker(jp, q, bus, conn, stream):
             jp.TransportGoogleP2P() ]) ]) ])
     stream.send(jp.xml(node))
 
+    # FIXME: these signals are not observable by real clients, since they
+    #        happen before NewChannels.
     # The caller is in members
     e = q.expect('dbus-signal', signal='MembersChanged',
              args=[u'', [remote_handle], [], [], [], 0, 0])
 
     # We're pending because of remote_handle
     e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [self_handle], [], remote_handle, 0])
+             args=[u'', [], [], [self_handle], [], remote_handle,
+                   cs.GC_REASON_INVITED])
 
     media_chan = make_channel_proxy(conn, tp_path_prefix + e.path, 'Channel.Interface.Group')
     signalling_iface = make_channel_proxy(conn, tp_path_prefix + e.path, 'Channel.Interface.MediaSignalling')
diff --git a/tests/twisted/jingle/test-description-info.py b/tests/twisted/jingle/test-description-info.py
index 7e3f23c..6be8a49 100644
--- a/tests/twisted/jingle/test-description-info.py
+++ b/tests/twisted/jingle/test-description-info.py
@@ -55,13 +55,16 @@ def test(q, bus, conn, stream):
             jp.TransportGoogleP2P() ]) ]) ])
     stream.send(jp.xml(node))
 
+    # FIXME: these signals are not observable by real clients, since they
+    #        happen before NewChannels.
     # The caller is in members
     e = q.expect('dbus-signal', signal='MembersChanged',
              args=[u'', [remote_handle], [], [], [], 0, 0])
 
     # We're pending because of remote_handle
     e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [self_handle], [], remote_handle, 0])
+             args=[u'', [], [], [self_handle], [], remote_handle,
+                   cs.GC_REASON_INVITED])
 
     media_chan = make_channel_proxy(conn, tp_path_prefix + e.path, 'Channel.Interface.Group')
     signalling_iface = make_channel_proxy(conn, tp_path_prefix + e.path, 'Channel.Interface.MediaSignalling')
diff --git a/tests/twisted/jingle/test-dialects-incoming.py b/tests/twisted/jingle/test-dialects-incoming.py
index d7d4cd1..1e5f556 100644
--- a/tests/twisted/jingle/test-dialects-incoming.py
+++ b/tests/twisted/jingle/test-dialects-incoming.py
@@ -37,13 +37,15 @@ def worker(jp, q, bus, conn, stream):
     # predicate to expect_racy() so it won't get the wrong event
     # q.flush_past_events()
 
+    # FIXME: these signals are not observable by real clients, since they
+    #        happen before NewChannels.
     # The caller is in members
     e = q.expect('dbus-signal', signal='MembersChanged',
              args=[u'', [remote_handle], [], [], [], 0, 0])
 
     # We're pending because of remote_handle
     e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [1L], [], remote_handle, 0])
+             args=[u'', [], [], [1L], [], remote_handle, cs.GC_REASON_INVITED])
 
     media_chan = make_channel_proxy(conn, tp_path_prefix + e.path, 'Channel.Interface.Group')
 
diff --git a/tests/twisted/jingle/test-incoming-call-reject.py b/tests/twisted/jingle/test-incoming-call-reject.py
index 9097c18..afa0481 100644
--- a/tests/twisted/jingle/test-incoming-call-reject.py
+++ b/tests/twisted/jingle/test-incoming-call-reject.py
@@ -47,13 +47,16 @@ def test(q, bus, conn, stream):
     # Remote end calls us
     jt.incoming_call()
 
+    # FIXME: these signals are not observable by real clients, since they
+    #        happen before NewChannels.
     # The caller is in members
     e = q.expect('dbus-signal', signal='MembersChanged',
              args=[u'', [remote_handle], [], [], [], 0, 0])
 
     # We're pending because of remote_handle
     e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [self_handle], [], remote_handle, 0])
+             args=[u'', [], [], [self_handle], [], remote_handle,
+                   cs.GC_REASON_INVITED])
 
     # S-E gets notified about new session handler, and calls Ready on it
     e = q.expect('dbus-signal', signal='NewSessionHandler')
diff --git a/tests/twisted/jingle/test-incoming-call.py b/tests/twisted/jingle/test-incoming-call.py
index 760a949..9788f8c 100644
--- a/tests/twisted/jingle/test-incoming-call.py
+++ b/tests/twisted/jingle/test-incoming-call.py
@@ -48,22 +48,20 @@ def test(q, bus, conn, stream):
     # Remote end calls us
     jt.incoming_call()
 
-    # The caller is in members
-    e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [remote_handle], [], [], [], 0, 0])
-
-    # We're pending because of remote_handle
-    e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [], [], [self_handle], [], remote_handle, 0])
-
-    path_suffix = e.path
-    media_chan = make_channel_proxy(conn, tp_path_prefix + path_suffix,
-        'Channel.Interface.Group')
-    media_iface = make_channel_proxy(conn, tp_path_prefix + path_suffix,
-        'Channel.Type.StreamedMedia')
-
-    # S-E gets notified about new session handler, and calls Ready on it
-    e = q.expect('dbus-signal', signal='NewSessionHandler')
+    nc, e = q.expect_many(
+        EventPattern('dbus-signal', signal='NewChannel'),
+        EventPattern('dbus-signal', signal='NewSessionHandler'),
+        )
+    path, ct, ht, h, _ = nc.args
+
+    assert ct == cs.CHANNEL_TYPE_STREAMED_MEDIA, ct
+    assert ht == cs.HT_CONTACT, ht
+    assert h == remote_handle, h
+
+    media_chan = make_channel_proxy(conn, path, 'Channel.Interface.Group')
+    media_iface = make_channel_proxy(conn, path, 'Channel.Type.StreamedMedia')
+
+    # S-E was notified about new session handler, and calls Ready on it
     assert e.args[1] == 'rtp'
     session_handler = make_channel_proxy(conn, e.args[0], 'Media.SessionHandler')
     session_handler.Ready()
@@ -107,6 +105,14 @@ def test(q, bus, conn, stream):
     assert not flags & cs.GF_CAN_REMOVE, flags
     assert not flags & cs.GF_CAN_RESCIND, flags
 
+    assert group_props['Members'] == [remote_handle], group_props['Members']
+    assert group_props['RemotePendingMembers'] == [], \
+        group_props['RemotePendingMembers']
+    # We're local pending because remote_handle invited us.
+    assert group_props['LocalPendingMembers'] == \
+        [(self_handle, remote_handle, cs.GC_REASON_INVITED, '')], \
+        unwrap(group_props['LocalPendingMembers'])
+
     streams = media_chan.ListStreams(
             dbus_interface=cs.CHANNEL_TYPE_STREAMED_MEDIA)
     assert len(streams) == 1, streams
@@ -165,7 +171,7 @@ def test(q, bus, conn, stream):
 
     # 'Nuff said
     jt.remote_terminate()
-    q.expect('dbus-signal', signal='Closed', path=path_suffix)
+    q.expect('dbus-signal', signal='Closed', path=path[len(tp_path_prefix):])
 
     conn.Disconnect()
     q.expect('dbus-signal', signal='StatusChanged', args=[2, 1])
-- 
1.5.6.5




More information about the telepathy-commits mailing list