Skip to content

Commit 36b96cc

Browse files
committed
task(tests): have the test clients use Matrix v1.12
1 parent 5957232 commit 36b96cc

File tree

2 files changed

+63
-72
lines changed

2 files changed

+63
-72
lines changed

crates/matrix-sdk/src/test_utils/mocks.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ impl MatrixMockServer {
144144
/// Mocks a sync endpoint.
145145
pub fn mock_sync(&self) -> MockEndpoint<'_, SyncEndpoint> {
146146
let mock = Mock::given(method("GET"))
147-
.and(path("/_matrix/client/r0/sync"))
147+
.and(path("/_matrix/client/v3/sync"))
148148
.and(header("authorization", "Bearer 1234"));
149149
MockEndpoint {
150150
mock,
@@ -158,7 +158,7 @@ impl MatrixMockServer {
158158
/// Note: works with *any* room.
159159
pub fn mock_room_send(&self) -> MockEndpoint<'_, RoomSendEndpoint> {
160160
let mock = Mock::given(method("PUT"))
161-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/send/.*"))
161+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/send/.*"))
162162
.and(header("authorization", "Bearer 1234"));
163163
MockEndpoint { mock, server: &self.server, endpoint: RoomSendEndpoint }
164164
}
@@ -169,7 +169,7 @@ impl MatrixMockServer {
169169
pub fn mock_room_state_encryption(&self) -> MockEndpoint<'_, EncryptionStateEndpoint> {
170170
let mock = Mock::given(method("GET"))
171171
.and(header("authorization", "Bearer 1234"))
172-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/state/m.*room.*encryption.?"));
172+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/state/m.*room.*encryption.?"));
173173
MockEndpoint { mock, server: &self.server, endpoint: EncryptionStateEndpoint }
174174
}
175175

@@ -179,14 +179,14 @@ impl MatrixMockServer {
179179
pub fn mock_set_room_state_encryption(&self) -> MockEndpoint<'_, SetEncryptionStateEndpoint> {
180180
let mock = Mock::given(method("PUT"))
181181
.and(header("authorization", "Bearer 1234"))
182-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/state/m.*room.*encryption.?"));
182+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/state/m.*room.*encryption.?"));
183183
MockEndpoint { mock, server: &self.server, endpoint: SetEncryptionStateEndpoint }
184184
}
185185

186186
/// Creates a prebuilt mock for the room redact endpoint.
187187
pub fn mock_room_redact(&self) -> MockEndpoint<'_, RoomRedactEndpoint> {
188188
let mock = Mock::given(method("PUT"))
189-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/redact/.*?/.*?"))
189+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/redact/.*?/.*?"))
190190
.and(header("authorization", "Bearer 1234"));
191191
MockEndpoint { mock, server: &self.server, endpoint: RoomRedactEndpoint }
192192
}
@@ -204,22 +204,22 @@ impl MatrixMockServer {
204204
/// Create a prebuilt mock for uploading media.
205205
pub fn mock_upload(&self) -> MockEndpoint<'_, UploadEndpoint> {
206206
let mock = Mock::given(method("POST"))
207-
.and(path("/_matrix/media/r0/upload"))
207+
.and(path("/_matrix/media/v3/upload"))
208208
.and(header("authorization", "Bearer 1234"));
209209
MockEndpoint { mock, server: &self.server, endpoint: UploadEndpoint }
210210
}
211211

212212
/// Create a prebuilt mock for resolving room aliases.
213213
pub fn mock_room_directory_resolve_alias(&self) -> MockEndpoint<'_, ResolveRoomAliasEndpoint> {
214214
let mock =
215-
Mock::given(method("GET")).and(path_regex(r"/_matrix/client/r0/directory/room/.*"));
215+
Mock::given(method("GET")).and(path_regex(r"/_matrix/client/v3/directory/room/.*"));
216216
MockEndpoint { mock, server: &self.server, endpoint: ResolveRoomAliasEndpoint }
217217
}
218218

219219
/// Create a prebuilt mock for creating room aliases.
220220
pub fn mock_create_room_alias(&self) -> MockEndpoint<'_, CreateRoomAliasEndpoint> {
221221
let mock =
222-
Mock::given(method("PUT")).and(path_regex(r"/_matrix/client/r0/directory/room/.*"));
222+
Mock::given(method("PUT")).and(path_regex(r"/_matrix/client/v3/directory/room/.*"));
223223
MockEndpoint { mock, server: &self.server, endpoint: CreateRoomAliasEndpoint }
224224
}
225225
}
@@ -495,7 +495,7 @@ impl<'a> MockEndpoint<'a, RoomEventEndpoint> {
495495

496496
let mock = self
497497
.mock
498-
.and(path_regex(format!("^/_matrix/client/r0/rooms/{room_path}/event/{event_path}")))
498+
.and(path_regex(format!("^/_matrix/client/v3/rooms/{room_path}/event/{event_path}")))
499499
.respond_with(ResponseTemplate::new(200).set_body_json(event.into_raw().json()));
500500
MatrixMock { server: self.server, mock }
501501
}
@@ -564,7 +564,7 @@ impl MockClientBuilder {
564564
fn new(homeserver: String) -> Self {
565565
let default_builder = Client::builder()
566566
.homeserver_url(homeserver)
567-
.server_versions([MatrixVersion::V1_0])
567+
.server_versions([MatrixVersion::V1_12])
568568
.request_config(RequestConfig::new().disable_retry());
569569

570570
Self { builder: default_builder, logged_in: true }

crates/matrix-sdk/tests/integration/widget.rs

Lines changed: 53 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,14 @@ use assert_matches::assert_matches;
1818
use async_trait::async_trait;
1919
use futures_util::FutureExt;
2020
use matrix_sdk::{
21-
config::SyncSettings,
2221
test_utils::mocks::MatrixMockServer,
2322
widget::{
2423
Capabilities, CapabilitiesProvider, WidgetDriver, WidgetDriverHandle, WidgetSettings,
2524
},
2625
Client,
2726
};
2827
use matrix_sdk_common::{executor::spawn, timeout::timeout};
29-
use matrix_sdk_test::{
30-
async_test, EventBuilder, JoinedRoomBuilder, SyncResponseBuilder, ALICE, BOB,
31-
};
28+
use matrix_sdk_test::{async_test, EventBuilder, JoinedRoomBuilder, ALICE, BOB};
3229
use once_cell::sync::Lazy;
3330
use ruma::{
3431
event_id,
@@ -50,8 +47,6 @@ use wiremock::{
5047
Mock, ResponseTemplate,
5148
};
5249

53-
use crate::mock_sync;
54-
5550
/// Create a JSON string from a [`json!`][serde_json::json] "literal".
5651
#[macro_export]
5752
macro_rules! json_string {
@@ -246,7 +241,7 @@ async fn test_read_messages() {
246241
"start": "t392-516_47314_0_7_1_1_1_11444_1"
247242
});
248243
Mock::given(method("GET"))
249-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/messages$"))
244+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/messages$"))
250245
.and(header("authorization", "Bearer 1234"))
251246
.and(query_param("limit", "2"))
252247
.respond_with(ResponseTemplate::new(200).set_body_json(response_json))
@@ -341,7 +336,7 @@ async fn test_read_messages_with_msgtype_capabilities() {
341336
"start": "t392-516_47314_0_7_1_1_1_11444_1"
342337
});
343338
Mock::given(method("GET"))
344-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/messages$"))
339+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/messages$"))
345340
.and(header("authorization", "Bearer 1234"))
346341
.and(query_param("limit", "3"))
347342
.respond_with(ResponseTemplate::new(200).set_body_json(response_json))
@@ -429,58 +424,54 @@ async fn test_receive_live_events() {
429424
// No messages from the driver yet
430425
assert_matches!(recv_message(&driver_handle).now_or_never(), None);
431426

432-
let mut sync_builder = SyncResponseBuilder::new();
433-
// bump the internal batch counter, otherwise the response will be seen as
434-
// identical to the one done in `run_test_driver`
435-
sync_builder.build_json_sync_response();
436-
437-
let event_builder = EventBuilder::new();
438-
sync_builder.add_joined_room(
439-
JoinedRoomBuilder::new(&ROOM_ID)
440-
// text message from alice - matches filter #2
441-
.add_timeline_event(event_builder.make_sync_message_event(
442-
&ALICE,
443-
RoomMessageEventContent::text_plain("simple text message"),
444-
))
445-
// emote from alice - doesn't match
446-
.add_timeline_event(event_builder.make_sync_message_event(
447-
&ALICE,
448-
RoomMessageEventContent::emote_plain("emote message"),
449-
))
450-
// pointless member event - matches filter #4
451-
.add_timeline_event(event_builder.make_sync_state_event(
452-
user_id!("@example:localhost"),
453-
"@example:localhost",
454-
RoomMemberEventContent::new(MembershipState::Join),
455-
Some(RoomMemberEventContent::new(MembershipState::Join)),
456-
))
457-
// kick alice - doesn't match because the `#@example:localhost` bit
458-
// is about the state_key, not the sender
459-
.add_timeline_event(event_builder.make_sync_state_event(
460-
user_id!("@example:localhost"),
461-
ALICE.as_str(),
462-
RoomMemberEventContent::new(MembershipState::Ban),
463-
Some(RoomMemberEventContent::new(MembershipState::Join)),
464-
))
465-
// set room tpoic - doesn't match
466-
.add_timeline_event(event_builder.make_sync_state_event(
467-
&BOB,
468-
"",
469-
RoomTopicEventContent::new("new room topic".to_owned()),
470-
None,
471-
))
472-
// set room name - matches filter #3
473-
.add_timeline_event(event_builder.make_sync_state_event(
474-
&BOB,
475-
"",
476-
RoomNameEventContent::new("New Room Name".to_owned()),
477-
None,
478-
)),
479-
);
480-
481-
mock_sync(mock_server.server(), sync_builder.build_json_sync_response(), None).await;
482-
let _response =
483-
client.sync_once(SyncSettings::new().timeout(Duration::from_millis(3000))).await.unwrap();
427+
mock_server
428+
.mock_sync()
429+
.ok_and_run(&client, |sync_builder| {
430+
let event_builder = EventBuilder::new();
431+
sync_builder.add_joined_room(
432+
JoinedRoomBuilder::new(&ROOM_ID)
433+
// text message from alice - matches filter #2
434+
.add_timeline_event(event_builder.make_sync_message_event(
435+
&ALICE,
436+
RoomMessageEventContent::text_plain("simple text message"),
437+
))
438+
// emote from alice - doesn't match
439+
.add_timeline_event(event_builder.make_sync_message_event(
440+
&ALICE,
441+
RoomMessageEventContent::emote_plain("emote message"),
442+
))
443+
// pointless member event - matches filter #4
444+
.add_timeline_event(event_builder.make_sync_state_event(
445+
user_id!("@example:localhost"),
446+
"@example:localhost",
447+
RoomMemberEventContent::new(MembershipState::Join),
448+
Some(RoomMemberEventContent::new(MembershipState::Join)),
449+
))
450+
// kick alice - doesn't match because the `#@example:localhost` bit
451+
// is about the state_key, not the sender
452+
.add_timeline_event(event_builder.make_sync_state_event(
453+
user_id!("@example:localhost"),
454+
ALICE.as_str(),
455+
RoomMemberEventContent::new(MembershipState::Ban),
456+
Some(RoomMemberEventContent::new(MembershipState::Join)),
457+
))
458+
// set room tpoic - doesn't match
459+
.add_timeline_event(event_builder.make_sync_state_event(
460+
&BOB,
461+
"",
462+
RoomTopicEventContent::new("new room topic".to_owned()),
463+
None,
464+
))
465+
// set room name - matches filter #3
466+
.add_timeline_event(event_builder.make_sync_state_event(
467+
&BOB,
468+
"",
469+
RoomNameEventContent::new("New Room Name".to_owned()),
470+
None,
471+
)),
472+
);
473+
})
474+
.await;
484475

485476
let msg = recv_message(&driver_handle).await;
486477
assert_eq!(msg["api"], "toWidget");
@@ -518,7 +509,7 @@ async fn test_send_room_message() {
518509
.await;
519510

520511
Mock::given(method("PUT"))
521-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/send/m.room.message/.*$"))
512+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/send/m.room.message/.*$"))
522513
.respond_with(ResponseTemplate::new(200).set_body_json(json!({ "event_id": "$foobar" })))
523514
.expect(1)
524515
.mount(mock_server.server())
@@ -559,7 +550,7 @@ async fn test_send_room_name() {
559550
.await;
560551

561552
Mock::given(method("PUT"))
562-
.and(path_regex(r"^/_matrix/client/r0/rooms/.*/state/m.room.name/?$"))
553+
.and(path_regex(r"^/_matrix/client/v3/rooms/.*/state/m.room.name/?$"))
563554
.respond_with(ResponseTemplate::new(200).set_body_json(json!({ "event_id": "$foobar" })))
564555
.expect(1)
565556
.mount(mock_server.server())

0 commit comments

Comments
 (0)