leyline-http 0.1.1

HTTP client that mimics browsers on the wire
Documentation
use super::*;

#[test]
fn static_is_zero_copy_and_reads_back() {
    let h = HeaderStr::from_static("content-type");
    assert_eq!(h, "content-type");
    assert_eq!(h.as_str(), "content-type");
    assert!(h.eq_ignore_ascii_case("Content-Type"));
}

#[test]
fn from_string_takes_buffer() {
    let h = HeaderStr::from("text/html".to_string());
    assert_eq!(h.as_bytes(), b"text/html");
}

#[test]
fn rejects_non_utf8() {
    assert!(HeaderStr::from_utf8(Bytes::from_static(&[0xff, 0xfe])).is_err());
}

#[test]
fn deref_enables_str_methods() {
    let h = HeaderStr::from_static("a=1; Path=/; Secure");
    assert_eq!(h.find('='), Some(1));
    assert_eq!(&h[..1], "a");
}

#[test]
fn borrow_str_hash_contract_holds() {
    let mut m = std::collections::HashMap::new();
    m.insert(HeaderStr::from("content-type".to_string()), 1);
    assert_eq!(m.get("content-type"), Some(&1));
    assert_eq!(m.get("absent"), None);
}