forked from lavina/lavina
test for server response
This commit is contained in:
parent
fa880af66c
commit
bafcd97632
|
@ -355,6 +355,7 @@ fn server_message_body(input: &str) -> IResult<&str, ServerMessageBody> {
|
|||
server_message_body_notice,
|
||||
server_message_body_ping,
|
||||
server_message_body_pong,
|
||||
server_message_body_cap,
|
||||
))(input)
|
||||
}
|
||||
|
||||
|
@ -380,12 +381,7 @@ fn server_message_body_ping(input: &str) -> IResult<&str, ServerMessageBody> {
|
|||
let (input, _) = tag("PING ")(input)?;
|
||||
let (input, token) = token(input)?;
|
||||
|
||||
Ok((
|
||||
input,
|
||||
ServerMessageBody::Ping {
|
||||
token: token.into(),
|
||||
},
|
||||
))
|
||||
Ok((input, ServerMessageBody::Ping { token: token.into() }))
|
||||
}
|
||||
|
||||
fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> {
|
||||
|
@ -403,6 +399,21 @@ fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> {
|
|||
))
|
||||
}
|
||||
|
||||
fn server_message_body_cap(input: &str) -> IResult<&str, ServerMessageBody> {
|
||||
let (input, _) = tag("CAP ")(input)?;
|
||||
let (input, from) = receiver(input)?;
|
||||
let (input, _) = tag(" LS :")(input)?;
|
||||
let (input, token) = token(input)?;
|
||||
|
||||
Ok((
|
||||
input,
|
||||
ServerMessageBody::Cap {
|
||||
target: from.into(),
|
||||
subcmd: CapSubBody::Ls(token.into()),
|
||||
},
|
||||
))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use assert_matches::*;
|
||||
|
@ -427,9 +438,7 @@ mod test {
|
|||
assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result));
|
||||
|
||||
let mut bytes = vec![];
|
||||
sync_future(expected.write_async(&mut bytes))
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
sync_future(expected.write_async(&mut bytes)).unwrap().unwrap();
|
||||
assert_eq!(bytes, input.as_bytes());
|
||||
}
|
||||
|
||||
|
@ -449,9 +458,27 @@ mod test {
|
|||
assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result));
|
||||
|
||||
let mut bytes = vec![];
|
||||
sync_future(expected.write_async(&mut bytes))
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
sync_future(expected.write_async(&mut bytes)).unwrap().unwrap();
|
||||
assert_eq!(bytes, input.as_bytes());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_server_message_cap_ls() {
|
||||
let input = "CAP * LS :sasl\r\n";
|
||||
let expected = ServerMessage {
|
||||
tags: vec![],
|
||||
sender: None,
|
||||
body: ServerMessageBody::Cap {
|
||||
target: "*".into(),
|
||||
subcmd: CapSubBody::Ls("sasl".into()),
|
||||
},
|
||||
};
|
||||
|
||||
let result = server_message(input);
|
||||
assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result));
|
||||
|
||||
let mut bytes = vec![];
|
||||
sync_future(expected.write_async(&mut bytes)).unwrap().unwrap();
|
||||
assert_eq!(bytes, input.as_bytes());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue