mirror of
https://github.com/chatmail/core.git
synced 2026-05-13 03:46:32 +03:00
fix From:-header bug (#2193)
* add failing test for From:-header bug the test fails on the last check for quote-encapsulated utf-8 strings. * Update mailparse Co-authored-by: link2xt <link2xt@testrun.org>
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -2079,9 +2079,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mailparse"
|
name = "mailparse"
|
||||||
version = "0.13.1"
|
version = "0.13.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "388a77a7f161b32d0314404306b8ed5966b34b797fc9ef6bcf6686935162da3c"
|
checksum = "31de1f9043c582efde7dbd93de56600df12b6c4488a67eeaefa74ea364019b22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.12.3",
|
"base64 0.12.3",
|
||||||
"charset",
|
"charset",
|
||||||
|
|||||||
@@ -1474,6 +1474,62 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn test_mimeparser_fromheader() {
|
||||||
|
let ctx = TestContext::new_alice().await;
|
||||||
|
|
||||||
|
let mimemsg = MimeMessage::from_bytes(&ctx, b"From: g@c.de\n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, None);
|
||||||
|
|
||||||
|
let mimemsg = MimeMessage::from_bytes(&ctx, b"From: g@c.de \n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, None);
|
||||||
|
|
||||||
|
let mimemsg = MimeMessage::from_bytes(&ctx, b"From: <g@c.de>\n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, None);
|
||||||
|
|
||||||
|
let mimemsg = MimeMessage::from_bytes(&ctx, b"From: Goetz C <g@c.de>\n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, Some("Goetz C".to_string()));
|
||||||
|
|
||||||
|
let mimemsg = MimeMessage::from_bytes(&ctx, b"From: \"Goetz C\" <g@c.de>\n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, Some("Goetz C".to_string()));
|
||||||
|
|
||||||
|
let mimemsg =
|
||||||
|
MimeMessage::from_bytes(&ctx, b"From: =?utf-8?q?G=C3=B6tz?= C <g@c.de>\n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, Some("Götz C".to_string()));
|
||||||
|
|
||||||
|
let mimemsg =
|
||||||
|
MimeMessage::from_bytes(&ctx, b"From: \"=?utf-8?q?G=C3=B6tz?= C\" <g@c.de>\n\nhi")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let contact = mimemsg.from.first().unwrap();
|
||||||
|
assert_eq!(contact.addr, "g@c.de");
|
||||||
|
assert_eq!(contact.display_name, Some("Götz C".to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
#[async_std::test]
|
#[async_std::test]
|
||||||
async fn test_dc_mimeparser_crash() {
|
async fn test_dc_mimeparser_crash() {
|
||||||
let context = TestContext::new().await;
|
let context = TestContext::new().await;
|
||||||
|
|||||||
Reference in New Issue
Block a user