Skip to content

Commit 9f60932

Browse files
committed
fix: parse NIL metadata response
1 parent 641cec5 commit 9f60932

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ runtime-async-std = ["async-std"]
2525
runtime-tokio = ["tokio"]
2626

2727
[dependencies]
28-
imap-proto = "0.16.1"
28+
imap-proto = "0.16.4"
2929
nom = "7.0"
3030
base64 = "0.21"
3131
chrono = { version = "0.4", default-features = false, features = ["std"] }

src/client.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2441,5 +2441,27 @@ mod tests {
24412441
"mailto:root@nine.testrun.org"
24422442
);
24432443
}
2444+
2445+
{
2446+
let response = b"* METADATA \"\" (/shared/comment NIL /shared/admin NIL)\r\n\
2447+
A0001 OK OK Getmetadata completed (0.001 + 0.000 secs).\r\n"
2448+
.to_vec();
2449+
2450+
let mock_stream = MockStream::new(response);
2451+
let mut session = mock_session!(mock_stream);
2452+
let metadata = session
2453+
.get_metadata("", "", "(/shared/comment /shared/admin)")
2454+
.await
2455+
.unwrap();
2456+
assert_eq!(
2457+
session.stream.inner.written_buf,
2458+
b"A0001 GETMETADATA \"\" (/shared/comment /shared/admin)\r\n".to_vec()
2459+
);
2460+
assert_eq!(metadata.len(), 2);
2461+
assert_eq!(metadata[0].entry, "/shared/comment");
2462+
assert_eq!(metadata[0].value, None);
2463+
assert_eq!(metadata[1].entry, "/shared/admin");
2464+
assert_eq!(metadata[1].value, None);
2465+
}
24442466
}
24452467
}

0 commit comments

Comments
 (0)