[telepathy-salut/master] check if Salut advertise OOB features
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Wed Apr 1 04:10:42 PDT 2009
---
tests/twisted/avahi/test-caps-file-transfer.py | 31 ++++++++++++++----------
1 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/tests/twisted/avahi/test-caps-file-transfer.py b/tests/twisted/avahi/test-caps-file-transfer.py
index 7deeeea..f8f4af5 100644
--- a/tests/twisted/avahi/test-caps-file-transfer.py
+++ b/tests/twisted/avahi/test-caps-file-transfer.py
@@ -16,9 +16,10 @@ results.
import dbus
-from avahitest import AvahiAnnouncer
+from avahitest import AvahiAnnouncer, AvahiListener
from avahitest import get_host_name
from avahitest import txt_get_key
+import avahi
from twisted.words.xish import xpath
@@ -35,14 +36,10 @@ from config import PACKAGE_STRING
# modified caps has already be announced.
old_ver = ''
-def receive_presence_and_ask_caps(q, stream, service):
+def receive_presence_and_ask_caps(q, stream, service, contact_name):
global old_ver
- event_avahi, event_dbus = q.expect_many(
- EventPattern('service-resolved', service=service),
- EventPattern('dbus-signal', signal='ContactCapabilitiesChanged')
- )
- signaled_caps = event_dbus.args[0][1]
+ event_avahi = q.expect('service-resolved', service=service)
ver = txt_get_key(event_avahi.txt, "ver")
while ver == old_ver:
@@ -57,7 +54,7 @@ def receive_presence_and_ask_caps(q, stream, service):
# ask caps
request = """
-<iq from='fake_contact at jabber.org/resource'
+<iq from='""" + contact_name + """'
id='disco1'
to='salut at jabber.org/resource'
type='get'>
@@ -78,8 +75,8 @@ def receive_presence_and_ask_caps(q, stream, service):
# Check if the hash matches the announced capabilities
assert ver == compute_caps_hash(['client/pc//%s' % PACKAGE_STRING], features, [])
-
- return (event, caps_str, signaled_caps)
+ assert ns.X_OOB in features
+ assert ns.IQ_OOB in features
def caps_contain(event, cap):
node = xpath.queryForNodes('/iq/query/feature[@var="%s"]'
@@ -148,6 +145,17 @@ 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
+ # check if Salut announces the OOB capa
+ self_handle = conn.GetSelfHandle()
+ self_handle_name = conn.InspectHandles(HT_CONTACT, [self_handle])[0]
+
+ AvahiListener(q).listen_for_service("_presence._tcp")
+ e = q.expect('service-added', name = self_handle_name,
+ protocol = avahi.PROTO_INET)
+ service = e.service
+ service.resolve()
+
+ receive_presence_and_ask_caps(q, incoming, service, contact_name)
# capa announced without FT
ver = compute_caps_hash([], ["http://telepathy.freedesktop.org/xmpp/pony"], [])
@@ -231,10 +239,7 @@ def test(q, bus, conn):
conn.Connect()
q.expect('dbus-signal', signal='StatusChanged', args=[0, 0])
- # TODO: check if Salut advertise the OOB caps
-
client = 'http://telepathy.freedesktop.org/fake-client'
-
test_ft_caps_from_contact(q, bus, conn, client)
conn.Disconnect()
--
1.5.6.5
More information about the telepathy-commits
mailing list