use super::defs::*;
use crate::test_data;
#[test]
fn capability_declared() {
test_require_capability("7888capa", "LITERAL+");
}
#[test]
fn command_non_synchronising_literal() {
let setup = set_up();
let mut client = setup.connect("7888cnsl");
quick_log_in(&mut client);
quick_select(&mut client, "INBOX");
client
.write_raw(
b"A1 SEARCH TEXT {5+}\r\n\
enron TEXT {5+}\r\n\
plugh\r\n",
)
.unwrap();
let mut buffer = Vec::new();
let mut responses =
client.read_responses_until_tagged(&mut buffer).unwrap();
assert_tagged_ok(responses.pop().unwrap());
client
.write_raw(
b"A2 SEARCH TEXT {4+}\r\n\
{3+} TEXT {6+}\r\n\
{3+}\r\n\r\n",
)
.unwrap();
buffer.clear();
let mut responses =
client.read_responses_until_tagged(&mut buffer).unwrap();
assert_tagged_ok(responses.pop().unwrap());
ok_command!(client, c("NOOP"));
}
#[test]
fn append_non_synchronising_literal() {
let setup = set_up();
let mut client = setup.connect("7888ansl");
quick_log_in(&mut client);
quick_create(&mut client, "7888ansl");
client
.write_raw(
format!(
"A1 APPEND 7888ansl {{{}+}}\r\n",
test_data::CHRISTMAS_TREE.len()
)
.as_bytes(),
)
.unwrap();
client.write_raw(test_data::CHRISTMAS_TREE).unwrap();
client.write_raw(b"\r\n").unwrap();
let mut buffer = Vec::new();
let mut responses =
client.read_responses_until_tagged(&mut buffer).unwrap();
assert_tagged_ok_any(responses.pop().unwrap());
ok_command!(client, c("NOOP"));
}