From 23be0153afd5a046c111c8dfa55f30c18fa4a5f9 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 17 Sep 2013 14:08:59 +0200 Subject: [PATCH 1/4] protocol: claim that we implement Avatars --- src/protocol.c | 17 +++++++++++++++++ tests/twisted/cm/protocols.py | 7 +++++++ tests/twisted/constants.py | 1 + 3 files changed, 25 insertions(+) diff --git a/src/protocol.c b/src/protocol.c index ad742f7..35b09df 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -885,11 +885,28 @@ haze_protocol_identify_account (TpBaseProtocol *base, static GPtrArray * haze_protocol_get_interfaces_array (TpBaseProtocol *base) { + HazeProtocol *self = HAZE_PROTOCOL (base); GPtrArray *interfaces; + GPtrArray *tmp; + guint i; interfaces = TP_BASE_PROTOCOL_CLASS ( haze_protocol_parent_class)->get_interfaces_array (base); + /* Claim to implement Avatars only if we support avatars for this + * protocol. */ + tmp = haze_connection_dup_implemented_interfaces (self->priv->prpl_info); + for (i = 0; i < tmp->len; i++) + { + if (!tp_strdiff (g_ptr_array_index (tmp, i), + TP_IFACE_CONNECTION_INTERFACE_AVATARS)) + { + g_ptr_array_add (interfaces, TP_IFACE_PROTOCOL_INTERFACE_AVATARS); + break; + } + } + g_ptr_array_unref (tmp); + return interfaces; } diff --git a/tests/twisted/cm/protocols.py b/tests/twisted/cm/protocols.py index d296710..b3cb55b 100644 --- a/tests/twisted/cm/protocols.py +++ b/tests/twisted/cm/protocols.py @@ -28,6 +28,13 @@ def test(q, bus, conn, stream): protocol_props = dbus.Interface(protocol, cs.PROPERTIES_IFACE) flat_props = protocol_props.GetAll(cs.PROTOCOL) + # Protocol is supposed to implement Interface.Avatars iff the + # connection implements Avatars as well. + if cs.CONN_IFACE_AVATARS in flat_props['ConnectionInterfaces']: + assertEquals([cs.PROTOCOL_IFACE_AVATARS], props[cs.PROTOCOL + '.Interfaces']) + else: + assertEquals([], props[cs.PROTOCOL + '.Interfaces']) + parameters = cm_iface.GetParameters(name) assertEquals(parameters, props[cs.PROTOCOL + '.Parameters']) assertEquals(parameters, flat_props['Parameters']) diff --git a/tests/twisted/constants.py b/tests/twisted/constants.py index 37d6d52..7bba99b 100644 --- a/tests/twisted/constants.py +++ b/tests/twisted/constants.py @@ -481,6 +481,7 @@ class SendError(object): PROTOCOL = 'org.freedesktop.Telepathy.Protocol' PROTOCOL_IFACE_PRESENCES = PROTOCOL + '.Interface.Presence' PROTOCOL_IFACE_ADDRESSING = PROTOCOL + '.Interface.Addressing' +PROTOCOL_IFACE_AVATARS = PROTOCOL + '.Interface.Avatars' PARAM_REQUIRED = 1 PARAM_REGISTER = 2 -- 1.8.3.1