v1.0.9
This commit is contained in:
@@ -318,3 +318,50 @@ fn cyrus_starts_seeds_and_imports() {
|
||||
}
|
||||
|
||||
fn _unused(_: &AccountSeed) {}
|
||||
|
||||
#[test]
|
||||
#[ignore = "requires Docker"]
|
||||
fn cyrus_non_ascii_mailbox_names_round_trip() {
|
||||
let c = Cyrus::start().expect("cyrus start");
|
||||
let account = c.accounts.first().expect("account").clone();
|
||||
|
||||
let mutf7_name = "Envoy&AOk-s";
|
||||
let utf8_name = "Envoyés";
|
||||
let message = b"From: [email protected]\r\n\
|
||||
To: [email protected]\r\n\
|
||||
Subject: Accents\r\n\
|
||||
Message-ID: <[email protected]>\r\n\
|
||||
Date: Wed, 01 Jan 2025 12:00:00 +0000\r\n\
|
||||
\r\n\
|
||||
Accented folder probe.\r\n";
|
||||
c.create_non_ascii_mailbox(&account, mutf7_name, message)
|
||||
.expect("create accented mailbox");
|
||||
|
||||
let archive = tmp_archive("cyrus-non-ascii");
|
||||
let summary =
|
||||
import_imap::run(common(&archive), imap_config(&account, &c.imap)).expect("imap import");
|
||||
assert!(
|
||||
!summary.any_failed(),
|
||||
"an accented folder name must not fail the import: {summary:?}"
|
||||
);
|
||||
|
||||
let conn = open_archive(&archive);
|
||||
let names: Vec<String> = {
|
||||
let mut stmt = conn
|
||||
.prepare("SELECT name FROM mailboxes ORDER BY name")
|
||||
.unwrap();
|
||||
stmt.query_map([], |r| r.get::<_, String>(0))
|
||||
.unwrap()
|
||||
.map(Result::unwrap)
|
||||
.collect()
|
||||
};
|
||||
let mailbox_id = mailbox_id_by_name(&conn, utf8_name).unwrap_or_else(|| {
|
||||
panic!("no mailbox named {utf8_name}; names must not be mojibake, got {names:?}")
|
||||
});
|
||||
let emails = emails_in_mailbox(&conn, mailbox_id);
|
||||
assert_eq!(
|
||||
emails, 1,
|
||||
"the message inside the accented folder must be imported"
|
||||
);
|
||||
cleanup(&archive);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user