From 6dcc1e09b96849f27324e666046d85c4ff7de560 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Mon, 30 Dec 2019 17:23:00 +0100 Subject: [PATCH] mimeparser: add message.kml parsing test --- src/mimeparser.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/mimeparser.rs b/src/mimeparser.rs index a7a7c66ff..7277c9900 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -1223,4 +1223,47 @@ mod tests { assert_eq!(mimeparser.user_avatar, AvatarAction::None); assert!(mimeparser.group_avatar.is_change()); } + + #[test] + fn test_mimeparser_message_kml() { + let context = dummy_context(); + let raw = b"Chat-Version: 1.0\n\ +From: foo \n\ +To: bar \n\ +Subject: Location streaming\n\ +Content-Type: multipart/mixed; boundary=\"==break==\"\n\ +\n\ +\n\ +--==break==\n\ +Content-Type: text/plain; charset=utf-8\n\ +\n\ +--\n\ +Sent with my Delta Chat Messenger: https://delta.chat\n\ +\n\ +--==break==\n\ +Content-Type: application/vnd.google-earth.kml+xml\n\ +Content-Disposition: attachment; filename=\"message.kml\"\n\ +\n\ +\n\ +\n\ +\n\ +XXX0.0,0.0\n\ +\n\ +\n\ +\n\ +--==break==--\n\ +;"; + + let mimeparser = MimeParser::from_bytes(&context.ctx, &raw[..]).unwrap(); + assert_eq!( + mimeparser.get_subject(), + Some("Location streaming".to_string()) + ); + assert!(mimeparser.location_kml.is_none()); + assert!(mimeparser.message_kml.is_some()); + + // There is only one part because message.kml attachment is special + // and only goes into message_kml. + assert_eq!(mimeparser.parts.len(), 1); + } }