From 884e32478959614ab8470d8c10a4331ff0dea7cc Mon Sep 17 00:00:00 2001 From: Omid Rad Date: Wed, 13 May 2020 20:51:49 +0200 Subject: [PATCH] Update the tests --- Cargo.toml | 1 - actix-files/src/lib.rs | 95 +++++++++++++++++++++--------------------- tests/test_server.rs | 63 +--------------------------- 3 files changed, 48 insertions(+), 111 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index bb3f2ccf4..b24cc89d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -111,7 +111,6 @@ serde_derive = "1.0" brotli2 = "0.3.2" flate2 = "1.0.13" criterion = "0.3" -actix-files = "0.2.1" [profile.release] lto = true diff --git a/actix-files/src/lib.rs b/actix-files/src/lib.rs index 8e3e84f70..63c499c23 100644 --- a/actix-files/src/lib.rs +++ b/actix-files/src/lib.rs @@ -952,69 +952,68 @@ mod tests { #[actix_rt::test] async fn test_named_file_content_range_headers() { - let mut srv = test::init_service( - App::new().service(Files::new("/test", ".").index_file("tests/test.binary")), - ) - .await; + let srv = test::start(|| { + App::new().service(Files::new("/", ".").index_file("tests/test.binary")) + }); // Valid range header - let request = TestRequest::get() - .uri("/t%65st/tests/test.binary") + let response = srv + .get("/") .header(header::RANGE, "bytes=10-20") - .to_request(); - - let response = test::call_service(&mut srv, request).await; - let contentrange = response - .headers() - .get(header::CONTENT_RANGE) - .unwrap() - .to_str() + .send() + .await .unwrap(); - - assert_eq!(contentrange, "bytes 10-20/100"); + let content_range = response.headers().get(header::CONTENT_RANGE).unwrap(); + assert_eq!(content_range.to_str().unwrap(), "bytes 10-20/100"); // Invalid range header - let request = TestRequest::get() - .uri("/t%65st/tests/test.binary") + let response = srv + .get("/") .header(header::RANGE, "bytes=10-5") - .to_request(); - let response = test::call_service(&mut srv, request).await; - - let contentrange = response - .headers() - .get(header::CONTENT_RANGE) - .unwrap() - .to_str() + .send() + .await .unwrap(); - - assert_eq!(contentrange, "bytes */100"); + let content_range = response.headers().get(header::CONTENT_RANGE).unwrap(); + assert_eq!(content_range.to_str().unwrap(), "bytes */100"); } #[actix_rt::test] async fn test_named_file_content_length_headers() { - let mut srv = test::init_service( - App::new().service(Files::new("test", ".").index_file("tests/test.binary")), - ) - .await; + let srv = test::start(|| { + App::new().service(Files::new("/", ".").index_file("tests/test.binary")) + }); - // chunked - let request = TestRequest::get() - .uri("/t%65st/tests/test.binary") - .to_request(); - let response = test::call_service(&mut srv, request).await; + // Valid range header + let response = srv + .head("/") + .header(header::RANGE, "bytes=10-20") + .send() + .await + .unwrap(); + let content_length = response.headers().get(header::CONTENT_LENGTH).unwrap(); + assert_eq!(content_length.to_str().unwrap(), "11"); - // with enabled compression - // { - // let te = response - // .headers() - // .get(header::TRANSFER_ENCODING) - // .unwrap() - // .to_str() - // .unwrap(); - // assert_eq!(te, "chunked"); - // } + // Valid range header, starting from 0 + let response = srv + .head("/") + .header(header::RANGE, "bytes=0-20") + .send() + .await + .unwrap(); + let content_length = response.headers().get(header::CONTENT_LENGTH).unwrap(); + assert_eq!(content_length.to_str().unwrap(), "21"); - let bytes = test::read_body(response).await; + // Without range header + let mut response = srv.get("/").send().await.unwrap(); + let content_length = response.headers().get(header::CONTENT_LENGTH).unwrap(); + assert_eq!(content_length.to_str().unwrap(), "100"); + + // Should be no transfer-encoding + let transfer_encoding = response.headers().get(header::TRANSFER_ENCODING); + assert!(transfer_encoding.is_none()); + + // Check file contents + let bytes = response.body().await.unwrap(); let data = Bytes::from(fs::read("tests/test.binary").unwrap()); assert_eq!(bytes, data); } diff --git a/tests/test_server.rs b/tests/test_server.rs index 159f5bf0d..1916b372c 100644 --- a/tests/test_server.rs +++ b/tests/test_server.rs @@ -3,7 +3,7 @@ use std::pin::Pin; use std::task::{Context, Poll}; use actix_http::http::header::{ - self, ContentEncoding, ACCEPT_ENCODING, CONTENT_ENCODING, CONTENT_LENGTH, + ContentEncoding, ACCEPT_ENCODING, CONTENT_ENCODING, CONTENT_LENGTH, TRANSFER_ENCODING, }; use brotli2::write::{BrotliDecoder, BrotliEncoder}; @@ -17,7 +17,6 @@ use rand::{distributions::Alphanumeric, Rng}; use actix_web::dev::BodyEncoding; use actix_web::middleware::Compress; use actix_web::{dev, test, web, App, Error, HttpResponse}; -use actix_files::Files; const STR: &str = "Hello World Hello World Hello World Hello World Hello World \ Hello World Hello World Hello World Hello World Hello World \ @@ -890,63 +889,3 @@ async fn test_slow_request() { // let _ = stream.read_to_string(&mut data); // assert!(data.is_empty()); // } - -#[actix_rt::test] -async fn test_files_content_length_headers() { - let srv = test::start_with(test::config().h1(), || { - App::new().service( - Files::new("/", ".").index_file("actix-files/tests/test.binary") - ) - }); - - let response = srv - .head("/") - .send().await.unwrap(); - - let contentlength = response - .headers() - .get(CONTENT_LENGTH) - .unwrap() - .to_str() - .unwrap(); - assert_eq!(contentlength, "100"); - - let response = srv - .head("/") - .header(header::RANGE, "bytes=10-20") - .send().await.unwrap(); - - let contentlength = response - .headers() - .get(CONTENT_LENGTH) - .unwrap() - .to_str() - .unwrap(); - assert_eq!(contentlength, "11"); - - let response = srv - .head("/") - .header(header::RANGE, "bytes=0-20") - .send().await.unwrap(); - - let contentlength = response - .headers() - .get(CONTENT_LENGTH) - .unwrap() - .to_str() - .unwrap(); - assert_eq!(contentlength, "21"); - - let response = srv - .head("/") - .header(header::RANGE, "bytes=20-0") - .send().await.unwrap(); - - let contentlength = response - .headers() - .get(CONTENT_LENGTH) - .unwrap() - .to_str() - .unwrap(); - assert_eq!(contentlength, "0"); -}