[telepathy-salut/master] test-caps-tubes.py: add generic tube capability

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Jun 26 08:07:58 PDT 2009


---
 tests/twisted/avahi/test-caps-tubes.py |  112 ++++++++++++++++++++-----------
 1 files changed, 72 insertions(+), 40 deletions(-)

diff --git a/tests/twisted/avahi/test-caps-tubes.py b/tests/twisted/avahi/test-caps-tubes.py
index 311ace2..48e55a9 100644
--- a/tests/twisted/avahi/test-caps-tubes.py
+++ b/tests/twisted/avahi/test-caps-tubes.py
@@ -68,6 +68,20 @@ ft_allowed_properties = dbus.Array([
     FT_DATE, FT_INITIAL_OFFSET
     ])
 
+stream_tube_fixed_properties = dbus.Dictionary({
+    TARGET_HANDLE_TYPE: HT_CONTACT,
+    CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE
+    })
+stream_tube_allowed_properties = dbus.Array([TARGET_HANDLE,
+    TARGET_ID, STREAM_TUBE_SERVICE])
+
+dbus_tube_fixed_properties = dbus.Dictionary({
+    TARGET_HANDLE_TYPE: HT_CONTACT,
+    CHANNEL_TYPE: CHANNEL_TYPE_DBUS_TUBE
+    })
+dbus_tube_allowed_properties = dbus.Array([TARGET_HANDLE,
+    TARGET_ID, DBUS_TUBE_SERVICE_NAME])
+
 daap_fixed_properties = dbus.Dictionary({
     'org.freedesktop.Telepathy.Channel.TargetHandleType': 1L,
     'org.freedesktop.Telepathy.Channel.ChannelType':
@@ -256,6 +270,35 @@ def test_tube_caps_from_contact(q, bus, conn, service,
     assert caps_via_contacts_iface == caps[contact_handle], \
             caps_via_contacts_iface
 
+    # send presence with generic tube capability
+    txt_record['ver'] = compute_caps_hash([], [ns.TUBES], [])
+    announcer.update(txt_record)
+
+    # Salut looks up our capabilities
+    event = q.expect('stream-iq', connection = incoming,
+        query_ns='http://jabber.org/protocol/disco#info')
+    query_node = xpath.queryForNodes('/iq/query', event.stanza)[0]
+    assert query_node.attributes['node'] == \
+        client + '#' + txt_record['ver']
+
+    # send good reply
+    result = make_result_iq(event.stanza)
+    query = result.firstChildElement()
+    query['node'] = client + '#' + txt_record['ver']
+    feature = query.addElement('feature')
+    feature['var'] = ns.TUBES
+    incoming.send(result)
+
+    # generic tubes capabilities
+    generic_tubes_caps = dbus.Dictionary({contact_handle:
+            [(text_fixed_properties, text_allowed_properties),
+             (stream_tube_fixed_properties, stream_tube_allowed_properties)]})
+    # FIXME: add D-Bus tube once implemented
+    #         (dbus_tube_fixed_properties, dbus_tube_allowed_properties)]})
+    event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
+    assert len(event.args) == 1
+    assert event.args[0] == generic_tubes_caps, generic_tubes_caps
+
     # send presence with 1 stream tube cap
     txt_record['ver'] = compute_caps_hash([], [ns.TUBES + '/stream#daap'], [])
     announcer.update(txt_record)
@@ -277,14 +320,13 @@ def test_tube_caps_from_contact(q, bus, conn, service,
 
     event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
     signaled_caps = event.args[0][contact_handle]
-    assert len(signaled_caps) == 2, signaled_caps # basic caps + daap
-    assert signaled_caps[1][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.StreamTube.Service'] \
-        == 'daap'
+    assert len(signaled_caps) == 3, signaled_caps # basic caps + daap
+    assert (daap_fixed_properties, daap_allowed_properties) in signaled_caps
 
     # daap capabilities
     daap_caps = dbus.Dictionary({contact_handle:
         [(text_fixed_properties, text_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties)]})
     caps = conn_caps_iface.GetContactCapabilities([contact_handle])
     assert caps == daap_caps, caps
@@ -319,14 +361,13 @@ def test_tube_caps_from_contact(q, bus, conn, service,
 
     event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
     signaled_caps = event.args[0][contact_handle]
-    assert len(signaled_caps) == 2, signaled_caps # basic caps + Xiangqi
-    assert signaled_caps[1][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.DBusTube.ServiceName'] \
-        == 'com.example.Xiangqi'
+    assert len(signaled_caps) == 3, signaled_caps # basic caps + Xiangqi
+    assert (xiangqi_fixed_properties, xiangqi_allowed_properties) in signaled_caps
 
     # xiangqi capabilities
     xiangqi_caps = dbus.Dictionary({contact_handle:
         [(text_fixed_properties, text_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
     caps = conn_caps_iface.GetContactCapabilities([contact_handle])
     assert caps == xiangqi_caps, caps
@@ -364,17 +405,14 @@ def test_tube_caps_from_contact(q, bus, conn, service,
 
     event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
     signaled_caps = event.args[0][contact_handle]
-    assert len(signaled_caps) == 3, signaled_caps # basic caps + daap+xiangqi
-    assert signaled_caps[1][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.StreamTube.Service'] \
-        == 'daap'
-    assert signaled_caps[2][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.DBusTube.ServiceName'] \
-        == 'com.example.Xiangqi'
+    assert len(signaled_caps) == 4, signaled_caps # basic caps + daap+xiangqi
+    assert (daap_fixed_properties, daap_allowed_properties) in signaled_caps
+    assert (xiangqi_fixed_properties, xiangqi_allowed_properties) in signaled_caps
 
     # daap + xiangqi capabilities
     daap_xiangqi_caps = dbus.Dictionary({contact_handle:
         [(text_fixed_properties, text_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties),
         (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
     caps = conn_caps_iface.GetContactCapabilities([contact_handle])
@@ -417,23 +455,16 @@ def test_tube_caps_from_contact(q, bus, conn, service,
 
     event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
     signaled_caps = event.args[0][contact_handle]
-    assert len(signaled_caps) == 5, signaled_caps # basic caps + 4 tubes
-    assert signaled_caps[1][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.StreamTube.Service'] \
-        == 'daap'
-    assert signaled_caps[2][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.StreamTube.Service'] \
-        == 'http'
-    assert signaled_caps[3][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.DBusTube.ServiceName'] \
-        == 'com.example.Xiangqi'
-    assert signaled_caps[4][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.DBusTube.ServiceName'] \
-        == 'com.example.Go'
+    assert len(signaled_caps) == 6, signaled_caps # basic caps + 4 tubes
+    assert (daap_fixed_properties, daap_allowed_properties) in signaled_caps
+    assert (http_fixed_properties, http_allowed_properties) in signaled_caps
+    assert (xiangqi_fixed_properties, xiangqi_allowed_properties) in signaled_caps
+    assert (go_fixed_properties, go_allowed_properties) in signaled_caps
 
     # http + daap + xiangqi + go capabilities
     all_tubes_caps = dbus.Dictionary({contact_handle:
         [(text_fixed_properties, text_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties),
         (http_fixed_properties, http_allowed_properties),
         (xiangqi_fixed_properties,
@@ -460,17 +491,14 @@ def test_tube_caps_from_contact(q, bus, conn, service,
 
     event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
     signaled_caps = event.args[0][contact_handle]
-    assert len(signaled_caps) == 3, signaled_caps # basic caps + daap+xiangqi
-    assert signaled_caps[1][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.StreamTube.Service'] \
-        == 'daap'
-    assert signaled_caps[2][0] \
-        ['org.freedesktop.Telepathy.Channel.Type.DBusTube.ServiceName'] \
-        == 'com.example.Xiangqi'
+    assert len(signaled_caps) == 4, signaled_caps # basic caps + daap+xiangqi
+    assert (daap_fixed_properties, daap_allowed_properties) in signaled_caps
+    assert (xiangqi_fixed_properties, xiangqi_allowed_properties) in signaled_caps
 
     # daap + xiangqi capabilities
     daap_xiangqi_caps = dbus.Dictionary({contact_handle:
         [(text_fixed_properties, text_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties),
         (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
     caps = conn_caps_iface.GetContactCapabilities([contact_handle])
@@ -492,19 +520,23 @@ def test_tube_caps_to_contact(q, bus, conn, service):
     daap_caps = dbus.Dictionary({1:
         [(text_fixed_properties, text_allowed_properties),
         (ft_fixed_properties, ft_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties)]})
     xiangqi_caps = dbus.Dictionary({1:
         [(text_fixed_properties, text_allowed_properties),
         (ft_fixed_properties, ft_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
     daap_xiangqi_caps = dbus.Dictionary({1:
         [(text_fixed_properties, text_allowed_properties),
         (ft_fixed_properties, ft_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties),
         (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
     all_tubes_caps = dbus.Dictionary({1:
         [(text_fixed_properties, text_allowed_properties),
         (ft_fixed_properties, ft_allowed_properties),
+        (stream_tube_fixed_properties, stream_tube_allowed_properties),
         (daap_fixed_properties, daap_allowed_properties),
         (http_fixed_properties, http_allowed_properties),
         (xiangqi_fixed_properties, xiangqi_allowed_properties),
@@ -577,7 +609,7 @@ def test_tube_caps_to_contact(q, bus, conn, service):
             == False, caps_str
     assert caps_contain(event, ns.TUBES + '/dbus#com.example.Xiangqi') \
             == False, caps_str
-    assert len(signaled_caps) == 3, signaled_caps # basic caps + daap
+    assert len(signaled_caps) == 4, signaled_caps # basic caps + daap
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
         STREAM_TUBE_SERVICE: 'daap'}, [TARGET_HANDLE]) in signaled_caps
 
@@ -604,7 +636,7 @@ def test_tube_caps_to_contact(q, bus, conn, service):
             == False, caps_str
     assert caps_contain(event, ns.TUBES + '/dbus#com.example.Xiangqi') \
             == True, caps_str
-    assert len(signaled_caps) == 3, signaled_caps # basic caps + daap
+    assert len(signaled_caps) == 4, signaled_caps # basic caps + daap
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_DBUS_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
         DBUS_TUBE_SERVICE_NAME: 'com.example.Xiangqi'}, [TARGET_HANDLE]) in signaled_caps
 
@@ -631,7 +663,7 @@ def test_tube_caps_to_contact(q, bus, conn, service):
             == False, caps_str
     assert caps_contain(event, ns.TUBES + '/dbus#com.example.Xiangqi') \
             == True, caps_str
-    assert len(signaled_caps) == 4, signaled_caps # basic caps + daap+xiangqi
+    assert len(signaled_caps) == 5, signaled_caps # basic caps + daap+xiangqi
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
         STREAM_TUBE_SERVICE: 'daap'}, [TARGET_HANDLE]) in signaled_caps
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_DBUS_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
@@ -661,7 +693,7 @@ def test_tube_caps_to_contact(q, bus, conn, service):
             == True, caps_str
     assert caps_contain(event, ns.TUBES + '/dbus#com.example.Xiangqi') \
             == True, caps_str
-    assert len(signaled_caps) == 6, signaled_caps # basic caps + 4 tubes
+    assert len(signaled_caps) == 7, signaled_caps # basic caps + 4 tubes
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
         STREAM_TUBE_SERVICE: 'daap'}, [TARGET_HANDLE]) in signaled_caps
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_DBUS_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
@@ -694,7 +726,7 @@ service)
             == False, caps_str
     assert caps_contain(event, ns.TUBES + '/dbus#com.example.Xiangqi') \
             == True, caps_str
-    assert len(signaled_caps) == 4, signaled_caps # basic caps + daap+xiangqi
+    assert len(signaled_caps) == 5, signaled_caps # basic caps + daap+xiangqi
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_STREAM_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
         STREAM_TUBE_SERVICE: 'daap'}, [TARGET_HANDLE]) in signaled_caps
     assert ({CHANNEL_TYPE: CHANNEL_TYPE_DBUS_TUBE, TARGET_HANDLE_TYPE: HT_CONTACT,
-- 
1.5.6.5



More information about the telepathy-commits mailing list