diff options
Diffstat (limited to 'tests/twisted/account-manager/avatar.py')
-rw-r--r-- | tests/twisted/account-manager/avatar.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/twisted/account-manager/avatar.py b/tests/twisted/account-manager/avatar.py index c616e146..af89c6fc 100644 --- a/tests/twisted/account-manager/avatar.py +++ b/tests/twisted/account-manager/avatar.py @@ -16,7 +16,8 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA # 02110-1301 USA -import dbus +import os + import dbus import dbus.service @@ -33,6 +34,13 @@ def test(q, bus, mc): account_iface = dbus.Interface(account, cs.ACCOUNT) account_props = dbus.Interface(account, cs.PROPERTIES_IFACE) + assertEquals(cs.ACCOUNT_PATH_PREFIX, + account.object_path[:len(cs.ACCOUNT_PATH_PREFIX)]) + avatar_filename = account.object_path[len(cs.ACCOUNT_PATH_PREFIX):] + avatar_filename = avatar_filename.replace('/', '-') + '.avatar' + avatar_filename = (os.environ['XDG_DATA_HOME'] + + '/telepathy/mission-control/' + avatar_filename) + call_async(q, account_props, 'Set', cs.ACCOUNT_IFACE_AVATAR, 'Avatar', dbus.Struct((dbus.ByteArray('AAAA'), 'image/jpeg'))) q.expect_many( @@ -46,6 +54,10 @@ def test(q, bus, mc): assert account_props.Get(cs.ACCOUNT_IFACE_AVATAR, 'Avatar', byte_arrays=True) == ('AAAA', 'image/jpeg') + assertEquals('AAAA', ''.join(open(avatar_filename, 'r').readlines())) + # We aren't storing in the old location + assert not os.path.exists(os.environ['MC_ACCOUNT_DIR'] + '/fakecm') + # OK, let's go online. The avatar is set regardless of the CM conn, e = enable_fakecm_account(q, bus, mc, account, params, has_avatars=True, avatars_persist=True, @@ -72,6 +84,9 @@ def test(q, bus, mc): assert account_props.Get(cs.ACCOUNT_IFACE_AVATAR, 'Avatar', byte_arrays=True) == ('BBBB', 'image/png') + assertEquals('BBBB', ''.join(open(avatar_filename, 'r').readlines())) + assert not os.path.exists(os.environ['MC_ACCOUNT_DIR'] + '/fakecm') + someone_else = conn.ensure_handle(cs.HT_CONTACT, 'alberto@example.com') # Another contact changes their avatar: ignored @@ -97,6 +112,8 @@ def test(q, bus, mc): assert account_props.Get(cs.ACCOUNT_IFACE_AVATAR, 'Avatar', byte_arrays=True) == ('CCCC', 'image/svg') + assertEquals('CCCC', ''.join(open(avatar_filename, 'r').readlines())) + # empty avatar tests conn.forget_avatar() q.dbus_emit(conn.object_path, cs.CONN_IFACE_AVATARS, 'AvatarUpdated', @@ -108,5 +125,9 @@ def test(q, bus, mc): assertEquals(account_props.Get(cs.ACCOUNT_IFACE_AVATAR, 'Avatar', byte_arrays=False), ([], '')) + # empty avatars are represented by an empty file, not no file, + # to get the right precedence over XDG_DATA_DIRS + assertEquals('', ''.join(open(avatar_filename, 'r').readlines())) + if __name__ == '__main__': exec_test(test, {}) |