|
|
|
@ -38,6 +38,9 @@ U_ONION = UserID.from_string("@onion:farm") |
|
|
|
|
# Test room id |
|
|
|
|
ROOM_ID = "a-room" |
|
|
|
|
|
|
|
|
|
# Room we're not in |
|
|
|
|
OTHER_ROOM_ID = "another-room" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _expect_edu_transaction(edu_type, content, origin="test"): |
|
|
|
|
return { |
|
|
|
@ -115,6 +118,11 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase): |
|
|
|
|
|
|
|
|
|
hs.get_auth().check_user_in_room = check_user_in_room |
|
|
|
|
|
|
|
|
|
async def check_host_in_room(room_id, server_name): |
|
|
|
|
return room_id == ROOM_ID |
|
|
|
|
|
|
|
|
|
hs.get_event_auth_handler().check_host_in_room = check_host_in_room |
|
|
|
|
|
|
|
|
|
def get_joined_hosts_for_room(room_id): |
|
|
|
|
return {member.domain for member in self.room_members} |
|
|
|
|
|
|
|
|
@ -244,6 +252,35 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase): |
|
|
|
|
], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
def test_started_typing_remote_recv_not_in_room(self): |
|
|
|
|
self.room_members = [U_APPLE, U_ONION] |
|
|
|
|
|
|
|
|
|
self.assertEquals(self.event_source.get_current_key(), 0) |
|
|
|
|
|
|
|
|
|
channel = self.make_request( |
|
|
|
|
"PUT", |
|
|
|
|
"/_matrix/federation/v1/send/1000000", |
|
|
|
|
_make_edu_transaction_json( |
|
|
|
|
"m.typing", |
|
|
|
|
content={ |
|
|
|
|
"room_id": OTHER_ROOM_ID, |
|
|
|
|
"user_id": U_ONION.to_string(), |
|
|
|
|
"typing": True, |
|
|
|
|
}, |
|
|
|
|
), |
|
|
|
|
federation_auth_origin=b"farm", |
|
|
|
|
) |
|
|
|
|
self.assertEqual(channel.code, 200) |
|
|
|
|
|
|
|
|
|
self.on_new_event.assert_not_called() |
|
|
|
|
|
|
|
|
|
self.assertEquals(self.event_source.get_current_key(), 0) |
|
|
|
|
events = self.get_success( |
|
|
|
|
self.event_source.get_new_events(room_ids=[OTHER_ROOM_ID], from_key=0) |
|
|
|
|
) |
|
|
|
|
self.assertEquals(events[0], []) |
|
|
|
|
self.assertEquals(events[1], 0) |
|
|
|
|
|
|
|
|
|
@override_config({"send_federation": True}) |
|
|
|
|
def test_stopped_typing(self): |
|
|
|
|
self.room_members = [U_APPLE, U_BANANA, U_ONION] |
|
|
|
|