test: add simple test for client I/O
This commit is contained in:
parent
44d7461ea2
commit
fd6702d029
2 changed files with 45 additions and 0 deletions
|
@ -3,6 +3,9 @@
|
||||||
pub mod builder;
|
pub mod builder;
|
||||||
pub mod response;
|
pub mod response;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
pub mod tests;
|
||||||
|
|
||||||
pub use response::Response;
|
pub use response::Response;
|
||||||
|
|
||||||
#[cfg(feature = "hickory")]
|
#[cfg(feature = "hickory")]
|
||||||
|
|
42
src/client/tests/mod.rs
Normal file
42
src/client/tests/mod.rs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
use tokio::runtime::Runtime;
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn check_parser() {
|
||||||
|
let rt = Runtime::new().unwrap();
|
||||||
|
let client = Client::builder().dangerous_with_no_verifier().build();
|
||||||
|
|
||||||
|
let mut recv = Vec::new();
|
||||||
|
let stream = tokio::io::join(
|
||||||
|
"20 text/gemini\r\n# hello world\n👍\n".as_bytes(),
|
||||||
|
&mut recv,
|
||||||
|
);
|
||||||
|
|
||||||
|
let mut resp = rt
|
||||||
|
.block_on(client.perform_io("gemini://unw.dc09.ru", stream))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
{
|
||||||
|
let status = resp.status();
|
||||||
|
assert_eq!(status.status_code(), StatusCode::Success);
|
||||||
|
assert_eq!(status.reply_type(), ReplyType::Success);
|
||||||
|
assert_eq!(status.num(), 20u8);
|
||||||
|
assert_eq!(status.second_digit(), 0u8);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(resp.is_ok(), true);
|
||||||
|
|
||||||
|
assert_eq!(resp.message(), "text/gemini");
|
||||||
|
|
||||||
|
{
|
||||||
|
let mime = resp.mime().unwrap();
|
||||||
|
assert_eq!(mime.type_(), mime::TEXT);
|
||||||
|
assert_eq!(mime.subtype(), "gemini");
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(rt.block_on(resp.text()).unwrap(), "# hello world\n👍\n");
|
||||||
|
|
||||||
|
drop(resp); // to free recv from mutable borrowing
|
||||||
|
assert_eq!(recv.as_slice(), b"gemini://unw.dc09.ru\r\n");
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue