summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSam Scott <sam.scott89@gmail.com>2017-11-01 15:18:51 +0000
committerSam Scott <sam.scott89@gmail.com>2017-11-01 15:18:51 +0000
commitc6bed85425022aaf63acaf081670e16b88dfcaf2 (patch)
treebcefc50fc7bc68028b0c1105be9b446b06b618bd /tests
parent8a18724f53ac35095ed603a2fb259f0abdf56daf (diff)
Refactor and clean parsing code, improve error messages.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_deserialize.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs
index 58cf256..cff219d 100644
--- a/tests/test_deserialize.rs
+++ b/tests/test_deserialize.rs
@@ -385,4 +385,24 @@ fn correct_decoding() {
map_test!("foo=%24", "foo"["$"]);
map_test!("foo=%26", "foo"["&"]);
-} \ No newline at end of file
+}
+
+#[test]
+fn returns_errors() {
+ #[derive(Debug,Serialize,Deserialize,PartialEq)]
+ struct Query {
+ vec: Vec<u32>
+ }
+
+ let params: Result<Query, _> = qs::from_str("vec[[]=a&vec[]=2");
+ assert!(params.is_err());
+ println!("{}", params.unwrap_err());
+
+ let params: Result<Query, _> = qs::from_str("vec[\x00[]=a&vec[]=2");
+ assert!(params.is_err());
+ println!("{}", params.unwrap_err());
+
+ let params: Result<Query, _> = qs::from_str("vec[0]=a&vec[0]=2");
+ assert!(params.is_err());
+ println!("{}", params.unwrap_err());
+}