From 69179ebdac84a86bed5643fa97944341914f9e41 Mon Sep 17 00:00:00 2001 From: Matt McCoy Date: Fri, 24 Jun 2016 19:49:41 -0400 Subject: [PATCH] Add testing for capability parsing --- src/parse.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/parse.rs b/src/parse.rs index ef398c3..d813466 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -87,3 +87,23 @@ pub fn parse_select_or_examine(lines: Vec) -> Result { Ok(mailbox) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parse_capability_test() { + let expected_capabilities = vec![String::from("IMAP4rev1"), String::from("STARTTLS"), String::from("AUTH=GSSAPI"), String::from("LOGINDISABLED")]; + let lines = vec![String::from("* CAPABILITY IMAP4rev1 STARTTLS AUTH=GSSAPI LOGINDISABLED\r\n"), String::from("a1 OK CAPABILITY completed\r\n")]; + let capabilities = parse_capability(lines).unwrap(); + assert!(capabilities == expected_capabilities, "Unexpected capabilities parse response"); + } + + #[test] + #[should_panic] + fn parse_capability_invalid_test() { + let lines = vec![String::from("* JUNK IMAP4rev1 STARTTLS AUTH=GSSAPI LOGINDISABLED\r\n"), String::from("a1 OK CAPABILITY completed\r\n")]; + parse_capability(lines).unwrap(); + } +}