From 23aa313e11f344da07143d60ce446b5f23d5f362 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Fri, 19 Jan 2024 14:13:43 +0100 Subject: Testing idle --- tests/common/fragments.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests/common') diff --git a/tests/common/fragments.rs b/tests/common/fragments.rs index 29d5d10..7f7967a 100644 --- a/tests/common/fragments.rs +++ b/tests/common/fragments.rs @@ -36,6 +36,7 @@ pub enum Extension { Move, Condstore, LiteralPlus, + Idle, } pub enum Enable { @@ -114,6 +115,7 @@ pub fn capability(imap: &mut TcpStream, ext: Extension) -> Result<()> { Extension::Move => Some("MOVE"), Extension::Condstore => Some("CONDSTORE"), Extension::LiteralPlus => Some("LITERAL+"), + Extension::Idle => Some("IDLE"), }; let mut buffer: [u8; 6000] = [0; 6000]; @@ -496,6 +498,22 @@ pub fn enable(imap: &mut TcpStream, ask: Enable, done: Option) -> Result Ok(()) } +pub fn start_idle(imap: &mut TcpStream) -> Result<()> { + let mut buffer: [u8; 1500] = [0; 1500]; + imap.write(&b"98 IDLE\r\n"[..])?; + let read = read_lines(imap, &mut buffer, None)?; + assert_eq!(read[0], b'+'); + Ok(()) +} + +pub fn stop_idle(imap: &mut TcpStream) -> Result { + let mut buffer: [u8; 16536] = [0; 16536]; + imap.write(&b"DONE\r\n"[..])?; + let read = read_lines(imap, &mut buffer, Some(&b"98 OK"[..]))?; + let srv_msg = std::str::from_utf8(read)?; + Ok(srv_msg.to_string()) +} + pub fn logout(imap: &mut TcpStream) -> Result<()> { imap.write(&b"99 logout\r\n"[..])?; let mut buffer: [u8; 1500] = [0; 1500]; -- cgit v1.2.3