[telepathy-salut/master] test-caps-file-transfer: test contact without FT capa

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Wed Apr 1 04:10:40 PDT 2009


---
 tests/twisted/avahi/test-caps-file-transfer.py |   45 +++++++++++++++++++++++-
 1 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/tests/twisted/avahi/test-caps-file-transfer.py b/tests/twisted/avahi/test-caps-file-transfer.py
index aa62109..d1c2c7f 100644
--- a/tests/twisted/avahi/test-caps-file-transfer.py
+++ b/tests/twisted/avahi/test-caps-file-transfer.py
@@ -148,7 +148,50 @@ def test_ft_caps_from_contact(q, bus, conn, client):
             [contact_handle][CONN_IFACE_CONTACT_CAPA + '/caps']
     assert caps_via_contacts_iface == caps, caps_via_contacts_iface
 
-    # TODO: capa announced without FT
+
+    # capa announced without FT
+    ver = compute_caps_hash([], ["http://telepathy.freedesktop.org/xmpp/pony"], [])
+    txt_record = { "txtvers": "1", "status": "avail",
+        "node": client, "ver": ver, "hash": "sha-1"}
+    contact_name = "test-caps-ft2@" + get_host_name()
+    listener, port = setup_stream_listener(q, contact_name)
+    announcer = AvahiAnnouncer(contact_name, "_presence._tcp", port,
+            txt_record)
+
+    # this is the first presence, Salut connects to the contact
+    e = q.expect('incoming-connection', listener = listener)
+    incoming = e.connection
+
+    # 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 + '#' + ver, (query_node.attributes['node'], client, ver)
+
+    contact_handle = conn.RequestHandles(HT_CONTACT, [contact_name])[0]
+
+    # send good reply
+    result = make_result_iq(event.stanza)
+    query = result.firstChildElement()
+    query['node'] = client + '#' + ver
+
+    feature = query.addElement('feature')
+    feature['var'] = "http://telepathy.freedesktop.org/xmpp/pony"
+    incoming.send(result)
+
+    # the FT capability is not announced
+    e = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
+    caps = e.args[0][contact_handle]
+    assert ({CHANNEL_TYPE: CHANNEL_TYPE_FILE_TRANSFER,
+             TARGET_HANDLE_TYPE: HT_CONTACT},
+            [TARGET_HANDLE, TARGET_ID, FT_CONTENT_TYPE, FT_FILENAME, FT_SIZE,
+                FT_CONTENT_HASH_TYPE, FT_CONTENT_HASH, FT_DESCRIPTION,
+                FT_DATE, FT_INITIAL_OFFSET]) not in caps
+
+    caps_get = conn_caps_iface.GetContactCapabilities([contact_handle])[contact_handle]
+    assert caps == caps_get
+
     # TODO: no capabilites announced (assume FT is supported)
 
 def test(q, bus, conn):
-- 
1.5.6.5




More information about the telepathy-commits mailing list