From b1d862bc7d72b02124291e5847f69d45dfc773ba Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Fri, 7 Aug 2020 00:42:01 +0200 Subject: [PATCH 1/2] add a higher-level test for dc_get_filemeta() test that, in general, msg.get_width() and msg.get_height() return reasonable values. --- src/message.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/message.rs b/src/message.rs index 08a222aea..5a62810a7 100644 --- a/src/message.rs +++ b/src/message.rs @@ -1721,6 +1721,7 @@ pub async fn dc_empty_server(context: &Context, flags: u32) { #[cfg(test)] mod tests { use super::*; + use crate::chat::ChatItem; use crate::test_utils as test; #[test] @@ -1863,4 +1864,32 @@ mod tests { assert_eq!(webrtc_type, VideochatType::Jitsi); assert_eq!(url, "https://j.si/foo"); } + + #[async_std::test] + async fn test_get_width_height() { + let t = test::TestContext::new().await; + + // test that get_width() and get_height() are returning some dimensions for images; + // (as the device-chat contains a welcome-images, we check that) + t.ctx.update_device_chats().await.ok(); + let (device_chat_id, _) = + chat::create_or_lookup_by_contact_id(&t.ctx, DC_CONTACT_ID_DEVICE, Blocked::Not) + .await + .unwrap(); + + let mut has_image = false; + let chatitems = chat::get_chat_msgs(&t.ctx, device_chat_id, 0, None).await; + for chatitem in chatitems { + if let ChatItem::Message { msg_id } = chatitem { + if let Ok(msg) = Message::load_from_db(&t.ctx, msg_id.clone()).await { + if msg.get_viewtype() == Viewtype::Image { + has_image = true; + assert!(msg.get_width() > 100); + assert!(msg.get_height() > 100); + } + } + } + } + assert!(has_image); + } } From 1566b7105e33bc68865665822bfec0e32a1ef865 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 8 Aug 2020 12:59:31 +0200 Subject: [PATCH 2/2] test that msg width/height are smaller than some reasonable maximum --- src/message.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/message.rs b/src/message.rs index 5a62810a7..5004ba40f 100644 --- a/src/message.rs +++ b/src/message.rs @@ -1884,8 +1884,11 @@ mod tests { if let Ok(msg) = Message::load_from_db(&t.ctx, msg_id.clone()).await { if msg.get_viewtype() == Viewtype::Image { has_image = true; + // just check that width/height are inside some reasonable ranges assert!(msg.get_width() > 100); assert!(msg.get_height() > 100); + assert!(msg.get_width() < 4000); + assert!(msg.get_height() < 4000); } } }