From bd3910636df48430e3fdeac740551e00584699f2 Mon Sep 17 00:00:00 2001 From: Andrii Radyk Date: Sun, 13 Jan 2019 23:12:57 +0100 Subject: [PATCH] add test cases for query and form sequence --- tests/test_handlers.rs | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/test_handlers.rs b/tests/test_handlers.rs index debc1626a..e2a70172d 100644 --- a/tests/test_handlers.rs +++ b/tests/test_handlers.rs @@ -144,6 +144,50 @@ fn test_query_enum_extractor() { assert_eq!(response.status(), StatusCode::BAD_REQUEST); } +#[derive(Debug, Deserialize)] +pub struct Customer { + first_name: String, + last_name: String, + emails: Vec, +} + +#[test] +fn test_query_sequence_extractor() { + let mut srv = test::TestServer::new(|app| { + app.resource("/index.html", |r| { + r.with(|p: Query| format!("{:?}", p)) + }); + }); + + // client request + let request = srv + .get() + .uri(srv.url("/index.html?first_name=John&last_name=Doe&emails=john%40example.com&emails=doe%40example.com")) + .finish() + .unwrap(); + let response = srv.execute(request.send()).unwrap(); + assert!(response.status().is_success()); +} + +#[test] +fn test_form_sequence_extractor() { + let mut srv = test::TestServer::new(|app| { + app.resource("/index.html", |r| { + r.with(|form: Form| format!("{:?}", form)) + }); + }); + + // client request + let request = srv + .post() + .uri(srv.url("/index.html")) + .header("content-type", "application/x-www-form-urlencoded") + .body("first_name=John&last_name=Doe&emails=john%40example.com&emails=doe%40example.com") + .unwrap(); + let response = srv.execute(request.send()).unwrap(); + assert!(response.status().is_success()); +} + #[test] fn test_async_extractor_async() { let mut srv = test::TestServer::new(|app| {