From b51b5b763c9c861fe8d9c55f4fa81f12c0e2875f Mon Sep 17 00:00:00 2001 From: Darin Date: Mon, 29 Apr 2019 12:14:36 -0400 Subject: [PATCH] added clarification to docs regarding middleware processing sequence, added delete method to TestRequest (#799) * added clarification to docs regarding middleware processing sequnce * added delete method to TestRequest, doc, and test --- src/app.rs | 10 +++++++++- src/test.rs | 14 +++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/app.rs b/src/app.rs index bb6d2aef8..b478b6c07 100644 --- a/src/app.rs +++ b/src/app.rs @@ -301,7 +301,15 @@ where /// lifecycle (request -> response), modifying request/response as /// necessary, across all requests managed by the *Application*. /// - /// Use middleware when you need to read or modify *every* request or response in some way. + /// Use middleware when you need to read or modify *every* request or + /// response in some way. + /// + /// Notice that the keyword for registering middleware is `wrap`. As you + /// register middleware using `wrap` in the App builder, imagine wrapping + /// layers around an inner App. The first middleware layer exposed to a + /// Request is the outermost layer-- the *last* registered in + /// the builder chain. Consequently, the *first* middleware registered + /// in the builder chain is the *last* to execute during request processing. /// /// ```rust /// use actix_service::Service; diff --git a/src/test.rs b/src/test.rs index 1f3a24271..6bdc3ce3c 100644 --- a/src/test.rs +++ b/src/test.rs @@ -386,6 +386,11 @@ impl TestRequest { TestRequest::default().method(Method::PATCH) } + /// Create TestRequest and set method to `Method::DELETE` + pub fn delete() -> TestRequest { + TestRequest::default().method(Method::DELETE) + } + /// Set HTTP version of this request pub fn version(mut self, ver: Version) -> Self { self.req.version(ver); @@ -549,7 +554,8 @@ mod tests { App::new().service( web::resource("/index.html") .route(web::put().to(|| HttpResponse::Ok().body("put!"))) - .route(web::patch().to(|| HttpResponse::Ok().body("patch!"))), + .route(web::patch().to(|| HttpResponse::Ok().body("patch!"))) + .route(web::delete().to(|| HttpResponse::Ok().body("delete!"))) ), ); @@ -568,6 +574,12 @@ mod tests { let result = read_response(&mut app, patch_req); assert_eq!(result, Bytes::from_static(b"patch!")); + + let delete_req = TestRequest::delete() + .uri("/index.html") + .to_request(); + let result = read_response(&mut app, delete_req); + assert_eq!(result, Bytes::from_static(b"delete!")); } #[test]