From d0a04be825ca5b3f9d517e5444881b9db074ec80 Mon Sep 17 00:00:00 2001 From: holger krekel Date: Tue, 10 Dec 2019 01:21:28 +0100 Subject: [PATCH] remove hack for decoding, and add a test that encoding/decoding works now --- .circleci/config.yml | 2 +- python/tests/test_account.py | 1 + src/dc_receive_imf.rs | 12 ++---------- src/mimefactory.rs | 15 --------------- 4 files changed, 4 insertions(+), 26 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e4704159b..1ebd757ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -185,7 +185,7 @@ jobs: - *restore-cache - run: name: Run cargo clippy - command: cargo clippy --all + command: cargo clippy workflows: diff --git a/python/tests/test_account.py b/python/tests/test_account.py index 193e68eda..d036c772f 100644 --- a/python/tests/test_account.py +++ b/python/tests/test_account.py @@ -652,6 +652,7 @@ class TestOnlineAccount: msg_in = ac2.get_message_by_id(msg_out.id) assert msg_in.text == "message1" assert not msg_in.is_forwarded() + assert msg_in.get_sender_contact().display_name == ac1.get_config("displayname") lp.sec("check the message arrived in contact-requets/deaddrop") chat2 = msg_in.chat diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index e4d2524c1..2b5e90393 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -1583,10 +1583,6 @@ fn dc_add_or_lookup_contacts_by_address_list( origin: Origin, to_ids: &mut ContactIds, ) -> Result<()> { - // XXX we use manual decoding - // https://github.com/staktrace/mailparse/issues/50 - use email::rfc2047::decode_rfc2047; - let addrs = match mailparse::addrparse(addr_list_raw) { Ok(addrs) => addrs, Err(err) => { @@ -1601,22 +1597,18 @@ fn dc_add_or_lookup_contacts_by_address_list( for addr in addrs.iter() { match addr { mailparse::MailAddr::Single(info) => { - // mailparse does not give us decoded vals - let display_name = decode_rfc2047(&info.display_name.clone().unwrap_or_default()); to_ids.insert(add_or_lookup_contact_by_addr( context, - &display_name, + &info.display_name, &info.addr, origin, )?); } mailparse::MailAddr::Group(infos) => { for info in &infos.addrs { - let display_name = - decode_rfc2047(&info.display_name.clone().unwrap_or_default()); to_ids.insert(add_or_lookup_contact_by_addr( context, - &display_name, + &info.display_name, &info.addr, origin, )?); diff --git a/src/mimefactory.rs b/src/mimefactory.rs index e7ee8b40e..fd441ccbd 100644 --- a/src/mimefactory.rs +++ b/src/mimefactory.rs @@ -1055,8 +1055,6 @@ pub fn needs_encoding(to_check: impl AsRef) -> bool { #[cfg(test)] mod tests { use super::*; - use email::rfc2047::decode_rfc2047; - use mailparse::{addrparse, MailAddr}; #[test] fn test_render_email_address() { @@ -1071,20 +1069,7 @@ mod tests { ); println!("{}", s); - assert!(s.is_ascii()); assert_eq!(s, "=?utf-8?q?=C3=A4_space?= "); - - match &addrparse(&s).unwrap()[0] { - MailAddr::Single(info) => { - // XXX addrparse should not return rfc2047 encoding - // but the decoded string, see - // https://github.com/staktrace/mailparse/issues/50 - let s = decode_rfc2047(&info.display_name.clone().unwrap()); - assert_eq!(s, Some(display_name.to_string())); - assert_eq!(info.addr, addr.to_string()); - } - _ => panic!(), - } } }