From 1ba2f584cb4cde460e65412d08624fee4d6d5988 Mon Sep 17 00:00:00 2001 From: Devin R Date: Sat, 23 May 2020 08:14:29 -0400 Subject: [PATCH 1/2] add the `messages` feature to dev-deps so the tests are run --- matrix_sdk/Cargo.toml | 5 + matrix_sdk_base/src/models/message.rs | 199 ++++++++------------------ 2 files changed, 66 insertions(+), 138 deletions(-) diff --git a/matrix_sdk/Cargo.toml b/matrix_sdk/Cargo.toml index d04637f5..86af9d85 100644 --- a/matrix_sdk/Cargo.toml +++ b/matrix_sdk/Cargo.toml @@ -50,3 +50,8 @@ tempfile = "3.1.0" mockito = "0.25.1" lazy_static = "1.4.0" futures = "0.3.5" + +[dev-dependencies.matrix-sdk-base] +version = "0.1.0" +path = "../matrix_sdk_base" +features = ["messages"] diff --git a/matrix_sdk_base/src/models/message.rs b/matrix_sdk_base/src/models/message.rs index 0262b757..215293ee 100644 --- a/matrix_sdk_base/src/models/message.rs +++ b/matrix_sdk_base/src/models/message.rs @@ -161,104 +161,42 @@ mod test { let event = serde_json::from_str::>(&json).unwrap(); let mut msgs = MessageQueue::new(); - if let Ok(ev) = event.deserialize() { - if let RoomEvent::RoomMessage(msg) = ev { - msgs.push(msg); - } - } - room.messages = msgs; + let message = if let RoomEvent::RoomMessage(msg) = event.deserialize().unwrap() { + msgs.push(msg.clone()); + msg + } else { + panic!("this should always be a RoomMessage") + }; + room.messages = msgs.clone(); let mut joined_rooms = HashMap::new(); joined_rooms.insert(id, room); - // println!("{}", serde_json::to_string_pretty(&joined_rooms).unwrap()); - - // this is the correct JSON string changes to `ruma-events` have not been released - // that would fix the doubling of fields - // TODO uncomment when fixed - // assert_eq!( - // r#"{ - // "!roomid:example.com": { - // "room_id": "!roomid:example.com", - // "room_name": { - // "name": null, - // "canonical_alias": null, - // "aliases": [], - // "heroes": [], - // "joined_member_count": null, - // "invited_member_count": null - // }, - // "own_user_id": "@example:example.com", - // "creator": null, - // "members": {}, - // "messages": [ - // { - // "type": "m.room.message", - // "content": { - // "body": "is dancing", - // "format": "org.matrix.custom.html", - // "formatted_body": "is dancing", - // "msgtype": "m.text" - // }, - // "event_id": "$152037280074GZeOm:localhost", - // "origin_server_ts": 1520372800469, - // "sender": "@example:localhost", - // "unsigned": { - // "age": 598971425 - // } - // } - // ], - // "typing_users": [], - // "power_levels": null, - // "encrypted": false, - // "unread_highlight": null, - // "unread_notifications": null, - // "tombstone": null - // } - // }"#, - // serde_json::to_string_pretty(&joined_rooms).unwrap() - // ); assert_eq!( - r#"{ - "!roomid:example.com": { - "room_id": "!roomid:example.com", - "room_name": { - "name": null, - "canonical_alias": null, - "aliases": [], - "heroes": [], - "joined_member_count": null, - "invited_member_count": null - }, - "own_user_id": "@example:example.com", - "creator": null, - "members": {}, - "messages": [ - { - "content": { - "msgtype": "m.text", - "msgtype": "m.text", - "body": "is dancing", - "format": "org.matrix.custom.html", - "formatted_body": "is dancing" - }, - "event_id": "$152037280074GZeOm:localhost", - "origin_server_ts": 1520372800469, - "sender": "@example:localhost", - "unsigned": { - "age": 598971425 - } - } - ], - "typing_users": [], - "power_levels": null, - "encrypted": false, - "unread_highlight": null, - "unread_notifications": null, - "tombstone": null - } -}"#, - serde_json::to_string_pretty(&joined_rooms).unwrap() + serde_json::json!({ + "!roomid:example.com": { + "room_id": "!roomid:example.com", + "room_name": { + "name": null, + "canonical_alias": null, + "aliases": [], + "heroes": [], + "joined_member_count": null, + "invited_member_count": null + }, + "own_user_id": "@example:example.com", + "creator": null, + "members": {}, + "messages": [ message ], + "typing_users": [], + "power_levels": null, + "encrypted": null, + "unread_highlight": null, + "unread_notifications": null, + "tombstone": null + } + }), + serde_json::to_value(&joined_rooms).unwrap() ); } @@ -273,58 +211,43 @@ mod test { let event = serde_json::from_str::>(&json).unwrap(); let mut msgs = MessageQueue::new(); - if let Ok(ev) = event.deserialize() { - if let RoomEvent::RoomMessage(msg) = ev { - msgs.push(msg); - } - } + let message = if let RoomEvent::RoomMessage(msg) = event.deserialize().unwrap() { + msgs.push(msg.clone()); + msg + } else { + panic!("this should always be a RoomMessage") + }; room.messages = msgs; let mut joined_rooms = HashMap::new(); joined_rooms.insert(id, room.clone()); - let json = r#"{ - "!roomid:example.com": { - "room_id": "!roomid:example.com", - "room_name": { - "name": null, - "canonical_alias": null, - "aliases": [], - "heroes": [], - "joined_member_count": null, - "invited_member_count": null - }, - "own_user_id": "@example:example.com", - "creator": null, - "members": {}, - "messages": [ - { - "type": "m.room.message", - "content": { - "body": "is dancing", - "format": "org.matrix.custom.html", - "formatted_body": "is dancing", - "msgtype": "m.text" - }, - "event_id": "$152037280074GZeOm:localhost", - "origin_server_ts": 1520372800469, - "sender": "@example:localhost", - "unsigned": { - "age": 598971425 - } - } - ], - "typing_users": [], - "power_levels": null, - "encrypted": false, - "unread_highlight": null, - "unread_notifications": null, - "tombstone": null - } -}"#; + let json = serde_json::json!({ + "!roomid:example.com": { + "room_id": "!roomid:example.com", + "room_name": { + "name": null, + "canonical_alias": null, + "aliases": [], + "heroes": [], + "joined_member_count": null, + "invited_member_count": null + }, + "own_user_id": "@example:example.com", + "creator": null, + "members": {}, + "messages": [ message ], + "typing_users": [], + "power_levels": null, + "encrypted": null, + "unread_highlight": null, + "unread_notifications": null, + "tombstone": null + } + }); assert_eq!( joined_rooms, - serde_json::from_str::>(json).unwrap() + serde_json::from_value::>(json).unwrap() ); } } From b24b4b7423e9e02047843cb8a099aab3f31eaa04 Mon Sep 17 00:00:00 2001 From: Devin R Date: Mon, 25 May 2020 07:37:49 -0400 Subject: [PATCH 2/2] messages: enable this feature by default --- matrix_sdk/Cargo.toml | 5 ----- matrix_sdk_base/Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/matrix_sdk/Cargo.toml b/matrix_sdk/Cargo.toml index 86af9d85..d04637f5 100644 --- a/matrix_sdk/Cargo.toml +++ b/matrix_sdk/Cargo.toml @@ -50,8 +50,3 @@ tempfile = "3.1.0" mockito = "0.25.1" lazy_static = "1.4.0" futures = "0.3.5" - -[dev-dependencies.matrix-sdk-base] -version = "0.1.0" -path = "../matrix_sdk_base" -features = ["messages"] diff --git a/matrix_sdk_base/Cargo.toml b/matrix_sdk_base/Cargo.toml index cb7ec9f4..8a473992 100644 --- a/matrix_sdk_base/Cargo.toml +++ b/matrix_sdk_base/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/matrix-org/matrix-rust-sdk" version = "0.1.0" [features] -default = ["encryption", "sqlite-cryptostore"] +default = ["encryption", "sqlite-cryptostore", "messages"] messages = [] encryption = ["matrix-sdk-crypto"] sqlite-cryptostore = ["matrix-sdk-crypto/sqlite-cryptostore"]