summaryrefslogtreecommitdiff
path: root/tests/twisted/account-manager/avatar.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/twisted/account-manager/avatar.py')
-rw-r--r--tests/twisted/account-manager/avatar.py23
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, {})