http-bytes 0.1.0

Byte buffer to/from http::{Request,Response}
Documentation
use super::*;
#[test]
fn request_roundtrip() {
    let q = b"GET / HTTP/1.1\r
Host: lol\r
User-Agent: none\r
\r
qwer";
    let (r, rest) = parse_request_header_easy(q).unwrap().unwrap();

    assert_eq!(rest, b"qwer");

    let v = request_header_to_vec(&r);
    let vv = String::from_utf8_lossy(&v[..]).to_lowercase();
    assert_eq!(
        vv,
        "get / http/1.1\r
host: lol\r
user-agent: none\r
\r\n"
            .as_ref()
    );
}


#[test]
#[cfg(feature="basicauth")]
fn request_auth_roundtrip_autofill() {
    let q = b"GET /Bernd HTTP/1.1\r
Host: lol\r
User-Agent: none\r
Authorization: Basic Zm9vOmJhcg==\r
\r
qwer"; 
    let mut h = [httparse::EMPTY_HEADER; 50];
    let s = http::uri::Scheme::HTTP;
    let (mut r, rest) = parse_request_header(q, &mut h, Some(s)).unwrap().unwrap();
    assert_eq!(rest, b"qwer");

    r.headers_mut().clear();

    let v = request_header_to_vec(&r);
    let vv = String::from_utf8_lossy(&v[..]).to_lowercase();
    assert_eq!(
        vv,
        "get /bernd http/1.1\r
host: lol\r
authorization: basic zm9vomjhcg==\r
\r\n"
            .as_ref()
    );
}


#[test]
fn response_roundtrip() {
    let q = b"HTTP/1.1 200 OK\r
Host: lol\r
Server: none\r
\r
qwer";
    let (r, rest) = parse_response_header_easy(q).unwrap().unwrap();

    assert_eq!(rest, b"qwer");

    let v = response_header_to_vec(&r);
    let vv = String::from_utf8_lossy(&v[..]).to_lowercase();
    assert_eq!(
        vv,
        "http/1.1 200 ok\r
host: lol\r
server: none\r
\r\n"
            .as_ref()
    );
}