SYN-40: When a user updates their displayname or avatar update all their join events for all the rooms they are currently in.

This commit is contained in:
Erik Johnston 2014-09-17 15:05:09 +01:00
parent fe7af80198
commit b6818fd4d2
3 changed files with 75 additions and 3 deletions

View file

@ -22,6 +22,7 @@ from mock import Mock
from synapse.api.errors import AuthError
from synapse.server import HomeServer
from synapse.handlers.profile import ProfileHandler
from synapse.api.constants import Membership
class ProfileHandlers(object):
@ -50,6 +51,7 @@ class ProfileTestCase(unittest.TestCase):
"set_profile_displayname",
"get_profile_avatar_url",
"set_profile_avatar_url",
"get_rooms_for_user_where_membership_is",
]),
handlers=None,
resource_for_federation=Mock(),
@ -65,6 +67,10 @@ class ProfileTestCase(unittest.TestCase):
self.handler = hs.get_handlers().profile_handler
self.mock_get_joined = (
self.datastore.get_rooms_for_user_where_membership_is
)
# TODO(paul): Icky signal declarings.. booo
hs.get_distributor().declare("changed_presencelike_data")
@ -83,8 +89,15 @@ class ProfileTestCase(unittest.TestCase):
mocked_set = self.datastore.set_profile_displayname
mocked_set.return_value = defer.succeed(())
self.mock_get_joined.return_value = defer.succeed([])
yield self.handler.set_displayname(self.frank, self.frank, "Frank Jr.")
self.mock_get_joined.assert_called_once_with(
self.frank.to_string(),
[Membership.JOIN]
)
mocked_set.assert_called_with("1234ABCD", "Frank Jr.")
@defer.inlineCallbacks
@ -135,7 +148,15 @@ class ProfileTestCase(unittest.TestCase):
mocked_set = self.datastore.set_profile_avatar_url
mocked_set.return_value = defer.succeed(())
self.mock_get_joined.return_value = defer.succeed([])
yield self.handler.set_avatar_url(self.frank, self.frank,
"http://my.server/pic.gif")
self.mock_get_joined.assert_called_once_with(
self.frank.to_string(),
[Membership.JOIN]
)
mocked_set.assert_called_with("1234ABCD", "http://my.server/pic.gif")