[Telepathy-commits] [telepathy-gabble/master] Stop using the workaround for bug #17329
Alban Crequy
alban.crequy at collabora.co.uk
Fri Dec 5 09:42:39 PST 2008
- Update the spec in extensions/:
There was a bug in dbus-glib that prevent to use the right type:
Instead of a{ua(a{sv}as)}, we used a(ua{sv}as) as a workaround.
See http://bugs.freedesktop.org/show_bug.cgi?id=17329
Now there is a fix, so we don't use the workaround anymore.
- Update the implementation for the new spec
- Update the unit test
---
.../Connection_Interface_Contact_Capabilities.xml | 46 ++++--
src/connection.c | 14 +-
src/im-factory.c | 5 +-
src/private-tubes-factory.c | 5 +-
tests/twisted/test-caps-tubes.py | 176 ++++++++++----------
5 files changed, 136 insertions(+), 110 deletions(-)
diff --git a/extensions/Connection_Interface_Contact_Capabilities.xml b/extensions/Connection_Interface_Contact_Capabilities.xml
index 22edfa3..4d1d632 100644
--- a/extensions/Connection_Interface_Contact_Capabilities.xml
+++ b/extensions/Connection_Interface_Contact_Capabilities.xml
@@ -79,8 +79,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<p>The handle zero MUST NOT be included in the request.</p>
</tp:docstring>
</arg>
- <arg direction="out" type="a(ua{sv}as)"
- tp:type="Enhanced_Contact_Capability[]">
+ <!-- There was a bug in dbus-glib that prevent to use the right type:
+ Instead of a{ua(a{sv}as)}, we used a(ua{sv}as) as a workaround.
+ See http://bugs.freedesktop.org/show_bug.cgi?id=17329
+ Now there is a fix, so we don't use the workaround anymore.
+ -->
+ <arg direction="out" type="a{ua(a{sv}as)}"
+ tp:type="Contact_Handle_Enhanced_Contact_Capability_Map">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
An array of structures containing:
<ul>
@@ -104,7 +109,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<signal name="ContactCapabilitiesChanged"
tp:name-for-bindings="Contact_Capabilities_Changed">
- <arg name="caps" type="a(ua{sv}as)" tp:type="Enhanced_Contact_Capability[]">
+ <arg name="handle" type="u" tp:type="Contact_Handle">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A contact handle.</p>
+ </tp:docstring>
+ </arg>
+ <arg name="caps" type="a(a{sv}as)"
+ tp:type="Enhanced_Contact_Capability[]">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
All the capabilities of the contact
</tp:docstring>
@@ -115,7 +126,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:docstring>
</signal>
- <tp:struct name="Enhanced_Contact_Capability" array-name="Enhanced_Contact_Capability_List">
+ <tp:struct name="Enhanced_Contact_Capability"
+ array-name="Enhanced_Contact_Capability_List">
<tp:docstring>
A struct representing a capability posessed by a contact,
as returned by GetContactCapabilities on the ContactCapabilities
@@ -125,7 +137,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
the request contains a property which does not belong to
Fixed_Properties nor to Allowed_Properties, the request will fail.
</tp:docstring>
- <tp:member type="u" tp:type="Contact_Handle" name="Handle"/>
<tp:member type="a{sv}" tp:type="Channel_Class"
name="Fixed_Properties">
<tp:docstring>
@@ -139,15 +150,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:member>
</tp:struct>
- <tp:struct name="Contact_Capability_Change" array-name="Contact_Capability_Change_List">
- <tp:docstring>A struct representing a change to one of a contact's capabilities, as
- seen in the ContactCapabilitiesChanged signal on the ContactCapabilities
- interface.</tp:docstring>
- <tp:member type="a(ua{sv}as)" tp:type="Enhanced_Contact_Capability[]"
- name="Removed_Capabilities"/>
- <tp:member type="a(ua{sv}as)" tp:type="Enhanced_Contact_Capability[]"
- name="Added_Capabilities"/>
- </tp:struct>
+ <tp:mapping name="Contact_Handle_Enhanced_Contact_Capability_Map"
+ array-name="Contact_Handle_Enhanced_Contact_Capability_Map_List">
+ <tp:docstring>A mapping from contact handle to their capabilities.
+ </tp:docstring>
+ <tp:member type="u" name="Key" tp:type="Contact_Handle">
+ <tp:docstring>
+ A contact handle.
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="a(a{sv}as)" name="Value"
+ tp:type="Enhanced_Contact_Capability[]">
+ <tp:docstring>
+ The contact capabilities.
+ </tp:docstring>
+ </tp:member>
+ </tp:mapping>
</interface>
</node>
diff --git a/src/connection.c b/src/connection.c
index 571da2f..5c2500b 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -2233,7 +2233,7 @@ _emit_contact_capabilities_changed (GabbleConnection *conn,
gabble_connection_get_handle_contact_capabilities (conn, handle, ret);
gabble_svc_connection_interface_contact_capabilities_emit_contact_capabilities_changed (
- conn, ret);
+ conn, handle, ret);
gabble_free_enhanced_contact_capabilities (ret);
}
@@ -2665,7 +2665,7 @@ gabble_connection_get_contact_capabilities (
TpHandleRepoIface *contact_handles = tp_base_connection_get_handles (base,
TP_HANDLE_TYPE_CONTACT);
guint i;
- GPtrArray *ret;
+ GHashTable *ret;
GError *error = NULL;
TP_BASE_CONNECTION_ERROR_IF_NOT_CONNECTED (base, context);
@@ -2677,19 +2677,23 @@ gabble_connection_get_contact_capabilities (
return;
}
- ret = g_ptr_array_new ();
+ ret = g_hash_table_new_full (NULL, NULL, NULL,
+ (GDestroyNotify) gabble_free_enhanced_contact_capabilities);
for (i = 0; i < handles->len; i++)
{
+ GPtrArray *arr = g_ptr_array_new ();
TpHandle handle = g_array_index (handles, TpHandle, i);
- gabble_connection_get_handle_contact_capabilities (self, handle, ret);
+ gabble_connection_get_handle_contact_capabilities (self, handle, arr);
+
+ g_hash_table_insert (ret, GINT_TO_POINTER (handle), arr);
}
gabble_svc_connection_interface_contact_capabilities_return_from_get_contact_capabilities
(context, ret);
- gabble_free_enhanced_contact_capabilities (ret);
+ g_hash_table_destroy (ret);
}
diff --git a/src/im-factory.c b/src/im-factory.c
index 5ef8576..d1bd914 100644
--- a/src/im-factory.c
+++ b/src/im-factory.c
@@ -497,9 +497,8 @@ gabble_im_factory_get_contact_caps (GabbleCapsChannelManager *manager,
target_handle_type_value);
dbus_g_type_struct_set (&monster,
- 0, handle,
- 1, fixed_properties,
- 2, text_allowed_properties,
+ 0, fixed_properties,
+ 1, text_allowed_properties,
G_MAXUINT);
g_hash_table_destroy (fixed_properties);
diff --git a/src/private-tubes-factory.c b/src/private-tubes-factory.c
index 21ee599..b805f71 100644
--- a/src/private-tubes-factory.c
+++ b/src/private-tubes-factory.c
@@ -445,9 +445,8 @@ add_service_to_array (gchar *service,
target_handle_type_value);
dbus_g_type_struct_set (&monster,
- 0, handle,
- 1, fixed_properties,
- 2, tube_allowed_properties,
+ 0, fixed_properties,
+ 1, tube_allowed_properties,
G_MAXUINT);
g_hash_table_destroy (fixed_properties);
diff --git a/tests/twisted/test-caps-tubes.py b/tests/twisted/test-caps-tubes.py
index a344247..014e0b0 100644
--- a/tests/twisted/test-caps-tubes.py
+++ b/tests/twisted/test-caps-tubes.py
@@ -128,7 +128,8 @@ def receive_presence_and_ask_caps(q, stream):
EventPattern('stream-presence'),
EventPattern('dbus-signal', signal='ContactCapabilitiesChanged')
)
- signaled_caps = event_dbus.args[0]
+ assert event_dbus.args[0] == 1
+ signaled_caps = event_dbus.args[1]
c_nodes = xpath.queryForNodes('/presence/c', event_stream.stanza)
assert c_nodes is not None
@@ -207,8 +208,8 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
sync_stream(q, stream)
# no special capabilities
- basic_caps = [(contact_handle, text_fixed_properties,
- text_allowed_properties)]
+ basic_caps = dbus.Dictionary({contact_handle:
+ [(text_fixed_properties, text_allowed_properties)]})
caps = conn_caps_iface.GetContactCapabilities([contact_handle])
assert caps == basic_caps, caps
# test again, to check GetContactCapabilities does not have side effect
@@ -218,7 +219,8 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[contact_handle], [caps_iface], False) \
[contact_handle][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[contact_handle], \
+ caps_via_contacts_iface
# send presence with 1 stream tube cap
presence = make_presence(contact, None, 'hello')
@@ -244,16 +246,17 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
stream.send(result)
event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
- signaled_caps = event.args[0]
+ assert event.args[0] == contact_handle
+ signaled_caps = event.args[1]
assert len(signaled_caps) == 2, signaled_caps # basic caps + daap
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
# daap capabilities
- daap_caps = [
- (contact_handle, text_fixed_properties, text_allowed_properties),
- (contact_handle, daap_fixed_properties, daap_allowed_properties)]
+ daap_caps = dbus.Dictionary({contact_handle:
+ [(text_fixed_properties, text_allowed_properties),
+ (daap_fixed_properties, daap_allowed_properties)]})
caps = conn_caps_iface.GetContactCapabilities([contact_handle])
assert caps == daap_caps, caps
# test again, to check GetContactCapabilities does not have side effect
@@ -263,7 +266,8 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[contact_handle], [caps_iface], False) \
[contact_handle][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[contact_handle], \
+ caps_via_contacts_iface
# send presence with 1 D-Bus tube cap
presence = make_presence(contact, None, 'hello')
@@ -289,16 +293,17 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
stream.send(result)
event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
- signaled_caps = event.args[0]
+ assert event.args[0] == contact_handle
+ signaled_caps = event.args[1]
assert len(signaled_caps) == 2, signaled_caps # basic caps + Xiangqi
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
# xiangqi capabilities
- xiangqi_caps = [
- (contact_handle, text_fixed_properties, text_allowed_properties),
- (contact_handle, xiangqi_fixed_properties, xiangqi_allowed_properties)]
+ xiangqi_caps = dbus.Dictionary({contact_handle:
+ [(text_fixed_properties, text_allowed_properties),
+ (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
caps = conn_caps_iface.GetContactCapabilities([contact_handle])
assert caps == xiangqi_caps, caps
# test again, to check GetContactCapabilities does not have side effect
@@ -308,7 +313,8 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[contact_handle], [caps_iface], False) \
[contact_handle][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[contact_handle], \
+ caps_via_contacts_iface
# send presence with both D-Bus and stream tube caps
presence = make_presence(contact, None, 'hello')
@@ -336,20 +342,21 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
stream.send(result)
event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
- signaled_caps = event.args[0]
+ assert event.args[0] == contact_handle
+ signaled_caps = event.args[1]
assert len(signaled_caps) == 3, signaled_caps # basic caps + daap+xiangqi
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
- assert signaled_caps[2][1] \
+ assert signaled_caps[2][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
# daap + xiangqi capabilities
- daap_xiangqi_caps = [
- (contact_handle, text_fixed_properties, text_allowed_properties),
- (contact_handle, daap_fixed_properties, daap_allowed_properties),
- (contact_handle, xiangqi_fixed_properties, xiangqi_allowed_properties)]
+ daap_xiangqi_caps = dbus.Dictionary({contact_handle:
+ [(text_fixed_properties, text_allowed_properties),
+ (daap_fixed_properties, daap_allowed_properties),
+ (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
caps = conn_caps_iface.GetContactCapabilities([contact_handle])
assert caps == daap_xiangqi_caps, caps
# test again, to check GetContactCapabilities does not have side effect
@@ -359,7 +366,8 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[contact_handle], [caps_iface], False) \
[contact_handle][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[contact_handle], \
+ caps_via_contacts_iface
# send presence with 4 tube caps
presence = make_presence(contact, None, 'hello')
@@ -391,29 +399,29 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
stream.send(result)
event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
- signaled_caps = event.args[0]
+ assert event.args[0] == contact_handle
+ signaled_caps = event.args[1]
assert len(signaled_caps) == 5, signaled_caps # basic caps + 4 tubes
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
- assert signaled_caps[2][1] \
+ assert signaled_caps[2][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'http'
- assert signaled_caps[3][1] \
+ assert signaled_caps[3][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
- assert signaled_caps[4][1] \
+ assert signaled_caps[4][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Go'
# http + daap + xiangqi + go capabilities
- all_tubes_caps = [
- (contact_handle, text_fixed_properties, text_allowed_properties),
- (contact_handle, daap_fixed_properties, daap_allowed_properties),
- (contact_handle, http_fixed_properties, http_allowed_properties),
- (contact_handle, xiangqi_fixed_properties,
- xiangqi_allowed_properties),
- (contact_handle, go_fixed_properties, go_allowed_properties)]
+ all_tubes_caps = dbus.Dictionary({contact_handle:
+ [(text_fixed_properties, text_allowed_properties),
+ (daap_fixed_properties, daap_allowed_properties),
+ (http_fixed_properties, http_allowed_properties),
+ (xiangqi_fixed_properties, xiangqi_allowed_properties),
+ (go_fixed_properties, go_allowed_properties)]})
caps = conn_caps_iface.GetContactCapabilities([contact_handle])
assert caps == all_tubes_caps, caps
# test again, to check GetContactCapabilities does not have side effect
@@ -423,7 +431,8 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[contact_handle], [caps_iface], False) \
[contact_handle][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[contact_handle], \
+ caps_via_contacts_iface
# send presence with both D-Bus and stream tube caps
presence = make_presence(contact, None, 'hello')
@@ -436,20 +445,21 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
# Gabble does not look up our capabilities because of the cache
event = q.expect('dbus-signal', signal='ContactCapabilitiesChanged')
- signaled_caps = event.args[0]
+ assert event.args[0] == contact_handle
+ signaled_caps = event.args[1]
assert len(signaled_caps) == 3, signaled_caps # basic caps + daap+xiangqi
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
- assert signaled_caps[2][1] \
+ assert signaled_caps[2][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
# daap + xiangqi capabilities
- daap_xiangqi_caps = [
- (contact_handle, text_fixed_properties, text_allowed_properties),
- (contact_handle, daap_fixed_properties, daap_allowed_properties),
- (contact_handle, xiangqi_fixed_properties, xiangqi_allowed_properties)]
+ daap_xiangqi_caps = dbus.Dictionary({contact_handle:
+ [(text_fixed_properties, text_allowed_properties),
+ (daap_fixed_properties, daap_allowed_properties),
+ (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
caps = conn_caps_iface.GetContactCapabilities([contact_handle])
assert caps == daap_xiangqi_caps, caps
# test again, to check GetContactCapabilities does not have side effect
@@ -459,27 +469,28 @@ def test_tube_caps_from_contact(q, bus, conn, stream, contact, contact_handle, c
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[contact_handle], [caps_iface], False) \
[contact_handle][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[contact_handle], \
+ caps_via_contacts_iface
def test_tube_caps_to_contact(q, bus, conn, stream):
- basic_caps = [(1, text_fixed_properties,
- text_allowed_properties)]
- daap_caps = [
- (1, text_fixed_properties, text_allowed_properties),
- (1, daap_fixed_properties, daap_allowed_properties)]
- xiangqi_caps = [
- (1, text_fixed_properties, text_allowed_properties),
- (1, xiangqi_fixed_properties, xiangqi_allowed_properties)]
- daap_xiangqi_caps = [
- (1, text_fixed_properties, text_allowed_properties),
- (1, daap_fixed_properties, daap_allowed_properties),
- (1, xiangqi_fixed_properties, xiangqi_allowed_properties)]
- all_tubes_caps = [
- (1, text_fixed_properties, text_allowed_properties),
- (1, daap_fixed_properties, daap_allowed_properties),
- (1, http_fixed_properties, http_allowed_properties),
- (1, xiangqi_fixed_properties, xiangqi_allowed_properties),
- (1, go_fixed_properties, go_allowed_properties)]
+ basic_caps = dbus.Dictionary({1:
+ [(text_fixed_properties, text_allowed_properties)]})
+ daap_caps = dbus.Dictionary({1:
+ [(text_fixed_properties, text_allowed_properties),
+ (daap_fixed_properties, daap_allowed_properties)]})
+ xiangqi_caps = dbus.Dictionary({1:
+ [(text_fixed_properties, text_allowed_properties),
+ (xiangqi_fixed_properties, xiangqi_allowed_properties)]})
+ daap_xiangqi_caps = dbus.Dictionary({1:
+ [(text_fixed_properties, text_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),
+ (daap_fixed_properties, daap_allowed_properties),
+ (http_fixed_properties, http_allowed_properties),
+ (xiangqi_fixed_properties, xiangqi_allowed_properties),
+ (go_fixed_properties, go_allowed_properties)]})
conn_caps_iface = dbus.Interface(conn, caps_iface)
conn_contacts_iface = dbus.Interface(conn, contacts_iface)
@@ -491,7 +502,7 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
# Advertise nothing
conn_caps_iface.SetSelfCapabilities([])
@@ -504,7 +515,7 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
sync_stream(q, stream)
@@ -522,19 +533,18 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
assert caps_contain(event, ns_tubes + '/dbus/com.example.Xiangqi') \
== False, caps_str
assert len(signaled_caps) == 2, signaled_caps # basic caps + daap
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
# Check our own caps
caps = conn_caps_iface.GetContactCapabilities([1])
- assert len(caps) == 2
assert caps == daap_caps, caps
# check the Contacts interface give the same caps
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
# Advertise xiangqi
ret_caps = conn_caps_iface.SetSelfCapabilities(
@@ -550,19 +560,18 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
assert caps_contain(event, ns_tubes + '/dbus/com.example.Xiangqi') \
== True, caps_str
assert len(signaled_caps) == 2, signaled_caps # basic caps + daap
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
# Check our own caps
caps = conn_caps_iface.GetContactCapabilities([1])
- assert len(caps) == 2
assert caps == xiangqi_caps, caps
# check the Contacts interface give the same caps
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
# Advertise daap + xiangqi
ret_caps = conn_caps_iface.SetSelfCapabilities(
@@ -578,22 +587,21 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
assert caps_contain(event, ns_tubes + '/dbus/com.example.Xiangqi') \
== True, caps_str
assert len(signaled_caps) == 3, signaled_caps # basic caps + daap+xiangqi
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
- assert signaled_caps[2][1] \
+ assert signaled_caps[2][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
# Check our own caps
caps = conn_caps_iface.GetContactCapabilities([1])
- assert len(caps) == 3
assert caps == daap_xiangqi_caps, caps
# check the Contacts interface give the same caps
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
# Advertise 4 tubes
ret_caps = conn_caps_iface.SetSelfCapabilities(
@@ -610,28 +618,27 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
assert caps_contain(event, ns_tubes + '/dbus/com.example.Xiangqi') \
== True, caps_str
assert len(signaled_caps) == 5, signaled_caps # basic caps + 4 tubes
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
- assert signaled_caps[2][1] \
+ assert signaled_caps[2][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'http'
- assert signaled_caps[3][1] \
+ assert signaled_caps[3][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
- assert signaled_caps[4][1] \
+ assert signaled_caps[4][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Go'
# Check our own caps
caps = conn_caps_iface.GetContactCapabilities([1])
- assert len(caps) == 5
assert caps == all_tubes_caps, caps
# check the Contacts interface give the same caps
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
# Advertise daap + xiangqi
ret_caps = conn_caps_iface.SetSelfCapabilities(
@@ -647,22 +654,21 @@ def test_tube_caps_to_contact(q, bus, conn, stream):
assert caps_contain(event, ns_tubes + '/dbus/com.example.Xiangqi') \
== True, caps_str
assert len(signaled_caps) == 3, signaled_caps # basic caps + daap+xiangqi
- assert signaled_caps[1][1] \
+ assert signaled_caps[1][0] \
['org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service'] \
== 'daap'
- assert signaled_caps[2][1] \
+ assert signaled_caps[2][0] \
['org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName'] \
== 'com.example.Xiangqi'
# Check our own caps
caps = conn_caps_iface.GetContactCapabilities([1])
- assert len(caps) == 3
assert caps == daap_xiangqi_caps, caps
# check the Contacts interface give the same caps
caps_via_contacts_iface = conn_contacts_iface.GetContactAttributes(
[1], [caps_iface], False) \
[1][caps_iface + '/caps']
- assert caps_via_contacts_iface == caps, caps_via_contacts_iface
+ assert caps_via_contacts_iface == caps[1], caps_via_contacts_iface
def test(q, bus, conn, stream):
--
1.5.6.5
More information about the Telepathy-commits
mailing list