summaryrefslogtreecommitdiff
path: root/tests/test_actix.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_actix.rs')
-rw-r--r--tests/test_actix.rs30
1 files changed, 26 insertions, 4 deletions
diff --git a/tests/test_actix.rs b/tests/test_actix.rs
index 792afb2..dcc5980 100644
--- a/tests/test_actix.rs
+++ b/tests/test_actix.rs
@@ -16,7 +16,7 @@ use actix_web::error::InternalError;
use actix_web::http::StatusCode;
use actix_web::test::TestRequest;
use actix_web::{FromRequest, HttpResponse};
-use qs::actix::{QsQuery, QsQueryConfig};
+use qs::actix::{QsForm, QsQuery, QsQueryConfig};
use qs::Config as QsConfig;
use serde::de::Error;
@@ -26,7 +26,7 @@ where
S: std::str::FromStr,
{
let s = <&str as serde::Deserialize>::deserialize(deserializer)?;
- S::from_str(&s).map_err(|_| D::Error::custom("could not parse string"))
+ S::from_str(s).map_err(|_| D::Error::custom("could not parse string"))
}
#[derive(Deserialize, Serialize, Debug, PartialEq)]
@@ -103,7 +103,7 @@ fn test_composite_querystring_extractor() {
assert_eq!(s.bars, vec![0, 1]);
assert_eq!(s.common.limit, 100);
assert_eq!(s.common.offset, 50);
- assert_eq!(s.common.remaining, true);
+ assert!(s.common.remaining);
})
}
@@ -140,6 +140,28 @@ fn test_custom_qs_config() {
assert_eq!(s.bars, vec![3]);
assert_eq!(s.common.limit, 100);
assert_eq!(s.common.offset, 50);
- assert_eq!(s.common.remaining, true);
+ assert!(s.common.remaining);
+ })
+}
+
+#[test]
+fn test_form_extractor() {
+ futures::executor::block_on(async {
+ let test_data = Query {
+ foo: 1,
+ bars: vec![0, 1],
+ common: CommonParams {
+ limit: 100,
+ offset: 50,
+ remaining: true,
+ },
+ };
+ let req = TestRequest::with_uri("/test")
+ .set_payload(serde_qs::to_string(&test_data).unwrap())
+ .to_srv_request();
+ let (req, mut pl) = req.into_parts();
+
+ let s = QsForm::<Query>::from_request(&req, &mut pl).await.unwrap();
+ assert_eq!(s.into_inner(), test_data);
})
}