From f9d75e4dd36a5f6bc0692497fd8a441659cd3d64 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Tue, 28 Apr 2015 09:19:35 +0200 Subject: [PATCH] docs(headers): Add examples to Accept* headers --- src/header/common/accept.rs | 4 +++ src/header/common/accept_charset.rs | 4 +++ src/header/common/accept_encoding.rs | 7 ++++ src/header/common/accept_language.rs | 52 +++++++--------------------- 4 files changed, 28 insertions(+), 39 deletions(-) diff --git a/src/header/common/accept.rs b/src/header/common/accept.rs index c991cab4..d8ae5ead 100644 --- a/src/header/common/accept.rs +++ b/src/header/common/accept.rs @@ -23,6 +23,10 @@ header! { #[doc="accept-ext = OWS \";\" OWS token [ \"=\" ( token / quoted-string ) ]"] #[doc="```"] #[doc=""] + #[doc="# Example values"] + #[doc="* `audio/*; q=0.2, audio/basic` (`*` value won't parse correctly)"] + #[doc="* `text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c`"] + #[doc=""] #[doc="# Notes"] #[doc="* Using always Mime types to represent `media-range` differs from the ABNF."] #[doc="* **FIXME**: `accept-ext` is not supported."] diff --git a/src/header/common/accept_charset.rs b/src/header/common/accept_charset.rs index 1fc044ae..16c80bba 100644 --- a/src/header/common/accept_charset.rs +++ b/src/header/common/accept_charset.rs @@ -15,9 +15,13 @@ header! { #[doc="```plain"] #[doc="Accept-Charset = 1#( ( charset / \"*\" ) [ weight ] )"] #[doc="```"] + #[doc=""] + #[doc="# Example values"] + #[doc="* `iso-8859-5, unicode-1-1;q=0.8`"] (AcceptCharset, "Accept-Charset") => (QualityItem)+ test_accept_charset { + /// Testcase from RFC test_header!(test1, vec![b"iso-8859-5, unicode-1-1;q=0.8"]); } } diff --git a/src/header/common/accept_encoding.rs b/src/header/common/accept_encoding.rs index eed7c2eb..1b6a4838 100644 --- a/src/header/common/accept_encoding.rs +++ b/src/header/common/accept_encoding.rs @@ -15,6 +15,13 @@ header! { #[doc="Accept-Encoding = #( codings [ weight ] )"] #[doc="codings = content-coding / \"identity\" / \"*\""] #[doc="```"] + #[doc=""] + #[doc="# Example values"] + #[doc="* `compress, gzip`"] + #[doc="* ``"] + #[doc="* `*`"] + #[doc="* `compress;q=0.5, gzip;q=1`"] + #[doc="* `gzip;q=1.0, identity; q=0.5, *;q=0`"] (AcceptEncoding, "Accept-Encoding") => (QualityItem)* test_accept_encoding { diff --git a/src/header/common/accept_language.rs b/src/header/common/accept_language.rs index 945c7de0..5f00cc3e 100644 --- a/src/header/common/accept_language.rs +++ b/src/header/common/accept_language.rs @@ -13,49 +13,23 @@ header! { #[doc="Accept-Language = 1#( language-range [ weight ] )"] #[doc="language-range = "] #[doc="```"] + #[doc=""] + #[doc="# Example values"] + #[doc="* `da, en-gb;q=0.8, en;q=0.7`"] + #[doc="* `en-us;q=1.0, en;q=0.5, fr`"] (AcceptLanguage, "Accept-Language") => (QualityItem)+ test_accept_language { + // From the RFC test_header!(test1, vec![b"da, en-gb;q=0.8, en;q=0.7"]); - } -} - -#[cfg(test)] -mod tests { - use header::{Header, Language, qitem, Quality, QualityItem}; - use super::*; - - #[test] - fn test_parse_header() { - let a: AcceptLanguage = Header::parse_header( - [b"en-us;q=1.0, en;q=0.5, fr".to_vec()].as_ref()).unwrap(); - let b = AcceptLanguage(vec![ - qitem(Language{primary: "en".to_string(), sub: Some("us".to_string())}), - QualityItem::new(Language{primary: "en".to_string(), sub: None}, - Quality(500)), - qitem(Language{primary: "fr".to_string(), sub: None}), - ]); - assert_eq!(format!("{}", a), format!("{}", b)); - assert_eq!(a, b); - } - - #[test] - fn test_display() { - assert_eq!("en".to_string(), - format!("{}", Language{primary: "en".to_string(), - sub: None})); - assert_eq!("en-us".to_string(), - format!("{}", Language{primary: "en".to_string(), - sub: Some("us".to_string())})); - } - - #[test] - fn test_from_str() { - assert_eq!(Language { primary: "en".to_string(), sub: None }, - "en".parse().unwrap()); - assert_eq!(Language { primary: "en".to_string(), - sub: Some("us".to_string()) }, - "en-us".parse().unwrap()); + // Own test + test_header!( + test2, vec![b"en-us, en; q=0.5, fr"], + Some(AcceptLanguage(vec![ + qitem(Language {primary: "en".to_string(), sub: Some("us".to_string())}), + QualityItem::new(Language{primary: "en".to_string(), sub: None}, Quality(500)), + qitem(Language {primary: "fr".to_string(), sub: None}), + ]))); } }