mirror of
https://github.com/fafhrd91/actix-web
synced 2025-07-01 16:55:08 +02:00
use actix_rt::test for test setup
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
use std::task::{Context, Poll};
|
||||
|
||||
use actix_service::{Service, Transform};
|
||||
use futures::future::{ok, Either, FutureExt, LocalBoxFuture, Ready};
|
||||
use futures::future::{ok, Either, FutureExt, LocalBoxFuture};
|
||||
|
||||
/// `Middleware` for conditionally enables another middleware.
|
||||
/// The controled middleware must not change the `Service` interfaces.
|
||||
@ -102,7 +102,7 @@ mod tests {
|
||||
use crate::error::Result;
|
||||
use crate::http::{header::CONTENT_TYPE, HeaderValue, StatusCode};
|
||||
use crate::middleware::errhandlers::*;
|
||||
use crate::test::{self, block_on, TestRequest};
|
||||
use crate::test::{self, TestRequest};
|
||||
use crate::HttpResponse;
|
||||
|
||||
fn render_500<B>(mut res: ServiceResponse<B>) -> Result<ErrorHandlerResponse<B>> {
|
||||
@ -112,46 +112,40 @@ mod tests {
|
||||
Ok(ErrorHandlerResponse::Response(res))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_handler_enabled() {
|
||||
block_on(async {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
#[actix_rt::test]
|
||||
async fn test_handler_enabled() {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
|
||||
let mw = ErrorHandlers::new()
|
||||
.handler(StatusCode::INTERNAL_SERVER_ERROR, render_500);
|
||||
let mw =
|
||||
ErrorHandlers::new().handler(StatusCode::INTERNAL_SERVER_ERROR, render_500);
|
||||
|
||||
let mut mw = Condition::new(true, mw)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request())
|
||||
.await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
})
|
||||
let mut mw = Condition::new(true, mw)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request()).await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_handler_disabled() {
|
||||
block_on(async {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
#[actix_rt::test]
|
||||
async fn test_handler_disabled() {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
|
||||
let mw = ErrorHandlers::new()
|
||||
.handler(StatusCode::INTERNAL_SERVER_ERROR, render_500);
|
||||
let mw =
|
||||
ErrorHandlers::new().handler(StatusCode::INTERNAL_SERVER_ERROR, render_500);
|
||||
|
||||
let mut mw = Condition::new(false, mw)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let mut mw = Condition::new(false, mw)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request())
|
||||
.await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE), None);
|
||||
})
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request()).await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE), None);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,4 @@
|
||||
//! Middleware for setting default response headers
|
||||
use std::future::Future;
|
||||
use std::pin::Pin;
|
||||
use std::rc::Rc;
|
||||
use std::task::{Context, Poll};
|
||||
|
||||
@ -161,55 +159,50 @@ mod tests {
|
||||
use super::*;
|
||||
use crate::dev::ServiceRequest;
|
||||
use crate::http::header::CONTENT_TYPE;
|
||||
use crate::test::{block_on, ok_service, TestRequest};
|
||||
use crate::test::{ok_service, TestRequest};
|
||||
use crate::HttpResponse;
|
||||
|
||||
#[test]
|
||||
fn test_default_headers() {
|
||||
block_on(async {
|
||||
let mut mw = DefaultHeaders::new()
|
||||
.header(CONTENT_TYPE, "0001")
|
||||
.new_transform(ok_service())
|
||||
.await
|
||||
.unwrap();
|
||||
#[actix_rt::test]
|
||||
async fn test_default_headers() {
|
||||
let mut mw = DefaultHeaders::new()
|
||||
.header(CONTENT_TYPE, "0001")
|
||||
.new_transform(ok_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
let resp = mw.call(req).await.unwrap();
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
let resp = mw.call(req).await.unwrap();
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(
|
||||
HttpResponse::Ok().header(CONTENT_TYPE, "0002").finish(),
|
||||
))
|
||||
};
|
||||
let mut mw = DefaultHeaders::new()
|
||||
.header(CONTENT_TYPE, "0001")
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let resp = mw.call(req).await.unwrap();
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0002");
|
||||
})
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req
|
||||
.into_response(HttpResponse::Ok().header(CONTENT_TYPE, "0002").finish()))
|
||||
};
|
||||
let mut mw = DefaultHeaders::new()
|
||||
.header(CONTENT_TYPE, "0001")
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let resp = mw.call(req).await.unwrap();
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0002");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_content_type() {
|
||||
block_on(async {
|
||||
let srv =
|
||||
|req: ServiceRequest| ok(req.into_response(HttpResponse::Ok().finish()));
|
||||
let mut mw = DefaultHeaders::new()
|
||||
.content_type()
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
#[actix_rt::test]
|
||||
async fn test_content_type() {
|
||||
let srv =
|
||||
|req: ServiceRequest| ok(req.into_response(HttpResponse::Ok().finish()));
|
||||
let mut mw = DefaultHeaders::new()
|
||||
.content_type()
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
let resp = mw.call(req).await.unwrap();
|
||||
assert_eq!(
|
||||
resp.headers().get(CONTENT_TYPE).unwrap(),
|
||||
"application/octet-stream"
|
||||
);
|
||||
})
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
let resp = mw.call(req).await.unwrap();
|
||||
assert_eq!(
|
||||
resp.headers().get(CONTENT_TYPE).unwrap(),
|
||||
"application/octet-stream"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ use std::rc::Rc;
|
||||
use std::task::{Context, Poll};
|
||||
|
||||
use actix_service::{Service, Transform};
|
||||
use futures::future::{err, ok, Either, Future, FutureExt, LocalBoxFuture, Ready};
|
||||
use futures::future::{ok, FutureExt, LocalBoxFuture, Ready};
|
||||
use hashbrown::HashMap;
|
||||
|
||||
use crate::dev::{ServiceRequest, ServiceResponse};
|
||||
@ -151,7 +151,7 @@ mod tests {
|
||||
|
||||
use super::*;
|
||||
use crate::http::{header::CONTENT_TYPE, HeaderValue, StatusCode};
|
||||
use crate::test::{self, block_on, TestRequest};
|
||||
use crate::test::{self, TestRequest};
|
||||
use crate::HttpResponse;
|
||||
|
||||
fn render_500<B>(mut res: ServiceResponse<B>) -> Result<ErrorHandlerResponse<B>> {
|
||||
@ -161,24 +161,21 @@ mod tests {
|
||||
Ok(ErrorHandlerResponse::Response(res))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_handler() {
|
||||
block_on(async {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
#[actix_rt::test]
|
||||
async fn test_handler() {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
|
||||
let mut mw = ErrorHandlers::new()
|
||||
.handler(StatusCode::INTERNAL_SERVER_ERROR, render_500)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let mut mw = ErrorHandlers::new()
|
||||
.handler(StatusCode::INTERNAL_SERVER_ERROR, render_500)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request())
|
||||
.await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
})
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request()).await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
}
|
||||
|
||||
fn render_500_async<B: 'static>(
|
||||
@ -190,23 +187,20 @@ mod tests {
|
||||
Ok(ErrorHandlerResponse::Future(ok(res).boxed_local()))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_handler_async() {
|
||||
block_on(async {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
#[actix_rt::test]
|
||||
async fn test_handler_async() {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(HttpResponse::InternalServerError().finish()))
|
||||
};
|
||||
|
||||
let mut mw = ErrorHandlers::new()
|
||||
.handler(StatusCode::INTERNAL_SERVER_ERROR, render_500_async)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let mut mw = ErrorHandlers::new()
|
||||
.handler(StatusCode::INTERNAL_SERVER_ERROR, render_500_async)
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request())
|
||||
.await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
})
|
||||
let resp =
|
||||
test::call_service(&mut mw, TestRequest::default().to_srv_request()).await;
|
||||
assert_eq!(resp.headers().get(CONTENT_TYPE).unwrap(), "0001");
|
||||
}
|
||||
}
|
||||
|
@ -479,10 +479,10 @@ mod tests {
|
||||
|
||||
use super::*;
|
||||
use crate::http::{header, StatusCode};
|
||||
use crate::test::{block_on, TestRequest};
|
||||
use crate::test::TestRequest;
|
||||
|
||||
#[test]
|
||||
fn test_logger() {
|
||||
#[actix_rt::test]
|
||||
async fn test_logger() {
|
||||
let srv = |req: ServiceRequest| {
|
||||
ok(req.into_response(
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
@ -492,18 +492,18 @@ mod tests {
|
||||
};
|
||||
let logger = Logger::new("%% %{User-Agent}i %{X-Test}o %{HOME}e %D test");
|
||||
|
||||
let mut srv = block_on(logger.new_transform(srv.into_service())).unwrap();
|
||||
let mut srv = logger.new_transform(srv.into_service()).await.unwrap();
|
||||
|
||||
let req = TestRequest::with_header(
|
||||
header::USER_AGENT,
|
||||
header::HeaderValue::from_static("ACTIX-WEB"),
|
||||
)
|
||||
.to_srv_request();
|
||||
let _res = block_on(srv.call(req));
|
||||
let _res = srv.call(req).await;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_url_path() {
|
||||
#[actix_rt::test]
|
||||
async fn test_url_path() {
|
||||
let mut format = Format::new("%T %U");
|
||||
let req = TestRequest::with_header(
|
||||
header::USER_AGENT,
|
||||
@ -533,8 +533,8 @@ mod tests {
|
||||
assert!(s.contains("/test/route/yeah"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_default_format() {
|
||||
#[actix_rt::test]
|
||||
async fn test_default_format() {
|
||||
let mut format = Format::default();
|
||||
|
||||
let req = TestRequest::with_header(
|
||||
@ -566,8 +566,8 @@ mod tests {
|
||||
assert!(s.contains("ACTIX-WEB"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_request_time_format() {
|
||||
#[actix_rt::test]
|
||||
async fn test_request_time_format() {
|
||||
let mut format = Format::new("%t");
|
||||
let req = TestRequest::default().to_srv_request();
|
||||
|
||||
|
@ -105,62 +105,56 @@ mod tests {
|
||||
|
||||
use super::*;
|
||||
use crate::dev::ServiceRequest;
|
||||
use crate::test::{block_on, call_service, init_service, TestRequest};
|
||||
use crate::test::{call_service, init_service, TestRequest};
|
||||
use crate::{web, App, HttpResponse};
|
||||
|
||||
#[test]
|
||||
fn test_wrap() {
|
||||
block_on(async {
|
||||
let mut app = init_service(
|
||||
App::new()
|
||||
.wrap(NormalizePath::default())
|
||||
.service(web::resource("/v1/something/").to(|| HttpResponse::Ok())),
|
||||
)
|
||||
.await;
|
||||
#[actix_rt::test]
|
||||
async fn test_wrap() {
|
||||
let mut app = init_service(
|
||||
App::new()
|
||||
.wrap(NormalizePath::default())
|
||||
.service(web::resource("/v1/something/").to(|| HttpResponse::Ok())),
|
||||
)
|
||||
.await;
|
||||
|
||||
let req = TestRequest::with_uri("/v1//something////").to_request();
|
||||
let res = call_service(&mut app, req).await;
|
||||
assert!(res.status().is_success());
|
||||
})
|
||||
let req = TestRequest::with_uri("/v1//something////").to_request();
|
||||
let res = call_service(&mut app, req).await;
|
||||
assert!(res.status().is_success());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_in_place_normalization() {
|
||||
block_on(async {
|
||||
let srv = |req: ServiceRequest| {
|
||||
assert_eq!("/v1/something/", req.path());
|
||||
ok(req.into_response(HttpResponse::Ok().finish()))
|
||||
};
|
||||
#[actix_rt::test]
|
||||
async fn test_in_place_normalization() {
|
||||
let srv = |req: ServiceRequest| {
|
||||
assert_eq!("/v1/something/", req.path());
|
||||
ok(req.into_response(HttpResponse::Ok().finish()))
|
||||
};
|
||||
|
||||
let mut normalize = NormalizePath
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let mut normalize = NormalizePath
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let req = TestRequest::with_uri("/v1//something////").to_srv_request();
|
||||
let res = normalize.call(req).await.unwrap();
|
||||
assert!(res.status().is_success());
|
||||
})
|
||||
let req = TestRequest::with_uri("/v1//something////").to_srv_request();
|
||||
let res = normalize.call(req).await.unwrap();
|
||||
assert!(res.status().is_success());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_normalize_nothing() {
|
||||
block_on(async {
|
||||
const URI: &str = "/v1/something/";
|
||||
#[actix_rt::test]
|
||||
async fn should_normalize_nothing() {
|
||||
const URI: &str = "/v1/something/";
|
||||
|
||||
let srv = |req: ServiceRequest| {
|
||||
assert_eq!(URI, req.path());
|
||||
ok(req.into_response(HttpResponse::Ok().finish()))
|
||||
};
|
||||
let srv = |req: ServiceRequest| {
|
||||
assert_eq!(URI, req.path());
|
||||
ok(req.into_response(HttpResponse::Ok().finish()))
|
||||
};
|
||||
|
||||
let mut normalize = NormalizePath
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
let mut normalize = NormalizePath
|
||||
.new_transform(srv.into_service())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let req = TestRequest::with_uri(URI).to_srv_request();
|
||||
let res = normalize.call(req).await.unwrap();
|
||||
assert!(res.status().is_success());
|
||||
})
|
||||
let req = TestRequest::with_uri(URI).to_srv_request();
|
||||
let res = normalize.call(req).await.unwrap();
|
||||
assert!(res.status().is_success());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user