mirror of
https://github.com/actix/actix-web.git
synced 2024-12-18 14:16:47 +00:00
Fix duplicate tail of StaticFiles with index_file.
And fix the unit test cases by add request path.
This commit is contained in:
parent
2f917f3700
commit
b9c9b39d4c
1 changed files with 9 additions and 10 deletions
19
src/fs.rs
19
src/fs.rs
|
@ -676,10 +676,6 @@ impl<S: 'static> Handler<S> for StaticFiles<S> {
|
||||||
// TODO: It'd be nice if there were a good usable URL manipulation
|
// TODO: It'd be nice if there were a good usable URL manipulation
|
||||||
// library
|
// library
|
||||||
let mut new_path: String = req.path().to_owned();
|
let mut new_path: String = req.path().to_owned();
|
||||||
for el in relpath.iter() {
|
|
||||||
new_path.push_str(&el.to_string_lossy());
|
|
||||||
new_path.push('/');
|
|
||||||
}
|
|
||||||
if !new_path.ends_with('/') {
|
if !new_path.ends_with('/') {
|
||||||
new_path.push('/');
|
new_path.push('/');
|
||||||
}
|
}
|
||||||
|
@ -1205,10 +1201,11 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_redirect_to_index() {
|
fn test_redirect_to_index() {
|
||||||
let mut st = StaticFiles::new(".").index_file("index.html");
|
let mut st = StaticFiles::new(".").index_file("index.html");
|
||||||
let mut req = HttpRequest::default();
|
let mut req = TestRequest::default().uri("/tests").finish();
|
||||||
req.match_info_mut().add_static("tail", "tests");
|
req.match_info_mut().add_static("tail", "tests");
|
||||||
|
let req2 = req.clone();
|
||||||
|
|
||||||
let resp = st.handle(req).respond_to(&HttpRequest::default()).unwrap();
|
let resp = st.handle(req).respond_to(&req2).unwrap();
|
||||||
let resp = resp.as_msg();
|
let resp = resp.as_msg();
|
||||||
assert_eq!(resp.status(), StatusCode::FOUND);
|
assert_eq!(resp.status(), StatusCode::FOUND);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
@ -1216,10 +1213,11 @@ mod tests {
|
||||||
"/tests/index.html"
|
"/tests/index.html"
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut req = HttpRequest::default();
|
let mut req = TestRequest::default().uri("/tests/").finish();
|
||||||
req.match_info_mut().add_static("tail", "tests/");
|
req.match_info_mut().add_static("tail", "tests/");
|
||||||
|
let req2 = req.clone();
|
||||||
|
|
||||||
let resp = st.handle(req).respond_to(&HttpRequest::default()).unwrap();
|
let resp = st.handle(req).respond_to(&req2).unwrap();
|
||||||
let resp = resp.as_msg();
|
let resp = resp.as_msg();
|
||||||
assert_eq!(resp.status(), StatusCode::FOUND);
|
assert_eq!(resp.status(), StatusCode::FOUND);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
@ -1231,10 +1229,11 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_redirect_to_index_nested() {
|
fn test_redirect_to_index_nested() {
|
||||||
let mut st = StaticFiles::new(".").index_file("mod.rs");
|
let mut st = StaticFiles::new(".").index_file("mod.rs");
|
||||||
let mut req = HttpRequest::default();
|
let mut req = TestRequest::default().uri("/src/client").finish();
|
||||||
req.match_info_mut().add_static("tail", "src/client");
|
req.match_info_mut().add_static("tail", "src/client");
|
||||||
|
let req2 = req.clone();
|
||||||
|
|
||||||
let resp = st.handle(req).respond_to(&HttpRequest::default()).unwrap();
|
let resp = st.handle(req).respond_to(&req2).unwrap();
|
||||||
let resp = resp.as_msg();
|
let resp = resp.as_msg();
|
||||||
assert_eq!(resp.status(), StatusCode::FOUND);
|
assert_eq!(resp.status(), StatusCode::FOUND);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
Loading…
Reference in a new issue