[Telepathy-commits] [telepathy-gabble/master] accept-muc-stream-tube-ibb.py: check new tube API

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon Jan 19 07:08:44 PST 2009


---
 tests/twisted/tubes/accept-muc-stream-tube-ibb.py |   48 ++++++++++++++++++--
 1 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/tests/twisted/tubes/accept-muc-stream-tube-ibb.py b/tests/twisted/tubes/accept-muc-stream-tube-ibb.py
index 1b8c696..b4b9421 100644
--- a/tests/twisted/tubes/accept-muc-stream-tube-ibb.py
+++ b/tests/twisted/tubes/accept-muc-stream-tube-ibb.py
@@ -9,6 +9,8 @@ from gabbletest import exec_test, make_result_iq, acknowledge_iq
 from twisted.words.xish import domish, xpath
 from twisted.internet import reactor
 from twisted.words.protocols.jabber.client import IQ
+# FIXME: use everywhere
+from constants import *
 
 sample_parameters = dbus.Dictionary({
     's': 'hello',
@@ -117,12 +119,22 @@ def test(q, bus, conn, stream):
 
     stream.send(presence)
 
-    # tubes channel is automatically created
-    event = q.expect('dbus-signal', signal='NewChannel')
+    # text channel
+    event, new_event = q.expect_many(
+        EventPattern('dbus-signal', signal='NewChannel'),
+        EventPattern('dbus-signal', signal='NewChannels'))
+
+    assert event.args[1] == CHANNEL_TYPE_TEXT, event.args
+
+    channels = new_event.args[0]
+    assert len(channels) == 1
+    path, props = channels[0]
+    assert props[CHANNEL_TYPE] == CHANNEL_TYPE_TEXT
 
-    if event.args[1] == 'org.freedesktop.Telepathy.Channel.Type.Text':
-        # skip this one, try the next one
-        event = q.expect('dbus-signal', signal='NewChannel')
+    # tubes channel is automatically created
+    event, new_event = q.expect_many(
+        EventPattern('dbus-signal', signal='NewChannel'),
+        EventPattern('dbus-signal', signal='NewChannels'))
 
     assert event.args[1] == 'org.freedesktop.Telepathy.Channel.Type.Tubes',\
         event.args
@@ -140,6 +152,11 @@ def test(q, bus, conn, stream):
     assert channel_props['InitiatorID'] == ''
     assert channel_props['InitiatorHandle'] == 0
 
+    channels = new_event.args[0]
+    assert len(channels) == 1
+    path, props = channels[0]
+    assert props[CHANNEL_TYPE] == CHANNEL_TYPE_TUBES
+
     tubes_self_handle = tubes_chan.GetSelfHandle(
         dbus_interface=tp_name_prefix + '.Channel.Interface.Group')
 
@@ -156,6 +173,27 @@ def test(q, bus, conn, stream):
         0,      # local pending
         )]
 
+    # tube channel is also announced (new API)
+    new_event = q.expect('dbus-signal', signal='NewChannels')
+
+    channels = new_event.args[0]
+    assert len(channels) == 1
+    path, props = channels[0]
+    assert props[CHANNEL_TYPE] == CHANNEL_TYPE_STREAM_TUBE
+    assert props[INITIATOR_HANDLE] == bob_handle
+    assert props[INITIATOR_ID] == 'chat at conf.localhost/bob'
+    assert props[INTERFACES] == [CHANNEL_IFACE_GROUP, CHANNEL_IFACE_TUBE]
+    assert props[REQUESTED] == False
+    assert props[TARGET_HANDLE] == room_handle
+    assert props[TARGET_ID] == 'chat at conf.localhost'
+    assert props[STREAM_TUBE_SERVICE] == 'echo'
+
+    tube_chan = bus.get_object(conn.bus_name, path)
+    tube_props = tube_chan.GetAll(CHANNEL_IFACE_TUBE, dbus_interface=PROPERTIES_IFACE,
+        byte_arrays=True)
+    assert tube_props['Parameters'] == sample_parameters
+    assert tube_props['Status'] == TUBE_CHANNEL_STATE_LOCAL_PENDING
+
     # Accept the tube
     call_async(q, tubes_iface, 'AcceptStreamTube', stream_tube_id, 0, 0, '',
             byte_arrays=True)
-- 
1.5.6.5




More information about the Telepathy-commits mailing list