mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 21:46:35 +03:00
fix: save override sender displayname for outgoing messages
Co-authored-by: link2xt <link2xt@testrun.org>
This commit is contained in:
@@ -2292,6 +2292,7 @@ mod tests {
|
|||||||
async fn test_set_override_sender_name() {
|
async fn test_set_override_sender_name() {
|
||||||
// send message with overridden sender name
|
// send message with overridden sender name
|
||||||
let alice = TestContext::new_alice().await;
|
let alice = TestContext::new_alice().await;
|
||||||
|
let alice2 = TestContext::new_alice().await;
|
||||||
let bob = TestContext::new_bob().await;
|
let bob = TestContext::new_bob().await;
|
||||||
let chat = alice.create_chat(&bob).await;
|
let chat = alice.create_chat(&bob).await;
|
||||||
let contact_id = *chat::get_chat_contacts(&alice, chat.id)
|
let contact_id = *chat::get_chat_contacts(&alice, chat.id)
|
||||||
@@ -2311,6 +2312,7 @@ mod tests {
|
|||||||
assert_eq!(msg.get_sender_name(&contact), "over ride".to_string());
|
assert_eq!(msg.get_sender_name(&contact), "over ride".to_string());
|
||||||
assert_ne!(contact.get_display_name(), "over ride".to_string());
|
assert_ne!(contact.get_display_name(), "over ride".to_string());
|
||||||
chat::send_msg(&alice, chat.id, &mut msg).await.unwrap();
|
chat::send_msg(&alice, chat.id, &mut msg).await.unwrap();
|
||||||
|
let sent_msg = alice.pop_sent_msg().await;
|
||||||
|
|
||||||
// bob receives that message
|
// bob receives that message
|
||||||
let chat = bob.create_chat(&alice).await;
|
let chat = bob.create_chat(&alice).await;
|
||||||
@@ -2320,7 +2322,7 @@ mod tests {
|
|||||||
.first()
|
.first()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let contact = Contact::get_by_id(&bob, contact_id).await.unwrap();
|
let contact = Contact::get_by_id(&bob, contact_id).await.unwrap();
|
||||||
let msg = bob.recv_msg(&alice.pop_sent_msg().await).await;
|
let msg = bob.recv_msg(&sent_msg).await;
|
||||||
assert_eq!(msg.chat_id, chat.id);
|
assert_eq!(msg.chat_id, chat.id);
|
||||||
assert_eq!(msg.text, "bla blubb");
|
assert_eq!(msg.text, "bla blubb");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@@ -2334,6 +2336,13 @@ mod tests {
|
|||||||
// (mailing lists may also use `Sender:`-header)
|
// (mailing lists may also use `Sender:`-header)
|
||||||
let chat = Chat::load_from_db(&bob, msg.chat_id).await.unwrap();
|
let chat = Chat::load_from_db(&bob, msg.chat_id).await.unwrap();
|
||||||
assert_ne!(chat.typ, Chattype::Mailinglist);
|
assert_ne!(chat.typ, Chattype::Mailinglist);
|
||||||
|
|
||||||
|
// Alice receives message on another device.
|
||||||
|
let msg = alice2.recv_msg(&sent_msg).await;
|
||||||
|
assert_eq!(
|
||||||
|
msg.get_override_sender_name(),
|
||||||
|
Some("over ride".to_string())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||||
|
|||||||
@@ -755,6 +755,17 @@ async fn add_parts(
|
|||||||
let state: MessageState;
|
let state: MessageState;
|
||||||
let mut hidden = false;
|
let mut hidden = false;
|
||||||
let mut needs_delete_job = false;
|
let mut needs_delete_job = false;
|
||||||
|
|
||||||
|
// if contact renaming is prevented (for mailinglists and bots),
|
||||||
|
// we use name from From:-header as override name
|
||||||
|
if prevent_rename {
|
||||||
|
if let Some(name) = &mime_parser.from.display_name {
|
||||||
|
for part in &mut mime_parser.parts {
|
||||||
|
part.param.set(Param::OverrideSenderDisplayname, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if mime_parser.incoming {
|
if mime_parser.incoming {
|
||||||
to_id = ContactId::SELF;
|
to_id = ContactId::SELF;
|
||||||
|
|
||||||
@@ -918,16 +929,6 @@ async fn add_parts(
|
|||||||
apply_mailinglist_changes(context, mime_parser, chat_id).await?;
|
apply_mailinglist_changes(context, mime_parser, chat_id).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if contact renaming is prevented (for mailinglists and bots),
|
|
||||||
// we use name from From:-header as override name
|
|
||||||
if prevent_rename {
|
|
||||||
if let Some(name) = &mime_parser.from.display_name {
|
|
||||||
for part in &mut mime_parser.parts {
|
|
||||||
part.param.set(Param::OverrideSenderDisplayname, name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if chat_id.is_none() {
|
if chat_id.is_none() {
|
||||||
// try to create a normal chat
|
// try to create a normal chat
|
||||||
let create_blocked = if from_id == ContactId::SELF {
|
let create_blocked = if from_id == ContactId::SELF {
|
||||||
|
|||||||
Reference in New Issue
Block a user