diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f80f9273b3085a7f00396128f4bbe9249614fc8a..a5d077a4a92ea955f45532d683b940e09e14b9eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -66,7 +66,7 @@ rust-nightly-clippy: - target/ <<: *rust_template script: - - cargo clippy --all --verbose -- -D warnings + - cargo clippy --all --tests --verbose -- -D warnings rust-nightly-docker: stage: image diff --git a/src/config.rs b/src/config.rs index d1ed2c69d94f9d5c2d6d43c4b06f0c30b7231294..ef5f1faa091ca5afb5459fc538a14f493e0ef6ab 100644 --- a/src/config.rs +++ b/src/config.rs @@ -279,7 +279,7 @@ mod tests { #[test] fn test_from_file() { - let config: Config = from_file(&Path::new("config.sample.toml"), None).unwrap(); + let config: Config = from_file(Path::new("config.sample.toml"), None).unwrap(); assert_eq!( config, diff --git a/src/files/mod.rs b/src/files/mod.rs index 026d17d4188dfa4382ada9ae3877b53d27461072..e426a3f52c7a39c85cb5c02f51c37a4ccc6daff0 100644 --- a/src/files/mod.rs +++ b/src/files/mod.rs @@ -296,7 +296,7 @@ mod tests { let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/", serve_dir("."), root_path_context, @@ -305,7 +305,7 @@ mod tests { .await; let request = TestRequest::get().uri("/").to_request(); - let response = test::call_service(&mut srv, request).await; + let response = test::call_service(&srv, request).await; assert_eq!(response.status(), StatusCode::OK); let content_disposition = response @@ -320,16 +320,17 @@ mod tests { #[actix_rt::test] async fn test_named_file_ranges_status_code() { - let mut server_config = ServerConfig::default(); - - server_config.index_strategy = Some(IndexStrategyConfig::IndexFiles { - filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(), - }); + let server_config = ServerConfig { + index_strategy: Some(IndexStrategyConfig::IndexFiles { + filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(), + }), + ..ServerConfig::default() + }; let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/test", serve_dir("."), root_path_context, @@ -342,7 +343,7 @@ mod tests { .uri("/t%65st/Cargo.toml") .append_header((header::RANGE, "bytes=10-20")) .to_request(); - let response = test::call_service(&mut srv, request).await; + let response = test::call_service(&srv, request).await; assert_eq!(response.status(), StatusCode::PARTIAL_CONTENT); // Invalid range header @@ -350,7 +351,7 @@ mod tests { .uri("/t%65st/Cargo.toml") .append_header((header::RANGE, "bytes=1-0")) .to_request(); - let response = test::call_service(&mut srv, request).await; + let response = test::call_service(&srv, request).await; assert_eq!(response.status(), StatusCode::RANGE_NOT_SATISFIABLE); } @@ -468,16 +469,17 @@ mod tests { #[actix_rt::test] async fn test_static_files_with_spaces() { - let mut server_config = ServerConfig::default(); - - server_config.index_strategy = Some(IndexStrategyConfig::IndexFiles { - filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(), - }); + let server_config = ServerConfig { + index_strategy: Some(IndexStrategyConfig::IndexFiles { + filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(), + }), + ..ServerConfig::default() + }; let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/", serve_dir("."), root_path_context, @@ -487,7 +489,7 @@ mod tests { let request = TestRequest::get() .uri("/tests/test%20space.binary") .to_request(); - let response = test::call_service(&mut srv, request).await; + let response = test::call_service(&srv, request).await; assert_eq!(response.status(), StatusCode::OK); let bytes = test::read_body(response).await; @@ -500,7 +502,7 @@ mod tests { let root_path_context = Arc::new((&ServerConfig::default()).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().default_service(Files::new( + let srv = test::init_service(App::new().default_service(Files::new( "/", serve_dir("."), root_path_context, @@ -513,13 +515,13 @@ mod tests { .method(Method::POST) .to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::METHOD_NOT_ALLOWED); let root_path_context = Arc::new((&ServerConfig::default()).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().default_service(Files::new( + let srv = test::init_service(App::new().default_service(Files::new( "/", serve_dir("."), root_path_context, @@ -530,7 +532,7 @@ mod tests { .method(Method::PUT) .uri("/Cargo.toml") .to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::METHOD_NOT_ALLOWED); } @@ -563,7 +565,7 @@ mod tests { let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/", serve_dir("."), root_path_context, @@ -572,7 +574,7 @@ mod tests { .await; let req = TestRequest::with_uri("/tests/test.png").to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::OK); let bytes = test::read_body(resp).await; @@ -591,7 +593,7 @@ mod tests { let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/", serve_dir("."), root_path_context, @@ -600,7 +602,7 @@ mod tests { .await; let req = TestRequest::with_uri("/%43argo.toml").to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::OK); } @@ -614,7 +616,7 @@ mod tests { let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/", serve_dir("."), root_path_context, @@ -623,7 +625,7 @@ mod tests { .await; let req = TestRequest::with_uri("/missing").to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::NOT_FOUND); } @@ -632,7 +634,7 @@ mod tests { let root_path_context = Arc::new((&ServerConfig::default()).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().service(Files::new( + let srv = test::init_service(App::new().service(Files::new( "/", serve_dir("."), root_path_context, @@ -641,7 +643,7 @@ mod tests { .await; let req = TestRequest::default().to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::NOT_FOUND); } @@ -655,7 +657,7 @@ mod tests { let root_path_context = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); - let mut srv = test::init_service(App::new().default_service(Files::new( + let srv = test::init_service(App::new().default_service(Files::new( "/", serve_dir("."), root_path_context, @@ -664,7 +666,7 @@ mod tests { .await; let req = TestRequest::with_uri("/tests").to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::OK); assert_eq!( resp.headers().get(header::CONTENT_TYPE).unwrap(), @@ -677,17 +679,18 @@ mod tests { #[actix_rt::test] async fn test_redirect_to_slash_directory() { - let mut server_config = ServerConfig::default(); - - server_config.index_strategy = Some(IndexStrategyConfig::IndexFiles { - filenames: ["test.png".to_owned()].iter().cloned().collect(), - }); + let server_config = ServerConfig { + index_strategy: Some(IndexStrategyConfig::IndexFiles { + filenames: ["test.png".to_owned()].iter().cloned().collect(), + }), + ..ServerConfig::default() + }; let root_path_context: Arc<PathContext> = Arc::new((&server_config).try_into().unwrap()); let path_contexts = Arc::new(vec![]); // should redirect if index present - let mut srv = test::init_service( + let srv = test::init_service( App::new().service( Files::new("/", serve_dir("."), root_path_context, path_contexts) .redirect_to_slash_directory(), @@ -695,12 +698,12 @@ mod tests { ) .await; let req = TestRequest::with_uri("/tests").to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::FOUND); // should not redirect if the path is wrong let req = TestRequest::with_uri("/not_existing").to_request(); - let resp = test::call_service(&mut srv, req).await; + let resp = test::call_service(&srv, req).await; assert_eq!(resp.status(), StatusCode::NOT_FOUND); } diff --git a/src/files/path_context.rs b/src/files/path_context.rs index e98f06513874bc94b6ccc43a17e5a4528ff9ae54..05c3c64b69f14596a600238236e04196ce4b49d6 100644 --- a/src/files/path_context.rs +++ b/src/files/path_context.rs @@ -255,62 +255,41 @@ mod tests { #[test] fn test_static_path_matcher() { - assert_eq!( - PathMatcher::Static { - path: "hello/world.png".into(), - } - .matches_path(&"hello/world.png"), - true - ); + assert!(PathMatcher::Static { + path: "hello/world.png".into(), + } + .matches_path("hello/world.png"),); - assert_eq!( - PathMatcher::Static { - path: "hello/world.tar.gz".into(), - } - .matches_path(&"hello/world.png"), - false - ); + assert!(!PathMatcher::Static { + path: "hello/world.tar.gz".into(), + } + .matches_path("hello/world.png"),); } #[test] fn test_prefix_path_matcher() { - assert_eq!( - PathMatcher::Prefix { - prefix: "hello/".into(), - } - .matches_path(&"hello/world.png"), - true - ); + assert!(PathMatcher::Prefix { + prefix: "hello/".into(), + } + .matches_path("hello/world.png"),); - assert_eq!( - PathMatcher::Prefix { - prefix: "hello/bye".into(), - } - .matches_path(&"hello/world.png"), - false - ); + assert!(!PathMatcher::Prefix { + prefix: "hello/bye".into(), + } + .matches_path("hello/world.png"),); } #[test] fn test_regex_path_matcher() { - assert_eq!( - Regex::new(r"\.png$").unwrap().is_match("hello/world.png"), - true, - ); - - assert_eq!( - Regex::new(r"\.(js|css|png|jpg|jpeg|gif|ico)$") - .unwrap() - .is_match("hello/world.png"), - true, - ); - - assert_eq!( - PathMatcher::Regex { - regex: Regex::new(r"\.png$").unwrap(), - } - .matches_path(&"hello/world.tar.gz"), - false - ); + assert!(Regex::new(r"\.png$").unwrap().is_match("hello/world.png"),); + + assert!(Regex::new(r"\.(js|css|png|jpg|jpeg|gif|ico)$") + .unwrap() + .is_match("hello/world.png"),); + + assert!(!PathMatcher::Regex { + regex: Regex::new(r"\.png$").unwrap(), + } + .matches_path("hello/world.tar.gz"),); } }