test(headers): Add tests for headers with "*" value
This commit is contained in:
@@ -21,24 +21,21 @@ header! {
|
|||||||
#[doc="If-Match = \"*\" / 1#entity-tag"]
|
#[doc="If-Match = \"*\" / 1#entity-tag"]
|
||||||
#[doc="```"]
|
#[doc="```"]
|
||||||
(IfMatch, "If-Match") => {Any / (EntityTag)+}
|
(IfMatch, "If-Match") => {Any / (EntityTag)+}
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
test_if_match {
|
||||||
fn test_parse_header() {
|
test_header!(
|
||||||
use header::Header;
|
test1,
|
||||||
{
|
vec![b"\"xyzzy\""],
|
||||||
let a: IfMatch = Header::parse_header(
|
Some(HeaderField::Items(
|
||||||
[b"*".to_vec()].as_ref()).unwrap();
|
vec![EntityTag::new(false, "xyzzy".to_string())])));
|
||||||
assert_eq!(a, IfMatch::Any);
|
test_header!(
|
||||||
}
|
test2,
|
||||||
{
|
vec![b"\"xyzzy\", \"r2d2xxxx\", \"c3piozzzz\""],
|
||||||
let a: IfMatch = Header::parse_header(
|
Some(HeaderField::Items(
|
||||||
[b"\"xyzzy\", \"r2d2xxxx\", \"c3piozzzz\"".to_vec()].as_ref()).unwrap();
|
vec![EntityTag::new(false, "xyzzy".to_string()),
|
||||||
let b = IfMatch::Items(
|
EntityTag::new(false, "r2d2xxxx".to_string()),
|
||||||
vec![EntityTag::new(false, "xyzzy".to_string()),
|
EntityTag::new(false, "c3piozzzz".to_string())])));
|
||||||
EntityTag::new(false, "r2d2xxxx".to_string()),
|
test_header!(test3, vec![b"*"], Some(IfMatch::Any));
|
||||||
EntityTag::new(false, "c3piozzzz".to_string())]);
|
|
||||||
assert_eq!(a, b);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,14 @@ header! {
|
|||||||
#[doc="If-None-Match = \"*\" / 1#entity-tag"]
|
#[doc="If-None-Match = \"*\" / 1#entity-tag"]
|
||||||
#[doc="```"]
|
#[doc="```"]
|
||||||
(IfNoneMatch, "If-None-Match") => {Any / (EntityTag)+}
|
(IfNoneMatch, "If-None-Match") => {Any / (EntityTag)+}
|
||||||
|
|
||||||
|
test_if_none_match {
|
||||||
|
test_header!(test1, vec![b"\"xyzzy\""]);
|
||||||
|
test_header!(test2, vec![b"W/\"xyzzy\""]);
|
||||||
|
test_header!(test3, vec![b"\"xyzzy\", \"r2d2xxxx\", \"c3piozzzz\""]);
|
||||||
|
test_header!(test4, vec![b"W/\"xyzzy\", W/\"r2d2xxxx\", W/\"c3piozzzz\""]);
|
||||||
|
test_header!(test5, vec![b"*"]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|||||||
@@ -176,7 +176,6 @@ macro_rules! header {
|
|||||||
self.fmt_header(f)
|
self.fmt_header(f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unused_imports)]
|
#[allow(unused_imports)]
|
||||||
mod $tm{
|
mod $tm{
|
||||||
use $crate::header::*;
|
use $crate::header::*;
|
||||||
@@ -211,7 +210,7 @@ macro_rules! header {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
// List header, one or more items with "*" option
|
// List header, one or more items with "*" option
|
||||||
($(#[$a:meta])*($id:ident, $n:expr) => {Any / ($item:ty)+}) => {
|
($(#[$a:meta])*($id:ident, $n:expr) => {Any / ($item:ty)+} $tm:ident{$($tf:item)*}) => {
|
||||||
$(#[$a])*
|
$(#[$a])*
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
pub enum $id {
|
pub enum $id {
|
||||||
@@ -250,6 +249,13 @@ macro_rules! header {
|
|||||||
self.fmt_header(f)
|
self.fmt_header(f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#[allow(unused_imports)]
|
||||||
|
mod $tm{
|
||||||
|
use $crate::header::*;
|
||||||
|
use $crate::mime::*;
|
||||||
|
use super::$id as HeaderField;
|
||||||
|
$($tf)*
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ header! {
|
|||||||
#[doc="Vary = \"*\" / 1#field-name"]
|
#[doc="Vary = \"*\" / 1#field-name"]
|
||||||
#[doc="```"]
|
#[doc="```"]
|
||||||
(Vary, "Vary") => {Any / (UniCase<String>)+}
|
(Vary, "Vary") => {Any / (UniCase<String>)+}
|
||||||
|
|
||||||
|
test_vary {
|
||||||
|
test_header!(test1, vec![b"accept-encoding, accept-language"]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|||||||
Reference in New Issue
Block a user