use hreq::prelude::*;
use hreq::Error;
mod common;
#[test]
fn query_params() -> Result<(), Error> {
common::setup_logger();
let bld = http::Request::builder();
let req = bld.uri("/path").query("x", "y").body(())?;
let mut server = Server::new();
server
.at("/path")
.all(|req: http::Request<Body>| async move {
assert_eq!(req.uri(), "/path?x=y");
"ok"
});
let res = server.handle(req).block()?;
assert_eq!(res.status(), 200);
Ok(())
}
#[test]
fn query_params_doubled() -> Result<(), Error> {
common::setup_logger();
let bld = http::Request::builder();
let req = bld.uri("/path").query("x", "y").query("x", "y").body(())?;
let mut server = Server::new();
server
.at("/path")
.all(|req: http::Request<Body>| async move {
assert_eq!(req.uri(), "/path?x=y&x=y");
"ok"
});
let res = server.handle(req).block()?;
assert_eq!(res.status(), 200);
Ok(())
}
#[test]
fn request_header() -> Result<(), Error> {
common::setup_logger();
let bld = http::Request::builder();
let req = bld.uri("/path").header("x-foo", "bar").body(())?;
let mut server = Server::new();
server
.at("/path")
.all(|req: http::Request<Body>| async move {
assert_eq!(req.header("x-foo"), Some("bar"));
"ok"
});
let res = server.handle(req).block()?;
assert_eq!(res.status(), 200);
Ok(())
}
#[test]
fn non_existing_host_name() {
common::setup_logger();
let res = Request::get("https://tremendously-incorrect-host-name.so-wrong")
.call()
.block();
assert!(res.is_err());
let err = res.unwrap_err();
assert!(err.is_io());
}
#[test]
fn missing_scheme() {
common::setup_logger();
let res = Request::get("google.com").call().block();
assert!(res.is_ok());
}