|
|
|
@ -169,24 +169,28 @@ class RelationsTestCase(unittest.HomeserverTestCase): |
|
|
|
|
"""Tests that calling pagination API correctly the latest relations.""" |
|
|
|
|
channel = self._send_relation(RelationTypes.ANNOTATION, "m.reaction", "a") |
|
|
|
|
self.assertEquals(200, channel.code, channel.json_body) |
|
|
|
|
first_annotation_id = channel.json_body["event_id"] |
|
|
|
|
|
|
|
|
|
channel = self._send_relation(RelationTypes.ANNOTATION, "m.reaction", "b") |
|
|
|
|
self.assertEquals(200, channel.code, channel.json_body) |
|
|
|
|
annotation_id = channel.json_body["event_id"] |
|
|
|
|
second_annotation_id = channel.json_body["event_id"] |
|
|
|
|
|
|
|
|
|
channel = self.make_request( |
|
|
|
|
"GET", |
|
|
|
|
"/_matrix/client/unstable/rooms/%s/relations/%s?limit=1" |
|
|
|
|
% (self.room, self.parent_id), |
|
|
|
|
f"/_matrix/client/unstable/rooms/{self.room}/relations/{self.parent_id}?limit=1", |
|
|
|
|
access_token=self.user_token, |
|
|
|
|
) |
|
|
|
|
self.assertEquals(200, channel.code, channel.json_body) |
|
|
|
|
|
|
|
|
|
# We expect to get back a single pagination result, which is the full |
|
|
|
|
# relation event we sent above. |
|
|
|
|
# We expect to get back a single pagination result, which is the latest |
|
|
|
|
# full relation event we sent above. |
|
|
|
|
self.assertEquals(len(channel.json_body["chunk"]), 1, channel.json_body) |
|
|
|
|
self.assert_dict( |
|
|
|
|
{"event_id": annotation_id, "sender": self.user_id, "type": "m.reaction"}, |
|
|
|
|
{ |
|
|
|
|
"event_id": second_annotation_id, |
|
|
|
|
"sender": self.user_id, |
|
|
|
|
"type": "m.reaction", |
|
|
|
|
}, |
|
|
|
|
channel.json_body["chunk"][0], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
@ -201,6 +205,27 @@ class RelationsTestCase(unittest.HomeserverTestCase): |
|
|
|
|
channel.json_body.get("next_batch"), str, channel.json_body |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Request the relations again, but with a different direction. |
|
|
|
|
channel = self.make_request( |
|
|
|
|
"GET", |
|
|
|
|
f"/_matrix/client/unstable/rooms/{self.room}/relations" |
|
|
|
|
f"/{self.parent_id}?limit=1&org.matrix.msc3715.dir=f", |
|
|
|
|
access_token=self.user_token, |
|
|
|
|
) |
|
|
|
|
self.assertEquals(200, channel.code, channel.json_body) |
|
|
|
|
|
|
|
|
|
# We expect to get back a single pagination result, which is the earliest |
|
|
|
|
# full relation event we sent above. |
|
|
|
|
self.assertEquals(len(channel.json_body["chunk"]), 1, channel.json_body) |
|
|
|
|
self.assert_dict( |
|
|
|
|
{ |
|
|
|
|
"event_id": first_annotation_id, |
|
|
|
|
"sender": self.user_id, |
|
|
|
|
"type": "m.reaction", |
|
|
|
|
}, |
|
|
|
|
channel.json_body["chunk"][0], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
def _stream_token_to_relation_token(self, token: str) -> str: |
|
|
|
|
"""Convert a StreamToken into a legacy token (RelationPaginationToken).""" |
|
|
|
|
room_key = self.get_success(StreamToken.from_string(self.store, token)).room_key |
|
|
|
|