Add test case for EXPUNGE response w/ mod sequence
This commit is contained in:
parent
564063561d
commit
b068208877
1 changed files with 26 additions and 0 deletions
26
src/parse.rs
26
src/parse.rs
|
|
@ -672,4 +672,30 @@ mod tests {
|
||||||
assert_eq!(first.body(), None);
|
assert_eq!(first.body(), None);
|
||||||
assert_eq!(first.header(), None);
|
assert_eq!(first.header(), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_expunged_mod_seq_test() {
|
||||||
|
// VANISHED can appear if the user has enabled QRESYNC (RFC 7162), in response to
|
||||||
|
// SELECT/EXAMINE (QRESYNC); UID FETCH (VANISHED); or EXPUNGE commands. In the latter
|
||||||
|
// case, the VANISHED responses will be parsed with the response and the list of
|
||||||
|
// expunged message is included in the returned struct.
|
||||||
|
let (mut send, recv) = mpsc::channel();
|
||||||
|
|
||||||
|
// Test VANISHED mixed with FETCH
|
||||||
|
let lines = b"* VANISHED 3:5,12\r\n\
|
||||||
|
B202 OK [HIGHESTMODSEQ 20010715194045319] expunged\r\n";
|
||||||
|
|
||||||
|
let deleted = parse_expunge(lines.to_vec(), &mut send).unwrap();
|
||||||
|
|
||||||
|
// No unsolicited responses, they are aggregated in the returned type
|
||||||
|
assert!(recv.try_recv().is_err());
|
||||||
|
|
||||||
|
assert_eq!(deleted.mod_seq, Some(20010715194045319));
|
||||||
|
let mut del = deleted.uids();
|
||||||
|
assert_eq!(del.next(), Some(3));
|
||||||
|
assert_eq!(del.next(), Some(4));
|
||||||
|
assert_eq!(del.next(), Some(5));
|
||||||
|
assert_eq!(del.next(), Some(12));
|
||||||
|
assert_eq!(del.next(), None);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue