summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorfermeise <ocker.christian@gmail.com>2019-07-31 12:55:48 +0200
committerfermeise <ocker.christian@gmail.com>2019-07-31 13:07:36 +0200
commit48e0eb979fc7dcc5e7027fa89b61e17a634e897b (patch)
treeb93a6d4d415dc3a798cdd8a26e6bd8bcfe4f5b40 /tests
parent44e76e8d788b5d889ab9f3bec890a99ae85ce4ba (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.rs34
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);
+}