diff options
author | Sam Scott <sam.scott89@gmail.com> | 2017-11-01 15:18:51 +0000 |
---|---|---|
committer | Sam Scott <sam.scott89@gmail.com> | 2017-11-01 15:18:51 +0000 |
commit | c6bed85425022aaf63acaf081670e16b88dfcaf2 (patch) | |
tree | bcefc50fc7bc68028b0c1105be9b446b06b618bd /tests | |
parent | 8a18724f53ac35095ed603a2fb259f0abdf56daf (diff) |
Refactor and clean parsing code, improve error messages.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_deserialize.rs | 22 |
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()); +} |