tests: directory listing use cases
Diff
tests/dir_listing.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
@@ -0,0 +1,44 @@
#![deny(warnings)]
#[cfg(test)]
mod tests {
use headers::HeaderMap;
use http::{Method, StatusCode};
use std::path::PathBuf;
extern crate static_web_server;
use static_web_server::static_files;
fn root_dir() -> PathBuf {
PathBuf::from("docker/public/")
}
#[tokio::test]
async fn dir_listing_redirect_permanent_uri() {
let methods = [
Method::CONNECT,
Method::DELETE,
Method::GET,
Method::HEAD,
Method::OPTIONS,
Method::PATCH,
Method::POST,
Method::PUT,
Method::TRACE,
];
for method in methods {
match static_files::handle(&method, &HeaderMap::new(), root_dir(), "/assets", true)
.await
{
Ok(res) => {
assert_eq!(res.status(), 308);
assert_eq!(res.headers()["location"], "/assets/");
}
Err(status) => {
assert!(method != Method::GET && method != Method::HEAD);
assert_eq!(status, StatusCode::METHOD_NOT_ALLOWED);
}
}
}
}
}