1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-11-29 04:51:13 +00:00

add tests for files_listing_renderer

This commit is contained in:
Rob Ede 2023-02-03 21:04:07 -05:00
parent 4bff1d0abe
commit b933ed4456
No known key found for this signature in database
GPG key ID: 97C636207D3EF933

View file

@ -142,7 +142,7 @@ impl Files {
self self
} }
/// Set custom directory renderer /// Set custom directory renderer.
pub fn files_listing_renderer<F>(mut self, f: F) -> Self pub fn files_listing_renderer<F>(mut self, f: F) -> Self
where where
for<'r, 's> F: for<'r, 's> F:
@ -152,7 +152,7 @@ impl Files {
self self
} }
/// Specifies mime override callback /// Specifies MIME override callback.
pub fn mime_override<F>(mut self, f: F) -> Self pub fn mime_override<F>(mut self, f: F) -> Self
where where
F: Fn(&mime::Name<'_>) -> DispositionType + 'static, F: Fn(&mime::Name<'_>) -> DispositionType + 'static,
@ -390,3 +390,42 @@ impl ServiceFactory<ServiceRequest> for Files {
} }
} }
} }
#[cfg(test)]
mod tests {
use actix_web::{
http::StatusCode,
test::{self, TestRequest},
App, HttpResponse,
};
use super::*;
#[actix_web::test]
async fn custom_files_listing_renderer() {
let srv = test::init_service(
App::new().service(
Files::new("/", "./tests")
.show_files_listing()
.files_listing_renderer(|dir, req| {
Ok(ServiceResponse::new(
req.clone(),
HttpResponse::Ok().body(dir.path.to_str().unwrap().to_owned()),
))
}),
),
)
.await;
let req = TestRequest::with_uri("/").to_request();
let res = test::call_service(&srv, req).await;
assert_eq!(res.status(), StatusCode::OK);
let body = test::read_body(res).await;
assert!(
body.ends_with(b"actix-files/tests/"),
"body {:?} does not end with `actix-files/tests/`",
body
);
}
}