diff options
author | Azrenbeth <77782548+Azrenbeth@users.noreply.github.com> | 2021-08-26 13:53:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-26 13:53:57 +0100 |
commit | ad17fbd20eb2dd9fb10a3d02ab1b69e9a0d5b50c (patch) | |
tree | 6d93accd9ad9546467658e5c98aa58361d095551 /tests | |
parent | Additional type hints for REST servlets (part 2). (#10674) (diff) | |
download | synapse-ad17fbd20eb2dd9fb10a3d02ab1b69e9a0d5b50c.tar.xz |
Remove pushers when deleting 3pid from account (#10581)
When a user deletes an email from their account it will now also remove all pushers for that email and that user (even if these pushers were created by a different client)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/push/test_email.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/push/test_email.py b/tests/push/test_email.py index e0a3342088..eea07485a0 100644 --- a/tests/push/test_email.py +++ b/tests/push/test_email.py @@ -125,6 +125,8 @@ class EmailPusherTests(HomeserverTestCase): ) ) + self.auth_handler = hs.get_auth_handler() + def test_need_validated_email(self): """Test that we can only add an email pusher if the user has validated their email. @@ -305,6 +307,43 @@ class EmailPusherTests(HomeserverTestCase): # We should get emailed about that message self._check_for_mail() + def test_no_email_sent_after_removed(self): + # Create a simple room with two users + room = self.helper.create_room_as(self.user_id, tok=self.access_token) + self.helper.invite( + room=room, + src=self.user_id, + tok=self.access_token, + targ=self.others[0].id, + ) + self.helper.join( + room=room, + user=self.others[0].id, + tok=self.others[0].token, + ) + + # The other user sends a single message. + self.helper.send(room, body="Hi!", tok=self.others[0].token) + + # We should get emailed about that message + self._check_for_mail() + + # disassociate the user's email address + self.get_success( + self.auth_handler.delete_threepid( + user_id=self.user_id, + medium="email", + address="a@example.com", + ) + ) + + # check that the pusher for that email address has been deleted + pushers = self.get_success( + self.hs.get_datastore().get_pushers_by({"user_name": self.user_id}) + ) + pushers = list(pushers) + self.assertEqual(len(pushers), 0) + def _check_for_mail(self): """Check that the user receives an email notification""" |