summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSam Scott <sam@osohq.com>2020-12-06 23:43:32 -0500
committerSam Scott <sam@osohq.com>2020-12-06 23:43:48 -0500
commitb7b2520107ecfca77520151c6dc3002442bf0f0b (patch)
treebe49c18915bac69746fcbc2bfb3641b3994a83d1 /tests
parent3f77d51edcc0575df5204152cb0dd960604244dc (diff)
Serialize bytes as percent-encoded data.
Fixes #40. Thanks to @faulesocke for reporting.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_deserialize.rs3
-rw-r--r--tests/test_serialize.rs24
2 files changed, 24 insertions, 3 deletions
diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs
index 68395d5..a620828 100644
--- a/tests/test_deserialize.rs
+++ b/tests/test_deserialize.rs
@@ -639,9 +639,6 @@ fn deserialize_plus() {
}
#[test]
-fn deserialize_vec_of_structs() {}
-
-#[test]
fn deserialize_map_with_unit_enum_keys() {
#[derive(Deserialize, Eq, PartialEq, Hash)]
enum Operator {
diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs
index 8aecfe3..c3c63fd 100644
--- a/tests/test_serialize.rs
+++ b/tests/test_serialize.rs
@@ -156,3 +156,27 @@ fn serialize_map_with_unit_enum_keys() {
assert!(query == "point[Lt]=321&point[Gt]=123" || query == "point[Gt]=123&point[Lt]=321");
}
+
+#[test]
+fn serialize_bytes() {
+ struct Bytes(&'static [u8]);
+
+ #[derive(Serialize)]
+ struct Query {
+ bytes: Bytes,
+ }
+
+
+ impl serde::Serialize for Bytes
+ {
+ fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
+ where
+ S: serde::Serializer,
+ {
+ serializer.serialize_bytes(self.0)
+ }
+ }
+ let bytes = Bytes(b"hello, world!");
+ let s = qs::to_string(&Query { bytes }).unwrap();
+ assert_eq!(s, "bytes=hello%2C+world%21");
+} \ No newline at end of file