From b431206ede186d0686ff71054e4f63f3edfa98df Mon Sep 17 00:00:00 2001 From: link2xt Date: Wed, 6 Aug 2025 13:02:21 +0000 Subject: [PATCH] fix: allow receiving empty files --- src/message/message_tests.rs | 19 +++++++++++++++++++ src/mimeparser.rs | 4 ---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/message/message_tests.rs b/src/message/message_tests.rs index 08b312aa5..af3e74b98 100644 --- a/src/message/message_tests.rs +++ b/src/message/message_tests.rs @@ -808,3 +808,22 @@ async fn test_sanitize_filename_message() -> Result<()> { Ok(()) } + +/// Tests that empty file can be sent and received. +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn test_send_empty_file() -> Result<()> { + let mut tcm = TestContextManager::new(); + let alice = &tcm.alice().await; + let bob = &tcm.bob().await; + + let alice_chat = alice.create_chat(bob).await; + let mut msg = Message::new(Viewtype::File); + msg.set_file_from_bytes(alice, "myfile", b"", None)?; + chat::send_msg(alice, alice_chat.id, &mut msg).await?; + let sent = alice.pop_sent_msg().await; + + let bob_received_msg = bob.recv_msg(&sent).await; + assert_eq!(bob_received_msg.get_filename().unwrap(), "myfile"); + assert_eq!(bob_received_msg.get_viewtype(), Viewtype::File); + Ok(()) +} diff --git a/src/mimeparser.rs b/src/mimeparser.rs index 5623abcc5..1036cbb06 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -1322,10 +1322,6 @@ impl MimeMessage { filename: &str, is_related: bool, ) -> Result<()> { - if decoded_data.is_empty() { - return Ok(()); - } - // Process attached PGP keys. if mime_type.type_() == mime::APPLICATION && mime_type.subtype().as_str() == "pgp-keys"