mirror of
https://github.com/chatmail/core.git
synced 2026-05-07 08:56:30 +03:00
* Fix #1739 LastSubject should not be updated for read receipt * .
This commit is contained in:
@@ -867,15 +867,17 @@ async fn add_parts(
|
|||||||
chat.update_param(context).await?;
|
chat.update_param(context).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
update_last_subject(context, chat_id, mime_parser)
|
if !is_mdn {
|
||||||
.await
|
update_last_subject(context, chat_id, mime_parser)
|
||||||
.unwrap_or_else(|e| {
|
.await
|
||||||
warn!(
|
.unwrap_or_else(|e| {
|
||||||
context,
|
warn!(
|
||||||
"Could not update LastSubject of chat: {}",
|
context,
|
||||||
e.to_string()
|
"Could not update LastSubject of chat: {}",
|
||||||
)
|
e.to_string()
|
||||||
});
|
)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1417,6 +1417,54 @@ mod tests {
|
|||||||
.as_bytes(),
|
.as_bytes(),
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
|
// 5. Receive an mdn (read receipt) and make sure the mdn's subject is not used
|
||||||
|
let t = TestContext::new_alice().await;
|
||||||
|
dc_receive_imf(
|
||||||
|
&t.ctx,
|
||||||
|
b"From: alice@example.com\n\
|
||||||
|
To: Charlie <charlie@example.com>\n\
|
||||||
|
Subject: Hello, Charlie\n\
|
||||||
|
Chat-Version: 1.0\n\
|
||||||
|
Message-ID: <2893@example.com>\n\
|
||||||
|
Date: Sun, 22 Mar 2020 22:37:56 +0000\n\
|
||||||
|
\n\
|
||||||
|
hello\n",
|
||||||
|
"INBOX",
|
||||||
|
1,
|
||||||
|
false,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let new_msg = incoming_msg_to_reply_msg(b"From: charlie@example.com\n\
|
||||||
|
To: alice@example.com\n\
|
||||||
|
Subject: message opened\n\
|
||||||
|
Date: Sun, 22 Mar 2020 23:37:57 +0000\n\
|
||||||
|
Chat-Version: 1.0\n\
|
||||||
|
Message-ID: <Mr.12345678902@example.com>\n\
|
||||||
|
Content-Type: multipart/report; report-type=disposition-notification; boundary=\"SNIPP\"\n\
|
||||||
|
\n\
|
||||||
|
\n\
|
||||||
|
--SNIPP\n\
|
||||||
|
Content-Type: text/plain; charset=utf-8\n\
|
||||||
|
\n\
|
||||||
|
Read receipts do not guarantee sth. was read.\n\
|
||||||
|
\n\
|
||||||
|
\n\
|
||||||
|
--SNIPP\n\
|
||||||
|
Content-Type: message/disposition-notification\n\
|
||||||
|
\n\
|
||||||
|
Reporting-UA: Delta Chat 1.28.0\n\
|
||||||
|
Original-Recipient: rfc822;charlie@example.com\n\
|
||||||
|
Final-Recipient: rfc822;charlie@example.com\n\
|
||||||
|
Original-Message-ID: <2893@example.com>\n\
|
||||||
|
Disposition: manual-action/MDN-sent-automatically; displayed\n\
|
||||||
|
\n", &t.ctx).await;
|
||||||
|
let mf = MimeFactory::from_msg(&t.ctx, &new_msg, false)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
// The subject string should not be "Re: message opened"
|
||||||
|
assert_eq!("Re: Hello, Charlie", mf.subject_str().await);
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn first_subject_str(t: TestContext) -> String {
|
async fn first_subject_str(t: TestContext) -> String {
|
||||||
@@ -1453,7 +1501,7 @@ mod tests {
|
|||||||
mf.subject_str().await
|
mf.subject_str().await
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a mimefactory for a message that replies "Hi" to the incoming message in `imf_raw`.
|
// Creates a `Message` that replies "Hi" to the incoming email in `imf_raw`.
|
||||||
async fn incoming_msg_to_reply_msg(imf_raw: &[u8], context: &Context) -> Message {
|
async fn incoming_msg_to_reply_msg(imf_raw: &[u8], context: &Context) -> Message {
|
||||||
context
|
context
|
||||||
.set_config(Config::ShowEmails, Some("2"))
|
.set_config(Config::ShowEmails, Some("2"))
|
||||||
|
|||||||
Reference in New Issue
Block a user