Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  uri.rs   Sprache: unbekannt

 

use httparse::{Error, Request, Status, EMPTY_HEADER};

const NUM_OF_HEADERS: usize = 4;

macro_rules! req {
    ($name:ident, $buf:expr, |$arg:ident| $body:expr) => (
        req! {$name, $buf, Ok(Status::Complete($buf.len())), |$arg| $body }
    );
    ($name:ident, $buf:expr, $len:expr, |$arg:ident| $body:expr) => (
    #[test]
    fn $name() {
        let mut headers = [EMPTY_HEADER; NUM_OF_HEADERS];
        let mut req = Request::new(&mut headers[..]);
        let status = req.parse($buf.as_ref());
        assert_eq!(status, $len);
        closure(req);

        fn closure($arg: Request<'_, '_>) {
            $body
        }
    }
    )
}

req! {
    urltest_001,
    b"GET /bar;par?b HTTP/1.1\r\nHost: foo\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/bar;par?b");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"foo");
    }
}


req! {
    urltest_002,
    b"GET /x HTTP/1.1\r\nHost: test\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/x");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"test");
    }
}


req! {
    urltest_003,
    b"GET /x HTTP/1.1\r\nHost: test\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/x");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"test");
    }
}


req! {
    urltest_004,
    b"GET /foo/foo.com HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/foo.com");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_005,
    b"GET /foo/:foo.com HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:foo.com");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_006,
    b"GET /foo/foo.com HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/foo.com");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_007,
    b"GET  foo.com HTTP/1.1\r\nHost: \r\n\r\n",
    Err(Error::Token),
    |_r| {}
}


req! {
    urltest_008,
    b"GET /%20b%20?%20d%20 HTTP/1.1\r\nHost: f\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%20b%20?%20d%20");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"f");
    }
}


req! {
    urltest_009,
    b"GET x x HTTP/1.1\r\nHost: \r\n\r\n",
    Err(Error::Version),
    |_r| {}
}


req! {
    urltest_010,
    b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"f");
    }
}


req! {
    urltest_011,
    b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"f");
    }
}


req! {
    urltest_012,
    b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"f");
    }
}


req! {
    urltest_013,
    b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"f");
    }
}


req! {
    urltest_014,
    b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"f");
    }
}


req! {
    urltest_015,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_016,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_017,
    b"GET /foo/:foo.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:foo.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_018,
    b"GET /foo/:foo.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:foo.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_019,
    b"GET /foo/: HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_020,
    b"GET /foo/:a HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:a");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_021,
    b"GET /foo/:/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_022,
    b"GET /foo/:/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_023,
    b"GET /foo/: HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_024,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_025,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_026,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_027,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_028,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_029,
    b"GET /foo/:23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:23");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_030,
    b"GET /:23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/:23");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_031,
    b"GET /foo/:: HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/::");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_032,
    b"GET /foo/::23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/::23");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_033,
    b"GET /d HTTP/1.1\r\nHost: c\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/d");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"c");
    }
}


req! {
    urltest_034,
    b"GET /foo/:@c:29 HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/:@c:29");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_035,
    b"GET //@ HTTP/1.1\r\nHost: foo.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "//@");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"foo.com");
    }
}


req! {
    urltest_036,
    b"GET /b:c/d@foo.com/ HTTP/1.1\r\nHost: a\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/b:c/d@foo.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"a");
    }
}


req! {
    urltest_037,
    b"GET /bar.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/bar.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_038,
    b"GET /////// HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "///////");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_039,
    b"GET ///////bar.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "///////bar.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_040,
    b"GET //:///// HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "//://///");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_041,
    b"GET /foo HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_042,
    b"GET /bar HTTP/1.1\r\nHost: foo\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"foo");
    }
}


req! {
    urltest_043,
    b"GET /path;a??e HTTP/1.1\r\nHost: foo\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/path;a??e");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"foo");
    }
}


req! {
    urltest_044,
    b"GET /abcd?efgh?ijkl HTTP/1.1\r\nHost: foo\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/abcd?efgh?ijkl");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"foo");
    }
}


req! {
    urltest_045,
    b"GET /abcd HTTP/1.1\r\nHost: foo\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/abcd");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"foo");
    }
}


req! {
    urltest_046,
    b"GET /foo/[61:24:74]:98 HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/[61:24:74]:98");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_047,
    b"GET /foo/[61:27]/:foo HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/[61:27]/:foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_048,
    b"GET /example.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_049,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_050,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_051,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_052,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_053,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_054,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_055,
    b"GET /foo/example.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_056,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_057,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_058,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_059,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_060,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_061,
    b"GET /a/b/c HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/a/b/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_062,
    b"GET /a/%20/c HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/a/%20/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_063,
    b"GET /a%2fc HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/a%2fc");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_064,
    b"GET /a/%2f/c HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/a/%2f/c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_065,
    b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_066,
    b"GET text/html,test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "text/html,test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_067,
    b"GET 1234567890 HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "1234567890");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_068,
    b"GET /c:/foo/bar.html HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c:/foo/bar.html");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_069,
    b"GET /c:////foo/bar.html HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/c:////foo/bar.html");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_070,
    b"GET /C:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/C:/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_071,
    b"GET /C:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/C:/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_072,
    b"GET /C:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/C:/foo/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_073,
    b"GET /file HTTP/1.1\r\nHost: server\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/file");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"server");
    }
}


req! {
    urltest_074,
    b"GET /file HTTP/1.1\r\nHost: server\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/file");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"server");
    }
}


req! {
    urltest_075,
    b"GET /file HTTP/1.1\r\nHost: server\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/file");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"server");
    }
}


req! {
    urltest_076,
    b"GET /foo/bar.txt HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_077,
    b"GET /home/me HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/home/me");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_078,
    b"GET /test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_079,
    b"GET /test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_080,
    b"GET /tmp/mock/test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/tmp/mock/test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_081,
    b"GET /tmp/mock/test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/tmp/mock/test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_082,
    b"GET /foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_083,
    b"GET /.foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/.foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_084,
    b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_085,
    b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_086,
    b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_087,
    b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_088,
    b"GET /foo/..bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/..bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_089,
    b"GET /foo/ton HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/ton");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_090,
    b"GET /a HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/a");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_091,
    b"GET /ton HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/ton");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_092,
    b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_093,
    b"GET /foo/%2e%2 HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/%2e%2");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_094,
    b"GET /%2e.bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%2e.bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_095,
    b"GET // HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "//");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_096,
    b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_097,
    b"GET /foo/bar/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/bar/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_098,
    b"GET /foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_099,
    b"GET /%20foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%20foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_100,
    b"GET /foo% HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_101,
    b"GET /foo%2 HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%2");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_102,
    b"GET /foo%2zbar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%2zbar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_103,
    b"GET /foo%2%C3%82%C2%A9zbar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%2%C3%82%C2%A9zbar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_104,
    b"GET /foo%41%7a HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%41%7a");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_105,
    b"GET /foo%C2%91%91 HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%C2%91%91");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_106,
    b"GET /foo%00%51 HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%00%51");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_107,
    b"GET /(%28:%3A%29) HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/(%28:%3A%29)");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_108,
    b"GET /%3A%3a%3C%3c HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%3A%3a%3C%3c");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_109,
    b"GET /foobar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foobar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_110,
    b"GET //foo//bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "//foo//bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_111,
    b"GET /%7Ffp3%3Eju%3Dduvgw%3Dd HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%7Ffp3%3Eju%3Dduvgw%3Dd");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_112,
    b"GET /@asdf%40 HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/@asdf%40");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_113,
    b"GET /%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_114,
    b"GET /%E2%80%A5/foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%E2%80%A5/foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_115,
    b"GET /%EF%BB%BF/foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%EF%BB%BF/foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_116,
    b"GET /%E2%80%AE/foo/%E2%80%AD/bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%E2%80%AE/foo/%E2%80%AD/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_117,
    b"GET /foo?bar=baz HTTP/1.1\r\nHost: www.google.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo?bar=baz");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.google.com");
    }
}


req! {
    urltest_118,
    b"GET /foo?bar=baz HTTP/1.1\r\nHost: www.google.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo?bar=baz");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.google.com");
    }
}


req! {
    urltest_119,
    b"GET test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_120,
    b"GET /foo%2Ehtml HTTP/1.1\r\nHost: www\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo%2Ehtml");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www");
    }
}


req! {
    urltest_121,
    b"GET /foo/html HTTP/1.1\r\nHost: www\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo/html");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www");
    }
}


req! {
    urltest_122,
    b"GET /foo HTTP/1.1\r\nHost: www.google.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/foo");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.google.com");
    }
}


req! {
    urltest_123,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_124,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_125,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_126,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_127,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_128,
    b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_129,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_130,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_131,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_132,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_133,
    b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "example.com/");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_134,
    b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_135,
    b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_136,
    b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_137,
    b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_138,
    b"GET /aaa/test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/aaa/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_139,
    b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_140,
    b"GET /%E4%B8%AD/test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%E4%B8%AD/test.txt");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"www.example.com");
    }
}


req! {
    urltest_141,
    b"GET /... HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/...");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_142,
    b"GET /a HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/a");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_143,
    b"GET /%EF%BF%BD?%EF%BF%BD HTTP/1.1\r\nHost: x\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%EF%BF%BD?%EF%BF%BD");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"x");
    }
}


req! {
    urltest_144,
    b"GET /bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/bar");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.com");
    }
}


req! {
    urltest_145,
    b"GET test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_146,
    b"GET x@x.com HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "x@x.com");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_147,
    b"GET , HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), ",");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_148,
    b"GET blank HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "blank");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_149,
    b"GET test?test HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "test?test");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_150,
    b"GET /%60%7B%7D?`{} HTTP/1.1\r\nHost: h\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/%60%7B%7D?`{}");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"h");
    }

}


req! {
    urltest_151,
    b"GET /?%27 HTTP/1.1\r\nHost: host\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/?%27");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"host");
    }
}


req! {
    urltest_152,
    b"GET /?' HTTP/1.1\r\nHost: host\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/?'");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"host");
    }
}


req! {
    urltest_153,
    b"GET /some/path HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/some/path");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_154,
    b"GET /smth HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/smth");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_155,
    b"GET /some/path HTTP/1.1\r\nHost: example.org\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/some/path");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"example.org");
    }
}


req! {
    urltest_156,
    b"GET /pa/i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/pa/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_157,
    b"GET /i HTTP/1.1\r\nHost: ho\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"ho");
    }
}


req! {
    urltest_158,
    b"GET /pa/i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/pa/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_159,
    b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_160,
    b"GET /i HTTP/1.1\r\nHost: ho\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"ho");
    }
}


req! {
    urltest_161,
    b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_162,
    b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_163,
    b"GET /i HTTP/1.1\r\nHost: ho\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"ho");
    }
}


req! {
    urltest_164,
    b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_165,
    b"GET /pa/pa?i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/pa/pa?i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_166,
    b"GET /pa?i HTTP/1.1\r\nHost: ho\r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/pa?i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"ho");
    }
}


req! {
    urltest_167,
    b"GET /pa/pa?i HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "/pa/pa?i");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
        assert_eq!(req.headers[0].name, "Host");
        assert_eq!(req.headers[0].value, b"");
    }
}


req! {
    urltest_168,
    b"GET sd HTTP/1.1\r\nHost: \r\n\r\n",
    |req| {
        assert_eq!(req.method.unwrap(), "GET");
        assert_eq!(req.path.unwrap(), "sd");
        assert_eq!(req.version.unwrap(), 1);
        assert_eq!(req.headers.len(), 1);
--> --------------------

--> maximum size reached

--> --------------------

[ Dauer der Verarbeitung: 0.48 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge