[Telepathy-commits] [telepathy-salut/master] test-two-muc-stream-tubes.py: start to test new tube API
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Wed Mar 11 09:15:27 PDT 2009
---
tests/twisted/avahi/test-two-muc-stream-tubes.py | 54 +++++++++++++++++++++-
1 files changed, 53 insertions(+), 1 deletions(-)
diff --git a/tests/twisted/avahi/test-two-muc-stream-tubes.py b/tests/twisted/avahi/test-two-muc-stream-tubes.py
index bb7f249..c33e5b1 100644
--- a/tests/twisted/avahi/test-two-muc-stream-tubes.py
+++ b/tests/twisted/avahi/test-two-muc-stream-tubes.py
@@ -8,7 +8,7 @@ import errno
import string
from xmppstream import setup_stream_listener, connect_to_stream
-from servicetest import make_channel_proxy, Event
+from servicetest import make_channel_proxy, Event, call_async
from twisted.words.xish import xpath, domish
from twisted.internet.protocol import Factory, Protocol, ClientCreator
@@ -25,6 +25,7 @@ sample_parameters = dbus.Dictionary({
test_string = "This string travels on a tube !"
muc_name = "test-two-muc-stream-tubes"
+muc2_name = "test-two-muc-stream-tubes-2"
SERVER_WELCOME_MSG = "Welcome!"
@@ -264,6 +265,57 @@ def test(q, bus, conn):
contact2_tubes_channel.CloseTube(conn2_tube_id)
q.expect('dbus-signal', signal='TubeClosed', args=[conn2_tube_id])
+ # Now contact1 will create a new muc stream tube to another room using the
+ # new API
+
+ # Can we request muc stream tubes?
+ properties = conn.GetAll(CONN_IFACE_REQUESTS, dbus_interface=PROPERTIES_IFACE)
+
+ assert ({CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE,
+ TARGET_HANDLE_TYPE: HT_ROOM},
+ [TARGET_HANDLE, TARGET_ID, TUBE_PARAMETERS, STREAM_TUBE_SERVICE]
+ ) in properties.get('RequestableChannelClasses'),\
+ properties['RequestableChannelClasses']
+
+ # request a stream tube channel (new API)
+ requestotron = dbus.Interface(conn, CONN_IFACE_REQUESTS)
+
+ call_async(q, requestotron, 'CreateChannel', {
+ CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE,
+ TARGET_HANDLE_TYPE: HT_ROOM,
+ TARGET_ID: muc2_name,
+ STREAM_TUBE_SERVICE: 'test',
+ TUBE_PARAMETERS: sample_parameters})
+
+ e = q.expect('dbus-signal', signal='NewChannels')
+ channels = e.args[0]
+ assert len(channels) == 3
+
+ got_text, got_tubes, got_tube = False, False, False
+ for path, props in channels:
+ if props[CHANNEL_TYPE] == CHANNEL_TYPE_TEXT:
+ got_text = True
+ assert props[REQUESTED] == False
+ elif props[CHANNEL_TYPE] == CHANNEL_TYPE_TUBES:
+ got_tubes = True
+ assert props[REQUESTED] == False
+ #assert props[INTERFACES] == CHANNEL_IFACE_GROUP
+ elif props[CHANNEL_TYPE] == CHANNEL_TYPE_STREAM_TUBE:
+ got_tube = True
+ assert props[REQUESTED] == True
+ #assert props[INTERFACES] == CHANNEL_IFACE_GROUP
+ assert props[STREAM_TUBE_SERVICE] == 'test'
+ else:
+ assert False
+
+ assert props[INITIATOR_HANDLE] == conn1_self_handle
+ assert props[INITIATOR_ID] == contact1_name
+ assert props[TARGET_ID] == muc2_name
+
+ assert got_text
+ assert got_tubes
+ assert got_tube
+
conn.Disconnect()
conn2.Disconnect()
--
1.5.6.5
More information about the telepathy-commits
mailing list