diff options
author | fermeise <ocker.christian@gmail.com> | 2019-07-31 12:55:48 +0200 |
---|---|---|
committer | fermeise <ocker.christian@gmail.com> | 2019-07-31 13:07:36 +0200 |
commit | 48e0eb979fc7dcc5e7027fa89b61e17a634e897b (patch) | |
tree | b93a6d4d415dc3a798cdd8a26e6bd8bcfe4f5b40 /tests | |
parent | 44e76e8d788b5d889ab9f3bec890a99ae85ce4ba (diff) |
Add deserialization parameters to QsQueryConfig
This allows switching to non-strict parsing mode
resolves #21
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_actix.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_actix.rs b/tests/test_actix.rs index 09bc015..532fa7c 100644 --- a/tests/test_actix.rs +++ b/tests/test_actix.rs @@ -12,6 +12,7 @@ use actix_web::http::StatusCode; use actix_web::test::TestRequest; use actix_web::{FromRequest, HttpResponse}; use qs::actix::{QsQuery, QsQueryConfig}; +use qs::Config as QsConfig; use serde::de::Error; fn from_str<'de, D, S>(deserializer: D) -> Result<S, D::Error> @@ -91,3 +92,36 @@ fn test_composite_querystring_extractor() { assert_eq!(s.common.offset, 50); assert_eq!(s.common.remaining, true); } + +#[test] +fn test_default_qs_config() { + let req = TestRequest::with_uri( + "/test?foo=1&bars%5B%5D=3&limit=100&offset=50&remaining=true", + ) + .to_srv_request(); + let (req, mut pl) = req.into_parts(); + + let e = QsQuery::<Query>::from_request(&req, &mut pl).unwrap_err(); + assert_eq!( + e.as_response_error().error_response().status(), + StatusCode::BAD_REQUEST + ); +} + +#[test] +fn test_custom_qs_config() { + let req = TestRequest::with_uri( + "/test?foo=1&bars%5B%5D=3&limit=100&offset=50&remaining=true", + ) + .data(QsQueryConfig::default().qs_config(QsConfig::new(5, false))) + .to_srv_request(); + + let (req, mut pl) = req.into_parts(); + + let s = QsQuery::<Query>::from_request(&req, &mut pl).unwrap(); + assert_eq!(s.foo, 1); + assert_eq!(s.bars, vec![3]); + assert_eq!(s.common.limit, 100); + assert_eq!(s.common.offset, 50); + assert_eq!(s.common.remaining, true); +} |