mirror of
https://github.com/chatmail/core.git
synced 2026-05-19 14:56:33 +03:00
This PR stops MDNs from being forced to be sent unencrypted. If no encryption is possible (by `should_encrypt`), the fix #5152 still applies. close #5168
This commit is contained in:
@@ -351,7 +351,7 @@ impl<'a> MimeFactory<'a> {
|
|||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loaded::Mdn { .. } => true,
|
Loaded::Mdn { .. } => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1571,6 +1571,7 @@ mod tests {
|
|||||||
use crate::mimeparser::MimeMessage;
|
use crate::mimeparser::MimeMessage;
|
||||||
use crate::receive_imf::receive_imf;
|
use crate::receive_imf::receive_imf;
|
||||||
use crate::test_utils::{get_chat_msg, TestContext, TestContextManager};
|
use crate::test_utils::{get_chat_msg, TestContext, TestContextManager};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_render_email_address() {
|
fn test_render_email_address() {
|
||||||
let display_name = "ä space";
|
let display_name = "ä space";
|
||||||
@@ -1826,6 +1827,37 @@ mod tests {
|
|||||||
assert_eq!("Re: Hello, Bob", mf.subject_str(&t).await.unwrap());
|
assert_eq!("Re: Hello, Bob", mf.subject_str(&t).await.unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||||
|
async fn test_mdn_create_encrypted() -> Result<()> {
|
||||||
|
let mut tcm = TestContextManager::new();
|
||||||
|
let alice = tcm.alice().await;
|
||||||
|
let bob = tcm.bob().await;
|
||||||
|
bob.set_config_bool(Config::MdnsEnabled, true).await?;
|
||||||
|
|
||||||
|
let mut msg = Message::new(Viewtype::Text);
|
||||||
|
msg.param.set_int(Param::SkipAutocrypt, 1);
|
||||||
|
let chat_alice = alice.create_chat(&bob).await.id;
|
||||||
|
let sent = alice.send_msg(chat_alice, &mut msg).await;
|
||||||
|
|
||||||
|
let rcvd = bob.recv_msg(&sent).await;
|
||||||
|
message::markseen_msgs(&bob, vec![rcvd.id]).await?;
|
||||||
|
let mimefactory = MimeFactory::from_mdn(&bob, &rcvd, vec![]).await?;
|
||||||
|
let rendered_msg = mimefactory.render(&bob).await?;
|
||||||
|
|
||||||
|
assert!(!rendered_msg.is_encrypted);
|
||||||
|
|
||||||
|
let rcvd = tcm.send_recv(&alice, &bob, "Heyho").await;
|
||||||
|
message::markseen_msgs(&bob, vec![rcvd.id]).await?;
|
||||||
|
|
||||||
|
let mimefactory = MimeFactory::from_mdn(&bob, &rcvd, vec![]).await?;
|
||||||
|
let rendered_msg = mimefactory.render(&bob).await?;
|
||||||
|
|
||||||
|
// When encrypted, the MDN should be encrypted as well
|
||||||
|
assert!(rendered_msg.is_encrypted);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||||
async fn test_subject_in_group() -> Result<()> {
|
async fn test_subject_in_group() -> Result<()> {
|
||||||
async fn send_msg_get_subject(
|
async fn send_msg_get_subject(
|
||||||
|
|||||||
Reference in New Issue
Block a user