mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-06 14:24:58 -04:00
Add forgotten status to Room Details API (#13503)
This commit is contained in:
parent
c6ee9c0ee4
commit
d75512d19e
6 changed files with 101 additions and 1 deletions
|
@ -23,6 +23,7 @@ from synapse.util import Clock
|
|||
|
||||
from tests import unittest
|
||||
from tests.server import TestHomeServer
|
||||
from tests.test_utils import event_injection
|
||||
|
||||
|
||||
class RoomMemberStoreTestCase(unittest.HomeserverTestCase):
|
||||
|
@ -157,6 +158,75 @@ class RoomMemberStoreTestCase(unittest.HomeserverTestCase):
|
|||
# Check that alice's display name is now None
|
||||
self.assertEqual(row[0]["display_name"], None)
|
||||
|
||||
def test_room_is_locally_forgotten(self):
|
||||
"""Test that when the last local user has forgotten a room it is known as forgotten."""
|
||||
# join two local and one remote user
|
||||
self.room = self.helper.create_room_as(self.u_alice, tok=self.t_alice)
|
||||
self.get_success(
|
||||
event_injection.inject_member_event(self.hs, self.room, self.u_bob, "join")
|
||||
)
|
||||
self.get_success(
|
||||
event_injection.inject_member_event(
|
||||
self.hs, self.room, self.u_charlie.to_string(), "join"
|
||||
)
|
||||
)
|
||||
self.assertFalse(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
# local users leave the room and the room is not forgotten
|
||||
self.get_success(
|
||||
event_injection.inject_member_event(
|
||||
self.hs, self.room, self.u_alice, "leave"
|
||||
)
|
||||
)
|
||||
self.get_success(
|
||||
event_injection.inject_member_event(self.hs, self.room, self.u_bob, "leave")
|
||||
)
|
||||
self.assertFalse(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
# first user forgets the room, room is not forgotten
|
||||
self.get_success(self.store.forget(self.u_alice, self.room))
|
||||
self.assertFalse(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
# second (last local) user forgets the room and the room is forgotten
|
||||
self.get_success(self.store.forget(self.u_bob, self.room))
|
||||
self.assertTrue(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
def test_join_locally_forgotten_room(self):
|
||||
"""Tests if a user joins a forgotten room the room is not forgotten anymore."""
|
||||
self.room = self.helper.create_room_as(self.u_alice, tok=self.t_alice)
|
||||
self.assertFalse(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
# after leaving and forget the room, it is forgotten
|
||||
self.get_success(
|
||||
event_injection.inject_member_event(
|
||||
self.hs, self.room, self.u_alice, "leave"
|
||||
)
|
||||
)
|
||||
self.get_success(self.store.forget(self.u_alice, self.room))
|
||||
self.assertTrue(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
# after rejoin the room is not forgotten anymore
|
||||
self.get_success(
|
||||
event_injection.inject_member_event(
|
||||
self.hs, self.room, self.u_alice, "join"
|
||||
)
|
||||
)
|
||||
self.assertFalse(
|
||||
self.get_success(self.store.is_locally_forgotten_room(self.room))
|
||||
)
|
||||
|
||||
|
||||
class CurrentStateMembershipUpdateTestCase(unittest.HomeserverTestCase):
|
||||
def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue