diff --git a/crates/matrix-sdk-base/src/client.rs b/crates/matrix-sdk-base/src/client.rs index 0ac275a29..3df78dce8 100644 --- a/crates/matrix-sdk-base/src/client.rs +++ b/crates/matrix-sdk-base/src/client.rs @@ -1706,18 +1706,10 @@ mod tests { let mut subscriber = client.subscribe_to_ignore_user_list_changes(); assert!(subscriber.next().now_or_never().is_none()); + let f = EventFactory::new(); let mut sync_builder = SyncResponseBuilder::new(); let response = sync_builder - .add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom( - json!({ - "content": { - "ignored_users": { - *BOB: {} - } - }, - "type": "m.ignored_user_list", - }), - )) + .add_global_account_data(f.ignored_user_list([(*BOB).into()]).into_raw()) .build_sync_response(); client.receive_sync_response(response).await.unwrap(); @@ -1726,16 +1718,7 @@ mod tests { // Receive the same response. let response = sync_builder - .add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom( - json!({ - "content": { - "ignored_users": { - *BOB: {} - } - }, - "type": "m.ignored_user_list", - }), - )) + .add_global_account_data(f.ignored_user_list([(*BOB).into()]).into_raw()) .build_sync_response(); client.receive_sync_response(response).await.unwrap(); @@ -1744,14 +1727,7 @@ mod tests { // Now remove Bob from the ignored list. let response = sync_builder - .add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom( - json!({ - "content": { - "ignored_users": {} - }, - "type": "m.ignored_user_list", - }), - )) + .add_global_account_data(f.ignored_user_list([]).into_raw()) .build_sync_response(); client.receive_sync_response(response).await.unwrap(); @@ -1765,17 +1741,9 @@ mod tests { let client = logged_in_base_client(None).await; let mut sync_builder = SyncResponseBuilder::new(); + let f = EventFactory::new(); let response = sync_builder - .add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom( - json!({ - "content": { - "ignored_users": { - ignored_user_id: {} - } - }, - "type": "m.ignored_user_list", - }), - )) + .add_global_account_data(f.ignored_user_list([ignored_user_id.to_owned()]).into_raw()) .build_sync_response(); client.receive_sync_response(response).await.unwrap(); diff --git a/crates/matrix-sdk-ui/tests/integration/timeline/subscribe.rs b/crates/matrix-sdk-ui/tests/integration/timeline/subscribe.rs index b606ca1fa..efa7912cc 100644 --- a/crates/matrix-sdk-ui/tests/integration/timeline/subscribe.rs +++ b/crates/matrix-sdk-ui/tests/integration/timeline/subscribe.rs @@ -24,8 +24,8 @@ use matrix_sdk::{ }; use matrix_sdk_common::executor::spawn; use matrix_sdk_test::{ - ALICE, BOB, GlobalAccountDataTestEvent, JoinedRoomBuilder, SyncResponseBuilder, async_test, - event_factory::EventFactory, mocks::mock_encryption_state, + ALICE, BOB, JoinedRoomBuilder, SyncResponseBuilder, async_test, event_factory::EventFactory, + mocks::mock_encryption_state, }; use matrix_sdk_ui::timeline::{RoomExt, TimelineDetails}; use ruma::{ @@ -36,7 +36,6 @@ use ruma::{ }, room_id, user_id, }; -use serde_json::json; use stream_assert::assert_pending; use crate::mock_sync; @@ -237,14 +236,7 @@ async fn test_timeline_is_reset_when_a_user_is_ignored_or_unignored() { assert_pending!(timeline_stream); - sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({ - "content": { - "ignored_users": { - bob: {} - } - }, - "type": "m.ignored_user_list", - }))); + sync_builder.add_global_account_data(ev_factory.ignored_user_list([bob.to_owned()]).into_raw()); mock_sync(&server, sync_builder.build_json_sync_response(), None).await; let _response = client.sync_once(sync_settings.clone()).await.unwrap(); diff --git a/crates/matrix-sdk/tests/integration/client.rs b/crates/matrix-sdk/tests/integration/client.rs index fb9480739..c2f98739e 100644 --- a/crates/matrix-sdk/tests/integration/client.rs +++ b/crates/matrix-sdk/tests/integration/client.rs @@ -16,7 +16,9 @@ use matrix_sdk::{ use matrix_sdk_base::{sync::RoomUpdates, RoomState}; use matrix_sdk_common::executor::spawn; use matrix_sdk_test::{ - async_test, sync_state_event, + async_test, + event_factory::EventFactory, + sync_state_event, test_json::{ self, sync::{ @@ -26,7 +28,7 @@ use matrix_sdk_test::{ sync_events::PINNED_EVENTS, TAG, }, - GlobalAccountDataTestEvent, JoinedRoomBuilder, SyncResponseBuilder, DEFAULT_TEST_ROOM_ID, + JoinedRoomBuilder, SyncResponseBuilder, DEFAULT_TEST_ROOM_ID, }; use ruma::{ api::client::{ @@ -1295,28 +1297,14 @@ async fn test_dms_are_processed_in_any_sync_response() { let room_id_2 = room_id!("!s:e.uk"); let joined_room_builder = JoinedRoomBuilder::new(room_id_1); + let f = EventFactory::new(); let mut sync_response_builder = SyncResponseBuilder::new(); - sync_response_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom( - json!({ - "content": { - user_a_id: [ - room_id_1 - ], - user_b_id: [ - room_id_2 - ] - }, - "type": "m.direct", - "event_id": "$757957878228ekrDs:localhost", - "origin_server_ts": 17195787, - "sender": "@example:localhost", - "state_key": "", - "type": "m.direct", - "unsigned": { - "age": 139298 - } - }), - )); + sync_response_builder.add_global_account_data( + f.direct() + .add_user(user_a_id.to_owned().into(), room_id_1) + .add_user(user_b_id.to_owned().into(), room_id_2) + .into_raw(), + ); sync_response_builder.add_joined_room(joined_room_builder); let json_response = sync_response_builder.build_json_sync_response(); diff --git a/crates/matrix-sdk/tests/integration/event_cache/mod.rs b/crates/matrix-sdk/tests/integration/event_cache/mod.rs index 72c55d409..ae94f44cb 100644 --- a/crates/matrix-sdk/tests/integration/event_cache/mod.rs +++ b/crates/matrix-sdk/tests/integration/event_cache/mod.rs @@ -22,10 +22,7 @@ use matrix_sdk_base::event_cache::{ store::{EventCacheStore, MemoryStore}, Gap, }; -use matrix_sdk_test::{ - async_test, event_factory::EventFactory, GlobalAccountDataTestEvent, JoinedRoomBuilder, ALICE, - BOB, -}; +use matrix_sdk_test::{async_test, event_factory::EventFactory, JoinedRoomBuilder, ALICE, BOB}; use ruma::{ event_id, events::{ @@ -36,7 +33,6 @@ use ruma::{ room_version_rules::RedactionRules, user_id, EventId, }; -use serde_json::json; use tokio::{spawn, sync::broadcast, time::sleep}; mod threads; @@ -163,14 +159,8 @@ async fn test_ignored_unignored() { server .mock_sync() .ok_and_run(&client, |sync_builder| { - sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({ - "content": { - "ignored_users": { - dexter: {} - } - }, - "type": "m.ignored_user_list", - }))); + sync_builder + .add_global_account_data(f.ignored_user_list([dexter.to_owned()]).into_raw()); }) .await; diff --git a/crates/matrix-sdk/tests/integration/event_cache/threads.rs b/crates/matrix-sdk/tests/integration/event_cache/threads.rs index ccab2f3af..68ba7cf35 100644 --- a/crates/matrix-sdk/tests/integration/event_cache/threads.rs +++ b/crates/matrix-sdk/tests/integration/event_cache/threads.rs @@ -14,9 +14,7 @@ use matrix_sdk::{ }, Client, ThreadingSupport, }; -use matrix_sdk_test::{ - async_test, event_factory::EventFactory, GlobalAccountDataTestEvent, JoinedRoomBuilder, ALICE, -}; +use matrix_sdk_test::{async_test, event_factory::EventFactory, JoinedRoomBuilder, ALICE}; use ruma::{ event_id, events::{AnySyncTimelineEvent, Mentions}, @@ -25,7 +23,6 @@ use ruma::{ serde::Raw, user_id, OwnedEventId, OwnedRoomId, }; -use serde_json::json; use tokio::sync::broadcast; /// Small helper for backpagination tests, to wait for initial events to @@ -168,14 +165,8 @@ async fn test_ignored_user_empties_threads() { server .mock_sync() .ok_and_run(&client, |sync_builder| { - sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({ - "content": { - "ignored_users": { - dexter: {} - } - }, - "type": "m.ignored_user_list", - }))); + sync_builder + .add_global_account_data(f.ignored_user_list([dexter.to_owned()]).into_raw()); }) .await; @@ -506,12 +497,7 @@ async fn thread_subscription_test_setup() -> ThreadSubscriptionTestSetup { .mock_sync() .ok_and_run(&client, |sync_builder| { sync_builder.add_joined_room(JoinedRoomBuilder::new(room_id).add_state_event(member)); - sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({ - "type": "m.push_rules", - "content": { - "global": push_rules - } - }))); + sync_builder.add_global_account_data(f.push_rules(push_rules).into_raw()); }) .await; diff --git a/crates/matrix-sdk/tests/integration/room/common.rs b/crates/matrix-sdk/tests/integration/room/common.rs index 19de66484..fd36f4417 100644 --- a/crates/matrix-sdk/tests/integration/room/common.rs +++ b/crates/matrix-sdk/tests/integration/room/common.rs @@ -10,8 +10,8 @@ use matrix_sdk::{ }; use matrix_sdk_test::{ async_test, bulk_room_members, event_factory::EventFactory, sync_state_event, test_json, - GlobalAccountDataTestEvent, JoinedRoomBuilder, LeftRoomBuilder, StateTestEvent, - SyncResponseBuilder, BOB, DEFAULT_TEST_ROOM_ID, + JoinedRoomBuilder, LeftRoomBuilder, StateTestEvent, SyncResponseBuilder, BOB, + DEFAULT_TEST_ROOM_ID, }; use ruma::{ event_id, @@ -807,10 +807,10 @@ async fn test_is_direct() { room.set_is_direct(true).await.unwrap(); // Mock the sync response we should get from the homeserver. - sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({ - "type": "m.direct", - "content": direct_content, - }))); + let f = EventFactory::new(); + sync_builder.add_global_account_data( + f.direct().add_user((*BOB).to_owned().into(), *DEFAULT_TEST_ROOM_ID).into_raw(), + ); mock_sync(&server, sync_builder.build_json_sync_response(), None).await; let _response = client.sync_once(sync_settings.clone()).await.unwrap(); server.reset().await; @@ -835,10 +835,7 @@ async fn test_is_direct() { .await; // Mock the sync response we should get from the homeserver. - sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({ - "type": "m.direct", - "content": direct_content, - }))); + sync_builder.add_global_account_data(f.direct().into_raw()); mock_sync(&server, sync_builder.build_json_sync_response(), None).await; let _response = client.sync_once(sync_settings.clone()).await.unwrap(); server.reset().await; diff --git a/crates/matrix-sdk/tests/integration/room/joined.rs b/crates/matrix-sdk/tests/integration/room/joined.rs index 3a617081c..0e35a47e7 100644 --- a/crates/matrix-sdk/tests/integration/room/joined.rs +++ b/crates/matrix-sdk/tests/integration/room/joined.rs @@ -1036,22 +1036,12 @@ async fn test_reset_power_levels() { async fn test_is_direct_invite_by_3pid() { let (client, server) = logged_in_client_with_server().await; + let f = EventFactory::new(); let mut sync_builder = SyncResponseBuilder::new(); sync_builder.add_joined_room(JoinedRoomBuilder::default()); - let data = json!({ - "content": { - "invited@localhost.com": [*DEFAULT_TEST_ROOM_ID], - }, - "event_id": "$757957878228ekrDs:localhost", - "origin_server_ts": 17195787, - "sender": "@example:localhost", - "state_key": "", - "type": "m.direct", - "unsigned": { - "age": 139298 - } - }); - sync_builder.add_global_account_data_bulk(vec![from_value(data).unwrap()]); + sync_builder.add_global_account_data( + f.direct().add_user("invited@localhost.com".into(), *DEFAULT_TEST_ROOM_ID).into_raw(), + ); mock_sync(&server, sync_builder.build_json_sync_response(), None).await; mock_encryption_state(&server, false).await; diff --git a/testing/matrix-sdk-test/src/event_factory.rs b/testing/matrix-sdk-test/src/event_factory.rs index 9a46d7e5c..11c24084d 100644 --- a/testing/matrix-sdk-test/src/event_factory.rs +++ b/testing/matrix-sdk-test/src/event_factory.rs @@ -261,18 +261,6 @@ where .sender .or_else(|| Some(self.unsigned.as_ref()?.redacted_because.as_ref()?.sender.clone())); - if sender.is_none() { - assert!( - self.is_ephemeral || self.is_global, - "the sender must be known when building the JSON for a non read-receipt event" - ); - } else { - assert!( - !self.is_ephemeral && !self.is_global, - "event builder set is_ephemeral or is_global, but also has a sender field" - ); - } - let mut json = json!({ "type": E::TYPE, "content": self.content, @@ -282,7 +270,14 @@ where let map = json.as_object_mut().unwrap(); if let Some(sender) = sender { - map.insert("sender".to_owned(), json!(sender)); + if !self.is_ephemeral && !self.is_global { + map.insert("sender".to_owned(), json!(sender)); + } + } else { + assert!( + self.is_ephemeral || self.is_global, + "the sender must be known when building the JSON for a non read-receipt or global event" + ); } let event_id = self