From 0e39a7cbf2daa95b3d1d613d558b9d2caf810e10 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Wed, 25 Jan 2023 14:15:25 +0100 Subject: [PATCH] chore: Upgrade Ruma --- Cargo.lock | 14 +- Cargo.toml | 4 +- crates/matrix-sdk-appservice/src/lib.rs | 4 +- crates/matrix-sdk-base/src/rooms/mod.rs | 16 +- crates/matrix-sdk-base/src/store/mod.rs | 15 +- crates/matrix-sdk-base/src/utils.rs | 138 ++++++++++++++++-- .../src/event_handler/static_events.rs | 11 +- crates/matrix-sdk/src/events.rs | 15 +- crates/matrix-sdk/src/room/common.rs | 12 +- crates/matrix-sdk/src/room/timeline/tests.rs | 8 +- .../tests/integration/room/common.rs | 10 +- 11 files changed, 188 insertions(+), 59 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 904989475..757f901fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3958,7 +3958,7 @@ dependencies = [ [[package]] name = "ruma" version = "0.7.4" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "assign", "js_int", @@ -3972,7 +3972,7 @@ dependencies = [ [[package]] name = "ruma-appservice-api" version = "0.7.0" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "js_int", "ruma-common", @@ -3983,7 +3983,7 @@ dependencies = [ [[package]] name = "ruma-client-api" version = "0.15.3" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "assign", "bytes", @@ -4000,7 +4000,7 @@ dependencies = [ [[package]] name = "ruma-common" version = "0.10.5" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "base64 0.20.0", "bytes", @@ -4031,7 +4031,7 @@ dependencies = [ [[package]] name = "ruma-federation-api" version = "0.6.0" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "js_int", "ruma-common", @@ -4042,7 +4042,7 @@ dependencies = [ [[package]] name = "ruma-identifiers-validation" version = "0.9.0" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "js_int", "thiserror", @@ -4051,7 +4051,7 @@ dependencies = [ [[package]] name = "ruma-macros" version = "0.10.5" -source = "git+https://github.com/ruma/ruma?rev=19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8#19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" +source = "git+https://github.com/ruma/ruma?rev=69337d1f4e4790a96c40377e895c0b1e44785e14#69337d1f4e4790a96c40377e895c0b1e44785e14" dependencies = [ "once_cell", "proc-macro-crate", diff --git a/Cargo.toml b/Cargo.toml index 46778fca1..c27188b2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,8 +27,8 @@ byteorder = "1.4.3" ctor = "0.1.26" dashmap = "5.2.0" http = "0.2.6" -ruma = { git = "https://github.com/ruma/ruma", rev = "19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8", features = ["client-api-c"] } -ruma-common = { git = "https://github.com/ruma/ruma", rev = "19f68065f1d5acf3997a4f6d2ccd74549f7cd1d8" } +ruma = { git = "https://github.com/ruma/ruma", rev = "69337d1f4e4790a96c40377e895c0b1e44785e14", features = ["client-api-c"] } +ruma-common = { git = "https://github.com/ruma/ruma", rev = "69337d1f4e4790a96c40377e895c0b1e44785e14" } once_cell = "1.16.0" serde = "1.0.151" serde_html_form = "0.2.0" diff --git a/crates/matrix-sdk-appservice/src/lib.rs b/crates/matrix-sdk-appservice/src/lib.rs index ec24bca33..1af38e122 100644 --- a/crates/matrix-sdk-appservice/src/lib.rs +++ b/crates/matrix-sdk-appservice/src/lib.rs @@ -724,7 +724,7 @@ mod tests { let appservice = appservice(None, None).await?; appservice.register_user_query(Box::new(|_, _| Box::pin(async move { true }))).await; - let uri = "/_matrix/app/v1/users/%40_botty_1%3Adev.famedly.local?access_token=hs_token"; + let uri = "/_matrix/app/v1/users/%40_botty_1:dev.famedly.local?access_token=hs_token"; let response = appservice .service() @@ -742,7 +742,7 @@ mod tests { let appservice = appservice(None, None).await?; appservice.register_room_query(Box::new(|_, _| Box::pin(async move { true }))).await; - let uri = "/_matrix/app/v1/rooms/%23magicforest%3Aexample.com?access_token=hs_token"; + let uri = "/_matrix/app/v1/rooms/%23magicforest:example.com?access_token=hs_token"; let response = appservice .service() diff --git a/crates/matrix-sdk-base/src/rooms/mod.rs b/crates/matrix-sdk-base/src/rooms/mod.rs index 9aa9b8793..7ef982238 100644 --- a/crates/matrix-sdk-base/src/rooms/mod.rs +++ b/crates/matrix-sdk-base/src/rooms/mod.rs @@ -6,6 +6,7 @@ use std::{collections::HashSet, fmt}; pub use members::RoomMember; pub use normal::{Room, RoomInfo, RoomType}; use ruma::{ + assign, events::{ room::{ avatar::RoomAvatarEventContent, canonical_alias::RoomCanonicalAliasEventContent, @@ -17,7 +18,7 @@ use ruma::{ topic::RoomTopicEventContent, }, AnyStrippedStateEvent, AnySyncStateEvent, RedactContent, RedactedStateEventContent, - StateEventContent, SyncStateEvent, + StaticStateEventContent, SyncStateEvent, }, EventId, OwnedUserId, RoomVersionId, }; @@ -158,7 +159,16 @@ impl BaseRoomInfo { pub fn handle_stripped_state_event(&mut self, ev: &AnyStrippedStateEvent) -> bool { match ev { AnyStrippedStateEvent::RoomEncryption(encryption) => { - self.encryption = Some(encryption.content.clone()); + if let Some(algorithm) = &encryption.content.algorithm { + let content = assign!(RoomEncryptionEventContent::new(algorithm.clone()), { + rotation_period_ms: encryption.content.rotation_period_ms, + rotation_period_msgs: encryption.content.rotation_period_msgs, + }); + self.encryption = Some(content); + } + // If encryption event is redacted, we don't care much. When + // entering the room, we will fetch the proper event before + // sending any messages. } AnyStrippedStateEvent::RoomAvatar(a) => { self.avatar = Some(a.into()); @@ -232,7 +242,7 @@ trait OptionExt { impl OptionExt for Option> where - C: StateEventContent + RedactContent, + C: StaticStateEventContent + RedactContent, C::Redacted: RedactedStateEventContent, { fn has_event_id(&self, ev_id: &EventId) -> bool { diff --git a/crates/matrix-sdk-base/src/store/mod.rs b/crates/matrix-sdk-base/src/store/mod.rs index 43b20a314..490d5c9dd 100644 --- a/crates/matrix-sdk-base/src/store/mod.rs +++ b/crates/matrix-sdk-base/src/store/mod.rs @@ -55,14 +55,13 @@ use ruma::{ }, AnyGlobalAccountDataEvent, AnyRoomAccountDataEvent, AnyStrippedStateEvent, AnySyncStateEvent, EmptyStateKey, GlobalAccountDataEvent, GlobalAccountDataEventContent, - GlobalAccountDataEventType, OriginalStateEventContent, RedactedStateEventContent, - RoomAccountDataEvent, RoomAccountDataEventContent, RoomAccountDataEventType, - StateEventType, StaticEventContent, SyncStateEvent, + GlobalAccountDataEventType, RedactContent, RedactedStateEventContent, RoomAccountDataEvent, + RoomAccountDataEventContent, RoomAccountDataEventType, StateEventType, StaticEventContent, + StaticStateEventContent, SyncStateEvent, }, serde::Raw, EventId, MxcUri, OwnedEventId, OwnedRoomId, OwnedUserId, RoomId, UserId, }; -use serde::de::DeserializeOwned; /// BoxStream of owned Types pub type BoxStream = Pin + Send>>; @@ -385,8 +384,8 @@ pub trait StateStoreExt: StateStore { room_id: &RoomId, ) -> Result>>> where - C: StaticEventContent + OriginalStateEventContent, - C::Redacted: RedactedStateEventContent + DeserializeOwned, + C: StaticEventContent + StaticStateEventContent + RedactContent, + C::Redacted: RedactedStateEventContent, { Ok(self.get_state_event(room_id, C::TYPE.into(), "").await?.map(Raw::cast)) } @@ -402,7 +401,7 @@ pub trait StateStoreExt: StateStore { state_key: &K, ) -> Result>>> where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent + RedactContent, C::StateKey: Borrow, C::Redacted: RedactedStateEventContent, K: AsRef + ?Sized + Sync, @@ -420,7 +419,7 @@ pub trait StateStoreExt: StateStore { room_id: &RoomId, ) -> Result>>> where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent + RedactContent, C::Redacted: RedactedStateEventContent, { // FIXME: Could be more efficient, if we had streaming store accessor functions diff --git a/crates/matrix-sdk-base/src/utils.rs b/crates/matrix-sdk-base/src/utils.rs index 0bc5b8063..46134be75 100644 --- a/crates/matrix-sdk-base/src/utils.rs +++ b/crates/matrix-sdk-base/src/utils.rs @@ -1,8 +1,28 @@ use ruma::{ + assign, events::{ - room::member::{MembershipState, RoomMemberEventContent}, - OriginalStateEventContent, RedactContent, RedactedStateEventContent, StateEventContent, - StrippedStateEvent, SyncStateEvent, + room::{ + avatar::{RoomAvatarEventContent, StrippedRoomAvatarEvent}, + canonical_alias::{RoomCanonicalAliasEventContent, StrippedRoomCanonicalAliasEvent}, + create::{RoomCreateEventContent, StrippedRoomCreateEvent}, + guest_access::{ + RedactedRoomGuestAccessEventContent, RoomGuestAccessEventContent, + StrippedRoomGuestAccessEvent, + }, + history_visibility::{ + RoomHistoryVisibilityEventContent, StrippedRoomHistoryVisibilityEvent, + }, + join_rules::{RoomJoinRulesEventContent, StrippedRoomJoinRulesEvent}, + member::{MembershipState, RoomMemberEventContent}, + name::{RoomNameEventContent, StrippedRoomNameEvent}, + tombstone::{ + RedactedRoomTombstoneEventContent, RoomTombstoneEventContent, + StrippedRoomTombstoneEvent, + }, + topic::{RedactedRoomTopicEventContent, RoomTopicEventContent, StrippedRoomTopicEvent}, + }, + RedactContent, RedactedStateEventContent, StateEventContent, StaticStateEventContent, + SyncStateEvent, }, EventId, OwnedEventId, RoomVersionId, }; @@ -125,7 +145,7 @@ impl MinimalRoomMemberEvent { impl From> for MinimalStateEvent where - C: OriginalStateEventContent, + C: StaticStateEventContent + RedactContent, C::Redacted: RedactedStateEventContent, { fn from(ev: SyncStateEvent) -> Self { @@ -144,7 +164,7 @@ where impl From<&SyncStateEvent> for MinimalStateEvent where - C: Clone + OriginalStateEventContent, + C: Clone + StaticStateEventContent + RedactContent, C::Redacted: Clone + RedactedStateEventContent, { fn from(ev: &SyncStateEvent) -> Self { @@ -161,12 +181,106 @@ where } } -impl From<&StrippedStateEvent> for MinimalStateEvent -where - C: Clone + StateEventContent + RedactContent, - C::Redacted: RedactedStateEventContent, -{ - fn from(ev: &StrippedStateEvent) -> Self { - Self::Original(OriginalMinimalStateEvent { content: ev.content.clone(), event_id: None }) +impl From<&StrippedRoomAvatarEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomAvatarEvent) -> Self { + let content = assign!(RoomAvatarEventContent::new(), { + info: event.content.info.clone(), + url: event.content.url.clone(), + }); + // event might actually be redacted, there is no way to tell for + // stripped state events. + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } +} + +impl From<&StrippedRoomNameEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomNameEvent) -> Self { + let content = RoomNameEventContent::new(event.content.name.clone()); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } +} + +impl From<&StrippedRoomCreateEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomCreateEvent) -> Self { + let content = assign!(RoomCreateEventContent::new(event.content.creator.clone()), { + federate: event.content.federate, + room_version: event.content.room_version.clone(), + predecessor: event.content.predecessor.clone(), + room_type: event.content.room_type.clone(), + }); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } +} + +impl From<&StrippedRoomHistoryVisibilityEvent> + for MinimalStateEvent +{ + fn from(event: &StrippedRoomHistoryVisibilityEvent) -> Self { + let content = + RoomHistoryVisibilityEventContent::new(event.content.history_visibility.clone()); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } +} + +impl From<&StrippedRoomGuestAccessEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomGuestAccessEvent) -> Self { + match &event.content.guest_access { + Some(guest_access) => { + let content = RoomGuestAccessEventContent::new(guest_access.clone()); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } + None => { + let content = RedactedRoomGuestAccessEventContent::new(); + Self::Redacted(RedactedMinimalStateEvent { content, event_id: None }) + } + } + } +} + +impl From<&StrippedRoomJoinRulesEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomJoinRulesEvent) -> Self { + let content = RoomJoinRulesEventContent::new(event.content.join_rule.clone()); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } +} + +impl From<&StrippedRoomCanonicalAliasEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomCanonicalAliasEvent) -> Self { + let content = assign!(RoomCanonicalAliasEventContent::new(), { + alias: event.content.alias.clone(), + alt_aliases: event.content.alt_aliases.clone(), + }); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } +} + +impl From<&StrippedRoomTopicEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomTopicEvent) -> Self { + match &event.content.topic { + Some(topic) => { + let content = RoomTopicEventContent::new(topic.clone()); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } + None => { + let content = RedactedRoomTopicEventContent::new(); + Self::Redacted(RedactedMinimalStateEvent { content, event_id: None }) + } + } + } +} + +impl From<&StrippedRoomTombstoneEvent> for MinimalStateEvent { + fn from(event: &StrippedRoomTombstoneEvent) -> Self { + match (&event.content.body, &event.content.replacement_room) { + (Some(body), Some(replacement_room)) => { + let content = + RoomTombstoneEventContent::new(body.clone(), replacement_room.clone()); + Self::Original(OriginalMinimalStateEvent { content, event_id: None }) + } + _ => { + let content = RedactedRoomTombstoneEventContent::new(); + Self::Redacted(RedactedMinimalStateEvent { content, event_id: None }) + } + } } } diff --git a/crates/matrix-sdk/src/event_handler/static_events.rs b/crates/matrix-sdk/src/event_handler/static_events.rs index b1b39012e..4037b404f 100644 --- a/crates/matrix-sdk/src/event_handler/static_events.rs +++ b/crates/matrix-sdk/src/event_handler/static_events.rs @@ -21,9 +21,10 @@ use ruma::{ AnyGlobalAccountDataEvent, AnyRoomAccountDataEvent, AnyStrippedStateEvent, AnySyncEphemeralRoomEvent, AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent, AnyToDeviceEvent, EphemeralRoomEventContent, - GlobalAccountDataEventContent, MessageLikeEventContent, OriginalStateEventContent, + GlobalAccountDataEventContent, MessageLikeEventContent, PossiblyRedactedStateEventContent, RedactContent, RedactedMessageLikeEventContent, RedactedStateEventContent, - RoomAccountDataEventContent, StateEventContent, StaticEventContent, ToDeviceEventContent, + RoomAccountDataEventContent, StaticEventContent, StaticStateEventContent, + ToDeviceEventContent, }, serde::Raw, }; @@ -99,7 +100,7 @@ impl SyncEvent for events::room::redaction::RedactedSyncRoomRedactionEvent { impl SyncEvent for events::SyncStateEvent where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent + RedactContent, C::Redacted: RedactedStateEventContent, { const KIND: HandlerKind = HandlerKind::State; @@ -108,7 +109,7 @@ where impl SyncEvent for events::OriginalSyncStateEvent where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent, { const KIND: HandlerKind = HandlerKind::OriginalState; const TYPE: Option<&'static str> = Some(C::TYPE); @@ -124,7 +125,7 @@ where impl SyncEvent for events::StrippedStateEvent where - C: StaticEventContent + StateEventContent, + C: StaticEventContent + PossiblyRedactedStateEventContent, { const KIND: HandlerKind = HandlerKind::StrippedState; const TYPE: Option<&'static str> = Some(C::TYPE); diff --git a/crates/matrix-sdk/src/events.rs b/crates/matrix-sdk/src/events.rs index 75a54d960..1f83f2163 100644 --- a/crates/matrix-sdk/src/events.rs +++ b/crates/matrix-sdk/src/events.rs @@ -1,10 +1,10 @@ use ruma::{ events::{ BundledRelations, EventContent, EventContentFromType, MessageLikeEventContent, - MessageLikeEventType, MessageLikeUnsigned, OriginalStateEventContent, - OriginalSyncMessageLikeEvent, OriginalSyncStateEvent, RedactContent, + MessageLikeEventType, MessageLikeUnsigned, OriginalSyncMessageLikeEvent, + OriginalSyncStateEvent, PossiblyRedactedStateEventContent, RedactContent, RedactedMessageLikeEventContent, RedactedStateEventContent, RedactedSyncMessageLikeEvent, - RedactedSyncStateEvent, StateEventContent, StateEventType, + RedactedSyncStateEvent, StateEventContent, StateEventType, StaticStateEventContent, }, serde::from_raw_json_value, EventId, MilliSecondsSinceUnixEpoch, TransactionId, UserId, @@ -150,11 +150,16 @@ impl RedactContent for NoStateEventContent { impl StateEventContent for NoStateEventContent { type StateKey = String; } -impl OriginalStateEventContent for NoStateEventContent { +impl StaticStateEventContent for NoStateEventContent { // We don't care about the `prev_content` since it wont deserialize with useful // data. Use this type which is `StateUnsigned` minus the `prev_content` // field. type Unsigned = MessageLikeUnsigned; type PossiblyRedacted = Self; } -impl RedactedStateEventContent for NoStateEventContent {} +impl RedactedStateEventContent for NoStateEventContent { + type StateKey = String; +} +impl PossiblyRedactedStateEventContent for NoStateEventContent { + type StateKey = String; +} diff --git a/crates/matrix-sdk/src/room/common.rs b/crates/matrix-sdk/src/room/common.rs index ea5b42a4c..431415b48 100644 --- a/crates/matrix-sdk/src/room/common.rs +++ b/crates/matrix-sdk/src/room/common.rs @@ -33,9 +33,9 @@ use ruma::{ server_acl::RoomServerAclEventContent, MediaSource, }, tag::{TagInfo, TagName}, - AnyRoomAccountDataEvent, AnyStateEvent, AnySyncStateEvent, EmptyStateKey, - OriginalStateEventContent, RedactedStateEventContent, RoomAccountDataEvent, - RoomAccountDataEventContent, RoomAccountDataEventType, StateEventType, StaticEventContent, + AnyRoomAccountDataEvent, AnyStateEvent, AnySyncStateEvent, EmptyStateKey, RedactContent, + RedactedStateEventContent, RoomAccountDataEvent, RoomAccountDataEventContent, + RoomAccountDataEventType, StateEventType, StaticEventContent, StaticStateEventContent, SyncStateEvent, }, serde::Raw, @@ -581,7 +581,7 @@ impl Common { /// ``` pub async fn get_state_events_static(&self) -> Result>>> where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent + RedactContent, C::Redacted: RedactedStateEventContent, { Ok(self.client.store().get_state_events_static(self.room_id()).await?) @@ -620,7 +620,7 @@ impl Common { /// ``` pub async fn get_state_event_static(&self) -> Result>>> where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent + RedactContent, C::Redacted: RedactedStateEventContent, { self.get_state_event_static_for_key(&EmptyStateKey).await @@ -648,7 +648,7 @@ impl Common { state_key: &K, ) -> Result>>> where - C: StaticEventContent + OriginalStateEventContent, + C: StaticEventContent + StaticStateEventContent + RedactContent, C::StateKey: Borrow, C::Redacted: RedactedStateEventContent, K: AsRef + ?Sized + Sync, diff --git a/crates/matrix-sdk/src/room/timeline/tests.rs b/crates/matrix-sdk/src/room/timeline/tests.rs index bc7db07ee..3fe1cfef7 100644 --- a/crates/matrix-sdk/src/room/timeline/tests.rs +++ b/crates/matrix-sdk/src/room/timeline/tests.rs @@ -46,8 +46,8 @@ use ruma::{ topic::RedactedRoomTopicEventContent, }, AnyMessageLikeEventContent, EmptyStateKey, FullStateEventContent, MessageLikeEventContent, - MessageLikeEventType, OriginalStateEventContent, RedactedStateEventContent, - StateEventContent, StateEventType, + MessageLikeEventType, RedactedStateEventContent, StateEventContent, StateEventType, + StaticStateEventContent, }, room_id, serde::Raw, @@ -767,7 +767,7 @@ impl TestTimeline { content: C, prev_content: Option, ) where - C: OriginalStateEventContent, + C: StaticStateEventContent, { let ev = make_state_event(sender, "", content, prev_content); let raw = Raw::new(&ev).unwrap().cast(); @@ -781,7 +781,7 @@ impl TestTimeline { content: C, prev_content: Option, ) where - C: OriginalStateEventContent, + C: StaticStateEventContent, { let ev = make_state_event(sender, state_key.as_ref(), content, prev_content); let raw = Raw::new(&ev).unwrap().cast(); diff --git a/crates/matrix-sdk/tests/integration/room/common.rs b/crates/matrix-sdk/tests/integration/room/common.rs index 821681960..bc14fbb1e 100644 --- a/crates/matrix-sdk/tests/integration/room/common.rs +++ b/crates/matrix-sdk/tests/integration/room/common.rs @@ -369,7 +369,7 @@ async fn room_permalink() { assert_eq!( room.matrix_to_permalink().await.unwrap().to_string(), - "https://matrix.to/#/%21test_room%3A127.0.0.1?via=notarealhs&via=localhost" + "https://matrix.to/#/!test_room:127.0.0.1?via=notarealhs&via=localhost" ); assert_eq!( room.matrix_permalink(false).await.unwrap().to_string(), @@ -395,7 +395,7 @@ async fn room_permalink() { assert_eq!( room.matrix_to_permalink().await.unwrap().to_string(), - "https://matrix.to/#/%23alias%3Alocalhost" + "https://matrix.to/#/%23alias:localhost" ); assert_eq!(room.matrix_permalink(false).await.unwrap().to_string(), "matrix:r/alias:localhost"); @@ -418,7 +418,7 @@ async fn room_permalink() { assert_eq!( room.matrix_to_permalink().await.unwrap().to_string(), - "https://matrix.to/#/%23canonical%3Alocalhost" + "https://matrix.to/#/%23canonical:localhost" ); assert_eq!( room.matrix_permalink(false).await.unwrap().to_string(), @@ -459,7 +459,7 @@ async fn room_event_permalink() { assert_eq!( room.matrix_to_event_permalink(event_id).await.unwrap().to_string(), - "https://matrix.to/#/%21test_room%3A127.0.0.1/%2415139375512JaHAW?via=notarealhs&via=localhost" + "https://matrix.to/#/!test_room:127.0.0.1/$15139375512JaHAW?via=notarealhs&via=localhost" ); assert_eq!( room.matrix_event_permalink(event_id).await.unwrap().to_string(), @@ -485,7 +485,7 @@ async fn room_event_permalink() { assert_eq!( room.matrix_to_event_permalink(event_id).await.unwrap().to_string(), - "https://matrix.to/#/%21test_room%3A127.0.0.1/%2415139375512JaHAW?via=notarealhs&via=localhost" + "https://matrix.to/#/!test_room:127.0.0.1/$15139375512JaHAW?via=notarealhs&via=localhost" ); assert_eq!( room.matrix_event_permalink(event_id).await.unwrap().to_string(),