From fe398de2fabf3ed378c9b8dc173f5720691a8386 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 22 Mar 2020 12:07:07 +0100 Subject: [PATCH 1/3] add test that fail on checking existance of a Message-ID with angle brackets --- src/dc_receive_imf.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index 16ddba483..b4cb083f3 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -1623,6 +1623,7 @@ fn dc_create_incoming_rfc724_mid( #[cfg(test)] mod tests { use super::*; + use crate::message::Message; use crate::test_utils::dummy_context; #[test] @@ -1682,4 +1683,38 @@ mod tests { Some("123-45-9@stub".into()) ); } + + #[test] + fn test_is_known_rfc724_mid() { + let t = dummy_context(); + let mut msg = Message::new(Viewtype::Text); + msg.text = Some("first message".to_string()); + let msg_id = chat::add_device_msg(&t.ctx, None, Some(&mut msg)).unwrap(); + let msg = Message::load_from_db(&t.ctx, msg_id).unwrap(); + + // Message-IDs may or may not be surrounded by angle brackets + assert!(is_known_rfc724_mid( + &t.ctx, + format!("<{}>", msg.rfc724_mid).as_str() + )); + assert!(is_known_rfc724_mid(&t.ctx, &msg.rfc724_mid)); + assert!(!is_known_rfc724_mid(&t.ctx, "unexistant@message.id")); + } + + #[test] + fn test_is_msgrmsg_rfc724_mid() { + let t = dummy_context(); + let mut msg = Message::new(Viewtype::Text); + msg.text = Some("first message".to_string()); + let msg_id = chat::add_device_msg(&t.ctx, None, Some(&mut msg)).unwrap(); + let msg = Message::load_from_db(&t.ctx, msg_id).unwrap(); + + // Message-IDs may or may not be surrounded by angle brackets + assert!(is_msgrmsg_rfc724_mid( + &t.ctx, + format!("<{}>", msg.rfc724_mid).as_str() + )); + assert!(is_msgrmsg_rfc724_mid(&t.ctx, &msg.rfc724_mid)); + assert!(!is_msgrmsg_rfc724_mid(&t.ctx, "unexistant@message.id")); + } } From 8f82bf40e0de7fb6e4bb86bfad8ab7b63e662963 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 22 Mar 2020 12:20:14 +0100 Subject: [PATCH 2/3] let function that search for Message-IDs accept widly used square brackets format --- src/dc_receive_imf.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index b4cb083f3..a0ff8adea 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -1488,6 +1488,7 @@ fn is_known_rfc724_mid_in_list(context: &Context, mid_list: &str) -> bool { /// Check if a message is a reply to a known message (messenger or non-messenger). fn is_known_rfc724_mid(context: &Context, rfc724_mid: &str) -> bool { + let rfc724_mid = rfc724_mid.trim_start_matches('<').trim_end_matches('>'); context .sql .exists( @@ -1534,6 +1535,7 @@ pub(crate) fn is_msgrmsg_rfc724_mid_in_list(context: &Context, mid_list: &str) - /// Check if a message is a reply to any messenger message. fn is_msgrmsg_rfc724_mid(context: &Context, rfc724_mid: &str) -> bool { + let rfc724_mid = rfc724_mid.trim_start_matches('<').trim_end_matches('>'); context .sql .exists( From ae5a2396f3e9ba9c739d06d31560088ce2a10615 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 22 Mar 2020 16:18:53 +0100 Subject: [PATCH 3/3] fix typo --- src/dc_receive_imf.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index a0ff8adea..f4ec776f2 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -1700,7 +1700,7 @@ mod tests { format!("<{}>", msg.rfc724_mid).as_str() )); assert!(is_known_rfc724_mid(&t.ctx, &msg.rfc724_mid)); - assert!(!is_known_rfc724_mid(&t.ctx, "unexistant@message.id")); + assert!(!is_known_rfc724_mid(&t.ctx, "nonexistant@message.id")); } #[test] @@ -1717,6 +1717,6 @@ mod tests { format!("<{}>", msg.rfc724_mid).as_str() )); assert!(is_msgrmsg_rfc724_mid(&t.ctx, &msg.rfc724_mid)); - assert!(!is_msgrmsg_rfc724_mid(&t.ctx, "unexistant@message.id")); + assert!(!is_msgrmsg_rfc724_mid(&t.ctx, "nonexistant@message.id")); } }