From ced3e32094b11970653227e78dbe7c3bd8515c8f Mon Sep 17 00:00:00 2001 From: Vivek Dasmohapatra Date: Thu, 29 Jul 2010 17:11:07 +0100 Subject: Implement a test for a remote client unsetting our avatar --- test/twisted/account-manager/avatar.py | 15 +++++++++++++-- test/twisted/mctest.py | 3 +++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/test/twisted/account-manager/avatar.py b/test/twisted/account-manager/avatar.py index 2b8ac032..c616e146 100644 --- a/test/twisted/account-manager/avatar.py +++ b/test/twisted/account-manager/avatar.py @@ -21,7 +21,7 @@ import dbus import dbus.service from servicetest import EventPattern, tp_name_prefix, tp_path_prefix, \ - call_async + call_async, assertEquals from mctest import exec_test, create_fakecm_account, enable_fakecm_account import constants as cs @@ -86,8 +86,8 @@ def test(q, bus, mc): interface=cs.CONN_IFACE_AVATARS, method='RequestAvatars', args=[[conn.self_handle]], handled=False) - q.dbus_return(e.message, signature='') + q.dbus_emit(conn.object_path, cs.CONN_IFACE_AVATARS, 'AvatarRetrieved', conn.self_handle, 'CCCC', dbus.ByteArray('CCCC'), 'image/svg', signature='usays') @@ -97,5 +97,16 @@ def test(q, bus, mc): assert account_props.Get(cs.ACCOUNT_IFACE_AVATAR, 'Avatar', byte_arrays=True) == ('CCCC', 'image/svg') + # empty avatar tests + conn.forget_avatar() + q.dbus_emit(conn.object_path, cs.CONN_IFACE_AVATARS, 'AvatarUpdated', + conn.self_handle, '', signature='us') + q.expect('dbus-method-call', method='GetKnownAvatarTokens') + q.expect('dbus-signal', path=account.object_path, + interface=cs.ACCOUNT_IFACE_AVATAR, signal='AvatarChanged') + + assertEquals(account_props.Get(cs.ACCOUNT_IFACE_AVATAR, 'Avatar', + byte_arrays=False), ([], '')) + if __name__ == '__main__': exec_test(test, {}) diff --git a/test/twisted/mctest.py b/test/twisted/mctest.py index 9a88b10d..ffe71cb5 100644 --- a/test/twisted/mctest.py +++ b/test/twisted/mctest.py @@ -277,6 +277,9 @@ class SimulatedConnection(object): self.presence = dbus.Struct((cs.PRESENCE_TYPE_OFFLINE, 'offline', ''), signature='uss') + def forget_avatar(self): + self.avatar = (dbus.ByteArray(''), '') + # not actually very relevant for MC so hard-code 0 for now def GetAliasFlags(self, e): self.q.dbus_return(e.message, 0, signature='u') -- cgit v1.2.1