2 use httparse::{Error, Request, Status, EMPTY_HEADER};
4 const NUM_OF_HEADERS: usize = 4;
7 ($name:ident, $buf:expr, |$arg:ident| $body:expr) => (
8 req! {$name, $buf, Ok(Status::Complete($buf.len())), |$arg| $body }
10 ($name:ident, $buf:expr, $len:expr, |$arg:ident| $body:expr) => (
13 let mut headers = [EMPTY_HEADER; NUM_OF_HEADERS];
14 let mut req = Request::new(&mut headers[..]);
15 let status = req.parse($buf.as_ref());
16 assert_eq!(status, $len);
19 fn closure($arg: Request<'_, '_>) {
28 b"GET /bar;par?b HTTP/1.1\r\nHost: foo\r\n\r\n",
30 assert_eq!(req.method.unwrap(), "GET");
31 assert_eq!(req.path.unwrap(), "/bar;par?b");
32 assert_eq!(req.version.unwrap(), 1);
33 assert_eq!(req.headers.len(), 1);
34 assert_eq!(req.headers[0].name, "Host");
35 assert_eq!(req.headers[0].value, b"foo");
42 b"GET /x HTTP/1.1\r\nHost: test\r\n\r\n",
44 assert_eq!(req.method.unwrap(), "GET");
45 assert_eq!(req.path.unwrap(), "/x");
46 assert_eq!(req.version.unwrap(), 1);
47 assert_eq!(req.headers.len(), 1);
48 assert_eq!(req.headers[0].name, "Host");
49 assert_eq!(req.headers[0].value, b"test");
56 b"GET /x HTTP/1.1\r\nHost: test\r\n\r\n",
58 assert_eq!(req.method.unwrap(), "GET");
59 assert_eq!(req.path.unwrap(), "/x");
60 assert_eq!(req.version.unwrap(), 1);
61 assert_eq!(req.headers.len(), 1);
62 assert_eq!(req.headers[0].name, "Host");
63 assert_eq!(req.headers[0].value, b"test");
70 b"GET /foo/foo.com HTTP/1.1\r\nHost: example.org\r\n\r\n",
72 assert_eq!(req.method.unwrap(), "GET");
73 assert_eq!(req.path.unwrap(), "/foo/foo.com");
74 assert_eq!(req.version.unwrap(), 1);
75 assert_eq!(req.headers.len(), 1);
76 assert_eq!(req.headers[0].name, "Host");
77 assert_eq!(req.headers[0].value, b"example.org");
84 b"GET /foo/:foo.com HTTP/1.1\r\nHost: example.org\r\n\r\n",
86 assert_eq!(req.method.unwrap(), "GET");
87 assert_eq!(req.path.unwrap(), "/foo/:foo.com");
88 assert_eq!(req.version.unwrap(), 1);
89 assert_eq!(req.headers.len(), 1);
90 assert_eq!(req.headers[0].name, "Host");
91 assert_eq!(req.headers[0].value, b"example.org");
98 b"GET /foo/foo.com HTTP/1.1\r\nHost: example.org\r\n\r\n",
100 assert_eq!(req.method.unwrap(), "GET");
101 assert_eq!(req.path.unwrap(), "/foo/foo.com");
102 assert_eq!(req.version.unwrap(), 1);
103 assert_eq!(req.headers.len(), 1);
104 assert_eq!(req.headers[0].name, "Host");
105 assert_eq!(req.headers[0].value, b"example.org");
112 b"GET foo.com HTTP/1.1\r\nHost: \r\n\r\n",
120 b"GET /%20b%20?%20d%20 HTTP/1.1\r\nHost: f\r\n\r\n",
122 assert_eq!(req.method.unwrap(), "GET");
123 assert_eq!(req.path.unwrap(), "/%20b%20?%20d%20");
124 assert_eq!(req.version.unwrap(), 1);
125 assert_eq!(req.headers.len(), 1);
126 assert_eq!(req.headers[0].name, "Host");
127 assert_eq!(req.headers[0].value, b"f");
134 b"GET x x HTTP/1.1\r\nHost: \r\n\r\n",
142 b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
144 assert_eq!(req.method.unwrap(), "GET");
145 assert_eq!(req.path.unwrap(), "/c");
146 assert_eq!(req.version.unwrap(), 1);
147 assert_eq!(req.headers.len(), 1);
148 assert_eq!(req.headers[0].name, "Host");
149 assert_eq!(req.headers[0].value, b"f");
156 b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
158 assert_eq!(req.method.unwrap(), "GET");
159 assert_eq!(req.path.unwrap(), "/c");
160 assert_eq!(req.version.unwrap(), 1);
161 assert_eq!(req.headers.len(), 1);
162 assert_eq!(req.headers[0].name, "Host");
163 assert_eq!(req.headers[0].value, b"f");
170 b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
172 assert_eq!(req.method.unwrap(), "GET");
173 assert_eq!(req.path.unwrap(), "/c");
174 assert_eq!(req.version.unwrap(), 1);
175 assert_eq!(req.headers.len(), 1);
176 assert_eq!(req.headers[0].name, "Host");
177 assert_eq!(req.headers[0].value, b"f");
184 b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
186 assert_eq!(req.method.unwrap(), "GET");
187 assert_eq!(req.path.unwrap(), "/c");
188 assert_eq!(req.version.unwrap(), 1);
189 assert_eq!(req.headers.len(), 1);
190 assert_eq!(req.headers[0].name, "Host");
191 assert_eq!(req.headers[0].value, b"f");
198 b"GET /c HTTP/1.1\r\nHost: f\r\n\r\n",
200 assert_eq!(req.method.unwrap(), "GET");
201 assert_eq!(req.path.unwrap(), "/c");
202 assert_eq!(req.version.unwrap(), 1);
203 assert_eq!(req.headers.len(), 1);
204 assert_eq!(req.headers[0].name, "Host");
205 assert_eq!(req.headers[0].value, b"f");
212 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
214 assert_eq!(req.method.unwrap(), "GET");
215 assert_eq!(req.path.unwrap(), "/foo/bar");
216 assert_eq!(req.version.unwrap(), 1);
217 assert_eq!(req.headers.len(), 1);
218 assert_eq!(req.headers[0].name, "Host");
219 assert_eq!(req.headers[0].value, b"example.org");
226 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
228 assert_eq!(req.method.unwrap(), "GET");
229 assert_eq!(req.path.unwrap(), "/foo/bar");
230 assert_eq!(req.version.unwrap(), 1);
231 assert_eq!(req.headers.len(), 1);
232 assert_eq!(req.headers[0].name, "Host");
233 assert_eq!(req.headers[0].value, b"example.org");
240 b"GET /foo/:foo.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
242 assert_eq!(req.method.unwrap(), "GET");
243 assert_eq!(req.path.unwrap(), "/foo/:foo.com/");
244 assert_eq!(req.version.unwrap(), 1);
245 assert_eq!(req.headers.len(), 1);
246 assert_eq!(req.headers[0].name, "Host");
247 assert_eq!(req.headers[0].value, b"example.org");
254 b"GET /foo/:foo.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
256 assert_eq!(req.method.unwrap(), "GET");
257 assert_eq!(req.path.unwrap(), "/foo/:foo.com/");
258 assert_eq!(req.version.unwrap(), 1);
259 assert_eq!(req.headers.len(), 1);
260 assert_eq!(req.headers[0].name, "Host");
261 assert_eq!(req.headers[0].value, b"example.org");
268 b"GET /foo/: HTTP/1.1\r\nHost: example.org\r\n\r\n",
270 assert_eq!(req.method.unwrap(), "GET");
271 assert_eq!(req.path.unwrap(), "/foo/:");
272 assert_eq!(req.version.unwrap(), 1);
273 assert_eq!(req.headers.len(), 1);
274 assert_eq!(req.headers[0].name, "Host");
275 assert_eq!(req.headers[0].value, b"example.org");
282 b"GET /foo/:a HTTP/1.1\r\nHost: example.org\r\n\r\n",
284 assert_eq!(req.method.unwrap(), "GET");
285 assert_eq!(req.path.unwrap(), "/foo/:a");
286 assert_eq!(req.version.unwrap(), 1);
287 assert_eq!(req.headers.len(), 1);
288 assert_eq!(req.headers[0].name, "Host");
289 assert_eq!(req.headers[0].value, b"example.org");
296 b"GET /foo/:/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
298 assert_eq!(req.method.unwrap(), "GET");
299 assert_eq!(req.path.unwrap(), "/foo/:/");
300 assert_eq!(req.version.unwrap(), 1);
301 assert_eq!(req.headers.len(), 1);
302 assert_eq!(req.headers[0].name, "Host");
303 assert_eq!(req.headers[0].value, b"example.org");
310 b"GET /foo/:/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
312 assert_eq!(req.method.unwrap(), "GET");
313 assert_eq!(req.path.unwrap(), "/foo/:/");
314 assert_eq!(req.version.unwrap(), 1);
315 assert_eq!(req.headers.len(), 1);
316 assert_eq!(req.headers[0].name, "Host");
317 assert_eq!(req.headers[0].value, b"example.org");
324 b"GET /foo/: HTTP/1.1\r\nHost: example.org\r\n\r\n",
326 assert_eq!(req.method.unwrap(), "GET");
327 assert_eq!(req.path.unwrap(), "/foo/:");
328 assert_eq!(req.version.unwrap(), 1);
329 assert_eq!(req.headers.len(), 1);
330 assert_eq!(req.headers[0].name, "Host");
331 assert_eq!(req.headers[0].value, b"example.org");
338 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
340 assert_eq!(req.method.unwrap(), "GET");
341 assert_eq!(req.path.unwrap(), "/foo/bar");
342 assert_eq!(req.version.unwrap(), 1);
343 assert_eq!(req.headers.len(), 1);
344 assert_eq!(req.headers[0].name, "Host");
345 assert_eq!(req.headers[0].value, b"example.org");
352 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
354 assert_eq!(req.method.unwrap(), "GET");
355 assert_eq!(req.path.unwrap(), "/foo/bar");
356 assert_eq!(req.version.unwrap(), 1);
357 assert_eq!(req.headers.len(), 1);
358 assert_eq!(req.headers[0].name, "Host");
359 assert_eq!(req.headers[0].value, b"example.org");
366 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
368 assert_eq!(req.method.unwrap(), "GET");
369 assert_eq!(req.path.unwrap(), "/foo/bar");
370 assert_eq!(req.version.unwrap(), 1);
371 assert_eq!(req.headers.len(), 1);
372 assert_eq!(req.headers[0].name, "Host");
373 assert_eq!(req.headers[0].value, b"example.org");
380 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
382 assert_eq!(req.method.unwrap(), "GET");
383 assert_eq!(req.path.unwrap(), "/foo/bar");
384 assert_eq!(req.version.unwrap(), 1);
385 assert_eq!(req.headers.len(), 1);
386 assert_eq!(req.headers[0].name, "Host");
387 assert_eq!(req.headers[0].value, b"example.org");
394 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
396 assert_eq!(req.method.unwrap(), "GET");
397 assert_eq!(req.path.unwrap(), "/foo/bar");
398 assert_eq!(req.version.unwrap(), 1);
399 assert_eq!(req.headers.len(), 1);
400 assert_eq!(req.headers[0].name, "Host");
401 assert_eq!(req.headers[0].value, b"example.org");
408 b"GET /foo/:23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
410 assert_eq!(req.method.unwrap(), "GET");
411 assert_eq!(req.path.unwrap(), "/foo/:23");
412 assert_eq!(req.version.unwrap(), 1);
413 assert_eq!(req.headers.len(), 1);
414 assert_eq!(req.headers[0].name, "Host");
415 assert_eq!(req.headers[0].value, b"example.org");
422 b"GET /:23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
424 assert_eq!(req.method.unwrap(), "GET");
425 assert_eq!(req.path.unwrap(), "/:23");
426 assert_eq!(req.version.unwrap(), 1);
427 assert_eq!(req.headers.len(), 1);
428 assert_eq!(req.headers[0].name, "Host");
429 assert_eq!(req.headers[0].value, b"example.org");
436 b"GET /foo/:: HTTP/1.1\r\nHost: example.org\r\n\r\n",
438 assert_eq!(req.method.unwrap(), "GET");
439 assert_eq!(req.path.unwrap(), "/foo/::");
440 assert_eq!(req.version.unwrap(), 1);
441 assert_eq!(req.headers.len(), 1);
442 assert_eq!(req.headers[0].name, "Host");
443 assert_eq!(req.headers[0].value, b"example.org");
450 b"GET /foo/::23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
452 assert_eq!(req.method.unwrap(), "GET");
453 assert_eq!(req.path.unwrap(), "/foo/::23");
454 assert_eq!(req.version.unwrap(), 1);
455 assert_eq!(req.headers.len(), 1);
456 assert_eq!(req.headers[0].name, "Host");
457 assert_eq!(req.headers[0].value, b"example.org");
464 b"GET /d HTTP/1.1\r\nHost: c\r\n\r\n",
466 assert_eq!(req.method.unwrap(), "GET");
467 assert_eq!(req.path.unwrap(), "/d");
468 assert_eq!(req.version.unwrap(), 1);
469 assert_eq!(req.headers.len(), 1);
470 assert_eq!(req.headers[0].name, "Host");
471 assert_eq!(req.headers[0].value, b"c");
478 b"GET /foo/:@c:29 HTTP/1.1\r\nHost: example.org\r\n\r\n",
480 assert_eq!(req.method.unwrap(), "GET");
481 assert_eq!(req.path.unwrap(), "/foo/:@c:29");
482 assert_eq!(req.version.unwrap(), 1);
483 assert_eq!(req.headers.len(), 1);
484 assert_eq!(req.headers[0].name, "Host");
485 assert_eq!(req.headers[0].value, b"example.org");
492 b"GET //@ HTTP/1.1\r\nHost: foo.com\r\n\r\n",
494 assert_eq!(req.method.unwrap(), "GET");
495 assert_eq!(req.path.unwrap(), "//@");
496 assert_eq!(req.version.unwrap(), 1);
497 assert_eq!(req.headers.len(), 1);
498 assert_eq!(req.headers[0].name, "Host");
499 assert_eq!(req.headers[0].value, b"foo.com");
506 b"GET /b:c/d@foo.com/ HTTP/1.1\r\nHost: a\r\n\r\n",
508 assert_eq!(req.method.unwrap(), "GET");
509 assert_eq!(req.path.unwrap(), "/b:c/d@foo.com/");
510 assert_eq!(req.version.unwrap(), 1);
511 assert_eq!(req.headers.len(), 1);
512 assert_eq!(req.headers[0].name, "Host");
513 assert_eq!(req.headers[0].value, b"a");
520 b"GET /bar.com/ HTTP/1.1\r\nHost: \r\n\r\n",
522 assert_eq!(req.method.unwrap(), "GET");
523 assert_eq!(req.path.unwrap(), "/bar.com/");
524 assert_eq!(req.version.unwrap(), 1);
525 assert_eq!(req.headers.len(), 1);
526 assert_eq!(req.headers[0].name, "Host");
527 assert_eq!(req.headers[0].value, b"");
534 b"GET /////// HTTP/1.1\r\nHost: \r\n\r\n",
536 assert_eq!(req.method.unwrap(), "GET");
537 assert_eq!(req.path.unwrap(), "///////");
538 assert_eq!(req.version.unwrap(), 1);
539 assert_eq!(req.headers.len(), 1);
540 assert_eq!(req.headers[0].name, "Host");
541 assert_eq!(req.headers[0].value, b"");
548 b"GET ///////bar.com/ HTTP/1.1\r\nHost: \r\n\r\n",
550 assert_eq!(req.method.unwrap(), "GET");
551 assert_eq!(req.path.unwrap(), "///////bar.com/");
552 assert_eq!(req.version.unwrap(), 1);
553 assert_eq!(req.headers.len(), 1);
554 assert_eq!(req.headers[0].name, "Host");
555 assert_eq!(req.headers[0].value, b"");
562 b"GET //:///// HTTP/1.1\r\nHost: \r\n\r\n",
564 assert_eq!(req.method.unwrap(), "GET");
565 assert_eq!(req.path.unwrap(), "//://///");
566 assert_eq!(req.version.unwrap(), 1);
567 assert_eq!(req.headers.len(), 1);
568 assert_eq!(req.headers[0].name, "Host");
569 assert_eq!(req.headers[0].value, b"");
576 b"GET /foo HTTP/1.1\r\nHost: \r\n\r\n",
578 assert_eq!(req.method.unwrap(), "GET");
579 assert_eq!(req.path.unwrap(), "/foo");
580 assert_eq!(req.version.unwrap(), 1);
581 assert_eq!(req.headers.len(), 1);
582 assert_eq!(req.headers[0].name, "Host");
583 assert_eq!(req.headers[0].value, b"");
590 b"GET /bar HTTP/1.1\r\nHost: foo\r\n\r\n",
592 assert_eq!(req.method.unwrap(), "GET");
593 assert_eq!(req.path.unwrap(), "/bar");
594 assert_eq!(req.version.unwrap(), 1);
595 assert_eq!(req.headers.len(), 1);
596 assert_eq!(req.headers[0].name, "Host");
597 assert_eq!(req.headers[0].value, b"foo");
604 b"GET /path;a??e HTTP/1.1\r\nHost: foo\r\n\r\n",
606 assert_eq!(req.method.unwrap(), "GET");
607 assert_eq!(req.path.unwrap(), "/path;a??e");
608 assert_eq!(req.version.unwrap(), 1);
609 assert_eq!(req.headers.len(), 1);
610 assert_eq!(req.headers[0].name, "Host");
611 assert_eq!(req.headers[0].value, b"foo");
618 b"GET /abcd?efgh?ijkl HTTP/1.1\r\nHost: foo\r\n\r\n",
620 assert_eq!(req.method.unwrap(), "GET");
621 assert_eq!(req.path.unwrap(), "/abcd?efgh?ijkl");
622 assert_eq!(req.version.unwrap(), 1);
623 assert_eq!(req.headers.len(), 1);
624 assert_eq!(req.headers[0].name, "Host");
625 assert_eq!(req.headers[0].value, b"foo");
632 b"GET /abcd HTTP/1.1\r\nHost: foo\r\n\r\n",
634 assert_eq!(req.method.unwrap(), "GET");
635 assert_eq!(req.path.unwrap(), "/abcd");
636 assert_eq!(req.version.unwrap(), 1);
637 assert_eq!(req.headers.len(), 1);
638 assert_eq!(req.headers[0].name, "Host");
639 assert_eq!(req.headers[0].value, b"foo");
646 b"GET /foo/[61:24:74]:98 HTTP/1.1\r\nHost: example.org\r\n\r\n",
648 assert_eq!(req.method.unwrap(), "GET");
649 assert_eq!(req.path.unwrap(), "/foo/[61:24:74]:98");
650 assert_eq!(req.version.unwrap(), 1);
651 assert_eq!(req.headers.len(), 1);
652 assert_eq!(req.headers[0].name, "Host");
653 assert_eq!(req.headers[0].value, b"example.org");
660 b"GET /foo/[61:27]/:foo HTTP/1.1\r\nHost: example.org\r\n\r\n",
662 assert_eq!(req.method.unwrap(), "GET");
663 assert_eq!(req.path.unwrap(), "/foo/[61:27]/:foo");
664 assert_eq!(req.version.unwrap(), 1);
665 assert_eq!(req.headers.len(), 1);
666 assert_eq!(req.headers[0].name, "Host");
667 assert_eq!(req.headers[0].value, b"example.org");
674 b"GET /example.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
676 assert_eq!(req.method.unwrap(), "GET");
677 assert_eq!(req.path.unwrap(), "/example.com/");
678 assert_eq!(req.version.unwrap(), 1);
679 assert_eq!(req.headers.len(), 1);
680 assert_eq!(req.headers[0].name, "Host");
681 assert_eq!(req.headers[0].value, b"example.org");
688 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
690 assert_eq!(req.method.unwrap(), "GET");
691 assert_eq!(req.path.unwrap(), "/example.com/");
692 assert_eq!(req.version.unwrap(), 1);
693 assert_eq!(req.headers.len(), 1);
694 assert_eq!(req.headers[0].name, "Host");
695 assert_eq!(req.headers[0].value, b"");
702 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
704 assert_eq!(req.method.unwrap(), "GET");
705 assert_eq!(req.path.unwrap(), "/example.com/");
706 assert_eq!(req.version.unwrap(), 1);
707 assert_eq!(req.headers.len(), 1);
708 assert_eq!(req.headers[0].name, "Host");
709 assert_eq!(req.headers[0].value, b"");
716 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
718 assert_eq!(req.method.unwrap(), "GET");
719 assert_eq!(req.path.unwrap(), "/example.com/");
720 assert_eq!(req.version.unwrap(), 1);
721 assert_eq!(req.headers.len(), 1);
722 assert_eq!(req.headers[0].name, "Host");
723 assert_eq!(req.headers[0].value, b"");
730 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
732 assert_eq!(req.method.unwrap(), "GET");
733 assert_eq!(req.path.unwrap(), "/example.com/");
734 assert_eq!(req.version.unwrap(), 1);
735 assert_eq!(req.headers.len(), 1);
736 assert_eq!(req.headers[0].name, "Host");
737 assert_eq!(req.headers[0].value, b"");
744 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
746 assert_eq!(req.method.unwrap(), "GET");
747 assert_eq!(req.path.unwrap(), "/example.com/");
748 assert_eq!(req.version.unwrap(), 1);
749 assert_eq!(req.headers.len(), 1);
750 assert_eq!(req.headers[0].name, "Host");
751 assert_eq!(req.headers[0].value, b"");
758 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
760 assert_eq!(req.method.unwrap(), "GET");
761 assert_eq!(req.path.unwrap(), "/example.com/");
762 assert_eq!(req.version.unwrap(), 1);
763 assert_eq!(req.headers.len(), 1);
764 assert_eq!(req.headers[0].name, "Host");
765 assert_eq!(req.headers[0].value, b"");
772 b"GET /foo/example.com/ HTTP/1.1\r\nHost: example.org\r\n\r\n",
774 assert_eq!(req.method.unwrap(), "GET");
775 assert_eq!(req.path.unwrap(), "/foo/example.com/");
776 assert_eq!(req.version.unwrap(), 1);
777 assert_eq!(req.headers.len(), 1);
778 assert_eq!(req.headers[0].name, "Host");
779 assert_eq!(req.headers[0].value, b"example.org");
786 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
788 assert_eq!(req.method.unwrap(), "GET");
789 assert_eq!(req.path.unwrap(), "example.com/");
790 assert_eq!(req.version.unwrap(), 1);
791 assert_eq!(req.headers.len(), 1);
792 assert_eq!(req.headers[0].name, "Host");
793 assert_eq!(req.headers[0].value, b"");
800 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
802 assert_eq!(req.method.unwrap(), "GET");
803 assert_eq!(req.path.unwrap(), "example.com/");
804 assert_eq!(req.version.unwrap(), 1);
805 assert_eq!(req.headers.len(), 1);
806 assert_eq!(req.headers[0].name, "Host");
807 assert_eq!(req.headers[0].value, b"");
814 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
816 assert_eq!(req.method.unwrap(), "GET");
817 assert_eq!(req.path.unwrap(), "example.com/");
818 assert_eq!(req.version.unwrap(), 1);
819 assert_eq!(req.headers.len(), 1);
820 assert_eq!(req.headers[0].name, "Host");
821 assert_eq!(req.headers[0].value, b"");
828 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
830 assert_eq!(req.method.unwrap(), "GET");
831 assert_eq!(req.path.unwrap(), "example.com/");
832 assert_eq!(req.version.unwrap(), 1);
833 assert_eq!(req.headers.len(), 1);
834 assert_eq!(req.headers[0].name, "Host");
835 assert_eq!(req.headers[0].value, b"");
842 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
844 assert_eq!(req.method.unwrap(), "GET");
845 assert_eq!(req.path.unwrap(), "example.com/");
846 assert_eq!(req.version.unwrap(), 1);
847 assert_eq!(req.headers.len(), 1);
848 assert_eq!(req.headers[0].name, "Host");
849 assert_eq!(req.headers[0].value, b"");
856 b"GET /a/b/c HTTP/1.1\r\nHost: example.org\r\n\r\n",
858 assert_eq!(req.method.unwrap(), "GET");
859 assert_eq!(req.path.unwrap(), "/a/b/c");
860 assert_eq!(req.version.unwrap(), 1);
861 assert_eq!(req.headers.len(), 1);
862 assert_eq!(req.headers[0].name, "Host");
863 assert_eq!(req.headers[0].value, b"example.org");
870 b"GET /a/%20/c HTTP/1.1\r\nHost: example.org\r\n\r\n",
872 assert_eq!(req.method.unwrap(), "GET");
873 assert_eq!(req.path.unwrap(), "/a/%20/c");
874 assert_eq!(req.version.unwrap(), 1);
875 assert_eq!(req.headers.len(), 1);
876 assert_eq!(req.headers[0].name, "Host");
877 assert_eq!(req.headers[0].value, b"example.org");
884 b"GET /a%2fc HTTP/1.1\r\nHost: example.org\r\n\r\n",
886 assert_eq!(req.method.unwrap(), "GET");
887 assert_eq!(req.path.unwrap(), "/a%2fc");
888 assert_eq!(req.version.unwrap(), 1);
889 assert_eq!(req.headers.len(), 1);
890 assert_eq!(req.headers[0].name, "Host");
891 assert_eq!(req.headers[0].value, b"example.org");
898 b"GET /a/%2f/c HTTP/1.1\r\nHost: example.org\r\n\r\n",
900 assert_eq!(req.method.unwrap(), "GET");
901 assert_eq!(req.path.unwrap(), "/a/%2f/c");
902 assert_eq!(req.version.unwrap(), 1);
903 assert_eq!(req.headers.len(), 1);
904 assert_eq!(req.headers[0].name, "Host");
905 assert_eq!(req.headers[0].value, b"example.org");
912 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
914 assert_eq!(req.method.unwrap(), "GET");
915 assert_eq!(req.path.unwrap(), "/foo/bar");
916 assert_eq!(req.version.unwrap(), 1);
917 assert_eq!(req.headers.len(), 1);
918 assert_eq!(req.headers[0].name, "Host");
919 assert_eq!(req.headers[0].value, b"example.org");
926 b"GET text/html,test HTTP/1.1\r\nHost: \r\n\r\n",
928 assert_eq!(req.method.unwrap(), "GET");
929 assert_eq!(req.path.unwrap(), "text/html,test");
930 assert_eq!(req.version.unwrap(), 1);
931 assert_eq!(req.headers.len(), 1);
932 assert_eq!(req.headers[0].name, "Host");
933 assert_eq!(req.headers[0].value, b"");
940 b"GET 1234567890 HTTP/1.1\r\nHost: \r\n\r\n",
942 assert_eq!(req.method.unwrap(), "GET");
943 assert_eq!(req.path.unwrap(), "1234567890");
944 assert_eq!(req.version.unwrap(), 1);
945 assert_eq!(req.headers.len(), 1);
946 assert_eq!(req.headers[0].name, "Host");
947 assert_eq!(req.headers[0].value, b"");
954 b"GET /c:/foo/bar.html HTTP/1.1\r\nHost: \r\n\r\n",
956 assert_eq!(req.method.unwrap(), "GET");
957 assert_eq!(req.path.unwrap(), "/c:/foo/bar.html");
958 assert_eq!(req.version.unwrap(), 1);
959 assert_eq!(req.headers.len(), 1);
960 assert_eq!(req.headers[0].name, "Host");
961 assert_eq!(req.headers[0].value, b"");
968 b"GET /c:////foo/bar.html HTTP/1.1\r\nHost: \r\n\r\n",
970 assert_eq!(req.method.unwrap(), "GET");
971 assert_eq!(req.path.unwrap(), "/c:////foo/bar.html");
972 assert_eq!(req.version.unwrap(), 1);
973 assert_eq!(req.headers.len(), 1);
974 assert_eq!(req.headers[0].name, "Host");
975 assert_eq!(req.headers[0].value, b"");
982 b"GET /C:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
984 assert_eq!(req.method.unwrap(), "GET");
985 assert_eq!(req.path.unwrap(), "/C:/foo/bar");
986 assert_eq!(req.version.unwrap(), 1);
987 assert_eq!(req.headers.len(), 1);
988 assert_eq!(req.headers[0].name, "Host");
989 assert_eq!(req.headers[0].value, b"");
996 b"GET /C:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
998 assert_eq!(req.method.unwrap(), "GET");
999 assert_eq!(req.path.unwrap(), "/C:/foo/bar");
1000 assert_eq!(req.version.unwrap(), 1);
1001 assert_eq!(req.headers.len(), 1);
1002 assert_eq!(req.headers[0].name, "Host");
1003 assert_eq!(req.headers[0].value, b"");
1010 b"GET /C:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
1012 assert_eq!(req.method.unwrap(), "GET");
1013 assert_eq!(req.path.unwrap(), "/C:/foo/bar");
1014 assert_eq!(req.version.unwrap(), 1);
1015 assert_eq!(req.headers.len(), 1);
1016 assert_eq!(req.headers[0].name, "Host");
1017 assert_eq!(req.headers[0].value, b"");
1024 b"GET /file HTTP/1.1\r\nHost: server\r\n\r\n",
1026 assert_eq!(req.method.unwrap(), "GET");
1027 assert_eq!(req.path.unwrap(), "/file");
1028 assert_eq!(req.version.unwrap(), 1);
1029 assert_eq!(req.headers.len(), 1);
1030 assert_eq!(req.headers[0].name, "Host");
1031 assert_eq!(req.headers[0].value, b"server");
1038 b"GET /file HTTP/1.1\r\nHost: server\r\n\r\n",
1040 assert_eq!(req.method.unwrap(), "GET");
1041 assert_eq!(req.path.unwrap(), "/file");
1042 assert_eq!(req.version.unwrap(), 1);
1043 assert_eq!(req.headers.len(), 1);
1044 assert_eq!(req.headers[0].name, "Host");
1045 assert_eq!(req.headers[0].value, b"server");
1052 b"GET /file HTTP/1.1\r\nHost: server\r\n\r\n",
1054 assert_eq!(req.method.unwrap(), "GET");
1055 assert_eq!(req.path.unwrap(), "/file");
1056 assert_eq!(req.version.unwrap(), 1);
1057 assert_eq!(req.headers.len(), 1);
1058 assert_eq!(req.headers[0].name, "Host");
1059 assert_eq!(req.headers[0].value, b"server");
1066 b"GET /foo/bar.txt HTTP/1.1\r\nHost: \r\n\r\n",
1068 assert_eq!(req.method.unwrap(), "GET");
1069 assert_eq!(req.path.unwrap(), "/foo/bar.txt");
1070 assert_eq!(req.version.unwrap(), 1);
1071 assert_eq!(req.headers.len(), 1);
1072 assert_eq!(req.headers[0].name, "Host");
1073 assert_eq!(req.headers[0].value, b"");
1080 b"GET /home/me HTTP/1.1\r\nHost: \r\n\r\n",
1082 assert_eq!(req.method.unwrap(), "GET");
1083 assert_eq!(req.path.unwrap(), "/home/me");
1084 assert_eq!(req.version.unwrap(), 1);
1085 assert_eq!(req.headers.len(), 1);
1086 assert_eq!(req.headers[0].name, "Host");
1087 assert_eq!(req.headers[0].value, b"");
1094 b"GET /test HTTP/1.1\r\nHost: \r\n\r\n",
1096 assert_eq!(req.method.unwrap(), "GET");
1097 assert_eq!(req.path.unwrap(), "/test");
1098 assert_eq!(req.version.unwrap(), 1);
1099 assert_eq!(req.headers.len(), 1);
1100 assert_eq!(req.headers[0].name, "Host");
1101 assert_eq!(req.headers[0].value, b"");
1108 b"GET /test HTTP/1.1\r\nHost: \r\n\r\n",
1110 assert_eq!(req.method.unwrap(), "GET");
1111 assert_eq!(req.path.unwrap(), "/test");
1112 assert_eq!(req.version.unwrap(), 1);
1113 assert_eq!(req.headers.len(), 1);
1114 assert_eq!(req.headers[0].name, "Host");
1115 assert_eq!(req.headers[0].value, b"");
1122 b"GET /tmp/mock/test HTTP/1.1\r\nHost: \r\n\r\n",
1124 assert_eq!(req.method.unwrap(), "GET");
1125 assert_eq!(req.path.unwrap(), "/tmp/mock/test");
1126 assert_eq!(req.version.unwrap(), 1);
1127 assert_eq!(req.headers.len(), 1);
1128 assert_eq!(req.headers[0].name, "Host");
1129 assert_eq!(req.headers[0].value, b"");
1136 b"GET /tmp/mock/test HTTP/1.1\r\nHost: \r\n\r\n",
1138 assert_eq!(req.method.unwrap(), "GET");
1139 assert_eq!(req.path.unwrap(), "/tmp/mock/test");
1140 assert_eq!(req.version.unwrap(), 1);
1141 assert_eq!(req.headers.len(), 1);
1142 assert_eq!(req.headers[0].name, "Host");
1143 assert_eq!(req.headers[0].value, b"");
1150 b"GET /foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
1152 assert_eq!(req.method.unwrap(), "GET");
1153 assert_eq!(req.path.unwrap(), "/foo");
1154 assert_eq!(req.version.unwrap(), 1);
1155 assert_eq!(req.headers.len(), 1);
1156 assert_eq!(req.headers[0].name, "Host");
1157 assert_eq!(req.headers[0].value, b"example.com");
1164 b"GET /.foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
1166 assert_eq!(req.method.unwrap(), "GET");
1167 assert_eq!(req.path.unwrap(), "/.foo");
1168 assert_eq!(req.version.unwrap(), 1);
1169 assert_eq!(req.headers.len(), 1);
1170 assert_eq!(req.headers[0].name, "Host");
1171 assert_eq!(req.headers[0].value, b"example.com");
1178 b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1180 assert_eq!(req.method.unwrap(), "GET");
1181 assert_eq!(req.path.unwrap(), "/foo/");
1182 assert_eq!(req.version.unwrap(), 1);
1183 assert_eq!(req.headers.len(), 1);
1184 assert_eq!(req.headers[0].name, "Host");
1185 assert_eq!(req.headers[0].value, b"example.com");
1192 b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1194 assert_eq!(req.method.unwrap(), "GET");
1195 assert_eq!(req.path.unwrap(), "/foo/");
1196 assert_eq!(req.version.unwrap(), 1);
1197 assert_eq!(req.headers.len(), 1);
1198 assert_eq!(req.headers[0].name, "Host");
1199 assert_eq!(req.headers[0].value, b"example.com");
1206 b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1208 assert_eq!(req.method.unwrap(), "GET");
1209 assert_eq!(req.path.unwrap(), "/foo/");
1210 assert_eq!(req.version.unwrap(), 1);
1211 assert_eq!(req.headers.len(), 1);
1212 assert_eq!(req.headers[0].name, "Host");
1213 assert_eq!(req.headers[0].value, b"example.com");
1220 b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1222 assert_eq!(req.method.unwrap(), "GET");
1223 assert_eq!(req.path.unwrap(), "/foo/");
1224 assert_eq!(req.version.unwrap(), 1);
1225 assert_eq!(req.headers.len(), 1);
1226 assert_eq!(req.headers[0].name, "Host");
1227 assert_eq!(req.headers[0].value, b"example.com");
1234 b"GET /foo/..bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1236 assert_eq!(req.method.unwrap(), "GET");
1237 assert_eq!(req.path.unwrap(), "/foo/..bar");
1238 assert_eq!(req.version.unwrap(), 1);
1239 assert_eq!(req.headers.len(), 1);
1240 assert_eq!(req.headers[0].name, "Host");
1241 assert_eq!(req.headers[0].value, b"example.com");
1248 b"GET /foo/ton HTTP/1.1\r\nHost: example.com\r\n\r\n",
1250 assert_eq!(req.method.unwrap(), "GET");
1251 assert_eq!(req.path.unwrap(), "/foo/ton");
1252 assert_eq!(req.version.unwrap(), 1);
1253 assert_eq!(req.headers.len(), 1);
1254 assert_eq!(req.headers[0].name, "Host");
1255 assert_eq!(req.headers[0].value, b"example.com");
1262 b"GET /a HTTP/1.1\r\nHost: example.com\r\n\r\n",
1264 assert_eq!(req.method.unwrap(), "GET");
1265 assert_eq!(req.path.unwrap(), "/a");
1266 assert_eq!(req.version.unwrap(), 1);
1267 assert_eq!(req.headers.len(), 1);
1268 assert_eq!(req.headers[0].name, "Host");
1269 assert_eq!(req.headers[0].value, b"example.com");
1276 b"GET /ton HTTP/1.1\r\nHost: example.com\r\n\r\n",
1278 assert_eq!(req.method.unwrap(), "GET");
1279 assert_eq!(req.path.unwrap(), "/ton");
1280 assert_eq!(req.version.unwrap(), 1);
1281 assert_eq!(req.headers.len(), 1);
1282 assert_eq!(req.headers[0].name, "Host");
1283 assert_eq!(req.headers[0].value, b"example.com");
1290 b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1292 assert_eq!(req.method.unwrap(), "GET");
1293 assert_eq!(req.path.unwrap(), "/foo/");
1294 assert_eq!(req.version.unwrap(), 1);
1295 assert_eq!(req.headers.len(), 1);
1296 assert_eq!(req.headers[0].name, "Host");
1297 assert_eq!(req.headers[0].value, b"example.com");
1304 b"GET /foo/%2e%2 HTTP/1.1\r\nHost: example.com\r\n\r\n",
1306 assert_eq!(req.method.unwrap(), "GET");
1307 assert_eq!(req.path.unwrap(), "/foo/%2e%2");
1308 assert_eq!(req.version.unwrap(), 1);
1309 assert_eq!(req.headers.len(), 1);
1310 assert_eq!(req.headers[0].name, "Host");
1311 assert_eq!(req.headers[0].value, b"example.com");
1318 b"GET /%2e.bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1320 assert_eq!(req.method.unwrap(), "GET");
1321 assert_eq!(req.path.unwrap(), "/%2e.bar");
1322 assert_eq!(req.version.unwrap(), 1);
1323 assert_eq!(req.headers.len(), 1);
1324 assert_eq!(req.headers[0].name, "Host");
1325 assert_eq!(req.headers[0].value, b"example.com");
1332 b"GET // HTTP/1.1\r\nHost: example.com\r\n\r\n",
1334 assert_eq!(req.method.unwrap(), "GET");
1335 assert_eq!(req.path.unwrap(), "//");
1336 assert_eq!(req.version.unwrap(), 1);
1337 assert_eq!(req.headers.len(), 1);
1338 assert_eq!(req.headers[0].name, "Host");
1339 assert_eq!(req.headers[0].value, b"example.com");
1346 b"GET /foo/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1348 assert_eq!(req.method.unwrap(), "GET");
1349 assert_eq!(req.path.unwrap(), "/foo/");
1350 assert_eq!(req.version.unwrap(), 1);
1351 assert_eq!(req.headers.len(), 1);
1352 assert_eq!(req.headers[0].name, "Host");
1353 assert_eq!(req.headers[0].value, b"example.com");
1360 b"GET /foo/bar/ HTTP/1.1\r\nHost: example.com\r\n\r\n",
1362 assert_eq!(req.method.unwrap(), "GET");
1363 assert_eq!(req.path.unwrap(), "/foo/bar/");
1364 assert_eq!(req.version.unwrap(), 1);
1365 assert_eq!(req.headers.len(), 1);
1366 assert_eq!(req.headers[0].name, "Host");
1367 assert_eq!(req.headers[0].value, b"example.com");
1374 b"GET /foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
1376 assert_eq!(req.method.unwrap(), "GET");
1377 assert_eq!(req.path.unwrap(), "/foo");
1378 assert_eq!(req.version.unwrap(), 1);
1379 assert_eq!(req.headers.len(), 1);
1380 assert_eq!(req.headers[0].name, "Host");
1381 assert_eq!(req.headers[0].value, b"example.com");
1388 b"GET /%20foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
1390 assert_eq!(req.method.unwrap(), "GET");
1391 assert_eq!(req.path.unwrap(), "/%20foo");
1392 assert_eq!(req.version.unwrap(), 1);
1393 assert_eq!(req.headers.len(), 1);
1394 assert_eq!(req.headers[0].name, "Host");
1395 assert_eq!(req.headers[0].value, b"example.com");
1402 b"GET /foo% HTTP/1.1\r\nHost: example.com\r\n\r\n",
1404 assert_eq!(req.method.unwrap(), "GET");
1405 assert_eq!(req.path.unwrap(), "/foo%");
1406 assert_eq!(req.version.unwrap(), 1);
1407 assert_eq!(req.headers.len(), 1);
1408 assert_eq!(req.headers[0].name, "Host");
1409 assert_eq!(req.headers[0].value, b"example.com");
1416 b"GET /foo%2 HTTP/1.1\r\nHost: example.com\r\n\r\n",
1418 assert_eq!(req.method.unwrap(), "GET");
1419 assert_eq!(req.path.unwrap(), "/foo%2");
1420 assert_eq!(req.version.unwrap(), 1);
1421 assert_eq!(req.headers.len(), 1);
1422 assert_eq!(req.headers[0].name, "Host");
1423 assert_eq!(req.headers[0].value, b"example.com");
1430 b"GET /foo%2zbar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1432 assert_eq!(req.method.unwrap(), "GET");
1433 assert_eq!(req.path.unwrap(), "/foo%2zbar");
1434 assert_eq!(req.version.unwrap(), 1);
1435 assert_eq!(req.headers.len(), 1);
1436 assert_eq!(req.headers[0].name, "Host");
1437 assert_eq!(req.headers[0].value, b"example.com");
1444 b"GET /foo%2%C3%82%C2%A9zbar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1446 assert_eq!(req.method.unwrap(), "GET");
1447 assert_eq!(req.path.unwrap(), "/foo%2%C3%82%C2%A9zbar");
1448 assert_eq!(req.version.unwrap(), 1);
1449 assert_eq!(req.headers.len(), 1);
1450 assert_eq!(req.headers[0].name, "Host");
1451 assert_eq!(req.headers[0].value, b"example.com");
1458 b"GET /foo%41%7a HTTP/1.1\r\nHost: example.com\r\n\r\n",
1460 assert_eq!(req.method.unwrap(), "GET");
1461 assert_eq!(req.path.unwrap(), "/foo%41%7a");
1462 assert_eq!(req.version.unwrap(), 1);
1463 assert_eq!(req.headers.len(), 1);
1464 assert_eq!(req.headers[0].name, "Host");
1465 assert_eq!(req.headers[0].value, b"example.com");
1472 b"GET /foo%C2%91%91 HTTP/1.1\r\nHost: example.com\r\n\r\n",
1474 assert_eq!(req.method.unwrap(), "GET");
1475 assert_eq!(req.path.unwrap(), "/foo%C2%91%91");
1476 assert_eq!(req.version.unwrap(), 1);
1477 assert_eq!(req.headers.len(), 1);
1478 assert_eq!(req.headers[0].name, "Host");
1479 assert_eq!(req.headers[0].value, b"example.com");
1486 b"GET /foo%00%51 HTTP/1.1\r\nHost: example.com\r\n\r\n",
1488 assert_eq!(req.method.unwrap(), "GET");
1489 assert_eq!(req.path.unwrap(), "/foo%00%51");
1490 assert_eq!(req.version.unwrap(), 1);
1491 assert_eq!(req.headers.len(), 1);
1492 assert_eq!(req.headers[0].name, "Host");
1493 assert_eq!(req.headers[0].value, b"example.com");
1500 b"GET /(%28:%3A%29) HTTP/1.1\r\nHost: example.com\r\n\r\n",
1502 assert_eq!(req.method.unwrap(), "GET");
1503 assert_eq!(req.path.unwrap(), "/(%28:%3A%29)");
1504 assert_eq!(req.version.unwrap(), 1);
1505 assert_eq!(req.headers.len(), 1);
1506 assert_eq!(req.headers[0].name, "Host");
1507 assert_eq!(req.headers[0].value, b"example.com");
1514 b"GET /%3A%3a%3C%3c HTTP/1.1\r\nHost: example.com\r\n\r\n",
1516 assert_eq!(req.method.unwrap(), "GET");
1517 assert_eq!(req.path.unwrap(), "/%3A%3a%3C%3c");
1518 assert_eq!(req.version.unwrap(), 1);
1519 assert_eq!(req.headers.len(), 1);
1520 assert_eq!(req.headers[0].name, "Host");
1521 assert_eq!(req.headers[0].value, b"example.com");
1528 b"GET /foobar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1530 assert_eq!(req.method.unwrap(), "GET");
1531 assert_eq!(req.path.unwrap(), "/foobar");
1532 assert_eq!(req.version.unwrap(), 1);
1533 assert_eq!(req.headers.len(), 1);
1534 assert_eq!(req.headers[0].name, "Host");
1535 assert_eq!(req.headers[0].value, b"example.com");
1542 b"GET //foo//bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1544 assert_eq!(req.method.unwrap(), "GET");
1545 assert_eq!(req.path.unwrap(), "//foo//bar");
1546 assert_eq!(req.version.unwrap(), 1);
1547 assert_eq!(req.headers.len(), 1);
1548 assert_eq!(req.headers[0].name, "Host");
1549 assert_eq!(req.headers[0].value, b"example.com");
1556 b"GET /%7Ffp3%3Eju%3Dduvgw%3Dd HTTP/1.1\r\nHost: example.com\r\n\r\n",
1558 assert_eq!(req.method.unwrap(), "GET");
1559 assert_eq!(req.path.unwrap(), "/%7Ffp3%3Eju%3Dduvgw%3Dd");
1560 assert_eq!(req.version.unwrap(), 1);
1561 assert_eq!(req.headers.len(), 1);
1562 assert_eq!(req.headers[0].name, "Host");
1563 assert_eq!(req.headers[0].value, b"example.com");
1570 b"GET /@asdf%40 HTTP/1.1\r\nHost: example.com\r\n\r\n",
1572 assert_eq!(req.method.unwrap(), "GET");
1573 assert_eq!(req.path.unwrap(), "/@asdf%40");
1574 assert_eq!(req.version.unwrap(), 1);
1575 assert_eq!(req.headers.len(), 1);
1576 assert_eq!(req.headers[0].name, "Host");
1577 assert_eq!(req.headers[0].value, b"example.com");
1584 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",
1586 assert_eq!(req.method.unwrap(), "GET");
1587 assert_eq!(req.path.unwrap(), "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD");
1588 assert_eq!(req.version.unwrap(), 1);
1589 assert_eq!(req.headers.len(), 1);
1590 assert_eq!(req.headers[0].name, "Host");
1591 assert_eq!(req.headers[0].value, b"example.com");
1598 b"GET /%E2%80%A5/foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
1600 assert_eq!(req.method.unwrap(), "GET");
1601 assert_eq!(req.path.unwrap(), "/%E2%80%A5/foo");
1602 assert_eq!(req.version.unwrap(), 1);
1603 assert_eq!(req.headers.len(), 1);
1604 assert_eq!(req.headers[0].name, "Host");
1605 assert_eq!(req.headers[0].value, b"example.com");
1612 b"GET /%EF%BB%BF/foo HTTP/1.1\r\nHost: example.com\r\n\r\n",
1614 assert_eq!(req.method.unwrap(), "GET");
1615 assert_eq!(req.path.unwrap(), "/%EF%BB%BF/foo");
1616 assert_eq!(req.version.unwrap(), 1);
1617 assert_eq!(req.headers.len(), 1);
1618 assert_eq!(req.headers[0].name, "Host");
1619 assert_eq!(req.headers[0].value, b"example.com");
1626 b"GET /%E2%80%AE/foo/%E2%80%AD/bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
1628 assert_eq!(req.method.unwrap(), "GET");
1629 assert_eq!(req.path.unwrap(), "/%E2%80%AE/foo/%E2%80%AD/bar");
1630 assert_eq!(req.version.unwrap(), 1);
1631 assert_eq!(req.headers.len(), 1);
1632 assert_eq!(req.headers[0].name, "Host");
1633 assert_eq!(req.headers[0].value, b"example.com");
1640 b"GET /foo?bar=baz HTTP/1.1\r\nHost: www.google.com\r\n\r\n",
1642 assert_eq!(req.method.unwrap(), "GET");
1643 assert_eq!(req.path.unwrap(), "/foo?bar=baz");
1644 assert_eq!(req.version.unwrap(), 1);
1645 assert_eq!(req.headers.len(), 1);
1646 assert_eq!(req.headers[0].name, "Host");
1647 assert_eq!(req.headers[0].value, b"www.google.com");
1654 b"GET /foo?bar=baz HTTP/1.1\r\nHost: www.google.com\r\n\r\n",
1656 assert_eq!(req.method.unwrap(), "GET");
1657 assert_eq!(req.path.unwrap(), "/foo?bar=baz");
1658 assert_eq!(req.version.unwrap(), 1);
1659 assert_eq!(req.headers.len(), 1);
1660 assert_eq!(req.headers[0].name, "Host");
1661 assert_eq!(req.headers[0].value, b"www.google.com");
1668 b"GET test HTTP/1.1\r\nHost: \r\n\r\n",
1670 assert_eq!(req.method.unwrap(), "GET");
1671 assert_eq!(req.path.unwrap(), "test");
1672 assert_eq!(req.version.unwrap(), 1);
1673 assert_eq!(req.headers.len(), 1);
1674 assert_eq!(req.headers[0].name, "Host");
1675 assert_eq!(req.headers[0].value, b"");
1682 b"GET /foo%2Ehtml HTTP/1.1\r\nHost: www\r\n\r\n",
1684 assert_eq!(req.method.unwrap(), "GET");
1685 assert_eq!(req.path.unwrap(), "/foo%2Ehtml");
1686 assert_eq!(req.version.unwrap(), 1);
1687 assert_eq!(req.headers.len(), 1);
1688 assert_eq!(req.headers[0].name, "Host");
1689 assert_eq!(req.headers[0].value, b"www");
1696 b"GET /foo/html HTTP/1.1\r\nHost: www\r\n\r\n",
1698 assert_eq!(req.method.unwrap(), "GET");
1699 assert_eq!(req.path.unwrap(), "/foo/html");
1700 assert_eq!(req.version.unwrap(), 1);
1701 assert_eq!(req.headers.len(), 1);
1702 assert_eq!(req.headers[0].name, "Host");
1703 assert_eq!(req.headers[0].value, b"www");
1710 b"GET /foo HTTP/1.1\r\nHost: www.google.com\r\n\r\n",
1712 assert_eq!(req.method.unwrap(), "GET");
1713 assert_eq!(req.path.unwrap(), "/foo");
1714 assert_eq!(req.version.unwrap(), 1);
1715 assert_eq!(req.headers.len(), 1);
1716 assert_eq!(req.headers[0].name, "Host");
1717 assert_eq!(req.headers[0].value, b"www.google.com");
1724 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1726 assert_eq!(req.method.unwrap(), "GET");
1727 assert_eq!(req.path.unwrap(), "/example.com/");
1728 assert_eq!(req.version.unwrap(), 1);
1729 assert_eq!(req.headers.len(), 1);
1730 assert_eq!(req.headers[0].name, "Host");
1731 assert_eq!(req.headers[0].value, b"");
1738 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1740 assert_eq!(req.method.unwrap(), "GET");
1741 assert_eq!(req.path.unwrap(), "/example.com/");
1742 assert_eq!(req.version.unwrap(), 1);
1743 assert_eq!(req.headers.len(), 1);
1744 assert_eq!(req.headers[0].name, "Host");
1745 assert_eq!(req.headers[0].value, b"");
1752 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1754 assert_eq!(req.method.unwrap(), "GET");
1755 assert_eq!(req.path.unwrap(), "/example.com/");
1756 assert_eq!(req.version.unwrap(), 1);
1757 assert_eq!(req.headers.len(), 1);
1758 assert_eq!(req.headers[0].name, "Host");
1759 assert_eq!(req.headers[0].value, b"");
1766 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1768 assert_eq!(req.method.unwrap(), "GET");
1769 assert_eq!(req.path.unwrap(), "/example.com/");
1770 assert_eq!(req.version.unwrap(), 1);
1771 assert_eq!(req.headers.len(), 1);
1772 assert_eq!(req.headers[0].name, "Host");
1773 assert_eq!(req.headers[0].value, b"");
1780 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1782 assert_eq!(req.method.unwrap(), "GET");
1783 assert_eq!(req.path.unwrap(), "/example.com/");
1784 assert_eq!(req.version.unwrap(), 1);
1785 assert_eq!(req.headers.len(), 1);
1786 assert_eq!(req.headers[0].name, "Host");
1787 assert_eq!(req.headers[0].value, b"");
1794 b"GET /example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1796 assert_eq!(req.method.unwrap(), "GET");
1797 assert_eq!(req.path.unwrap(), "/example.com/");
1798 assert_eq!(req.version.unwrap(), 1);
1799 assert_eq!(req.headers.len(), 1);
1800 assert_eq!(req.headers[0].name, "Host");
1801 assert_eq!(req.headers[0].value, b"");
1808 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1810 assert_eq!(req.method.unwrap(), "GET");
1811 assert_eq!(req.path.unwrap(), "example.com/");
1812 assert_eq!(req.version.unwrap(), 1);
1813 assert_eq!(req.headers.len(), 1);
1814 assert_eq!(req.headers[0].name, "Host");
1815 assert_eq!(req.headers[0].value, b"");
1822 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1824 assert_eq!(req.method.unwrap(), "GET");
1825 assert_eq!(req.path.unwrap(), "example.com/");
1826 assert_eq!(req.version.unwrap(), 1);
1827 assert_eq!(req.headers.len(), 1);
1828 assert_eq!(req.headers[0].name, "Host");
1829 assert_eq!(req.headers[0].value, b"");
1836 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1838 assert_eq!(req.method.unwrap(), "GET");
1839 assert_eq!(req.path.unwrap(), "example.com/");
1840 assert_eq!(req.version.unwrap(), 1);
1841 assert_eq!(req.headers.len(), 1);
1842 assert_eq!(req.headers[0].name, "Host");
1843 assert_eq!(req.headers[0].value, b"");
1850 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1852 assert_eq!(req.method.unwrap(), "GET");
1853 assert_eq!(req.path.unwrap(), "example.com/");
1854 assert_eq!(req.version.unwrap(), 1);
1855 assert_eq!(req.headers.len(), 1);
1856 assert_eq!(req.headers[0].name, "Host");
1857 assert_eq!(req.headers[0].value, b"");
1864 b"GET example.com/ HTTP/1.1\r\nHost: \r\n\r\n",
1866 assert_eq!(req.method.unwrap(), "GET");
1867 assert_eq!(req.path.unwrap(), "example.com/");
1868 assert_eq!(req.version.unwrap(), 1);
1869 assert_eq!(req.headers.len(), 1);
1870 assert_eq!(req.headers[0].name, "Host");
1871 assert_eq!(req.headers[0].value, b"");
1878 b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1880 assert_eq!(req.method.unwrap(), "GET");
1881 assert_eq!(req.path.unwrap(), "/test.txt");
1882 assert_eq!(req.version.unwrap(), 1);
1883 assert_eq!(req.headers.len(), 1);
1884 assert_eq!(req.headers[0].name, "Host");
1885 assert_eq!(req.headers[0].value, b"www.example.com");
1892 b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1894 assert_eq!(req.method.unwrap(), "GET");
1895 assert_eq!(req.path.unwrap(), "/test.txt");
1896 assert_eq!(req.version.unwrap(), 1);
1897 assert_eq!(req.headers.len(), 1);
1898 assert_eq!(req.headers[0].name, "Host");
1899 assert_eq!(req.headers[0].value, b"www.example.com");
1906 b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1908 assert_eq!(req.method.unwrap(), "GET");
1909 assert_eq!(req.path.unwrap(), "/test.txt");
1910 assert_eq!(req.version.unwrap(), 1);
1911 assert_eq!(req.headers.len(), 1);
1912 assert_eq!(req.headers[0].name, "Host");
1913 assert_eq!(req.headers[0].value, b"www.example.com");
1920 b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1922 assert_eq!(req.method.unwrap(), "GET");
1923 assert_eq!(req.path.unwrap(), "/test.txt");
1924 assert_eq!(req.version.unwrap(), 1);
1925 assert_eq!(req.headers.len(), 1);
1926 assert_eq!(req.headers[0].name, "Host");
1927 assert_eq!(req.headers[0].value, b"www.example.com");
1934 b"GET /aaa/test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1936 assert_eq!(req.method.unwrap(), "GET");
1937 assert_eq!(req.path.unwrap(), "/aaa/test.txt");
1938 assert_eq!(req.version.unwrap(), 1);
1939 assert_eq!(req.headers.len(), 1);
1940 assert_eq!(req.headers[0].name, "Host");
1941 assert_eq!(req.headers[0].value, b"www.example.com");
1948 b"GET /test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1950 assert_eq!(req.method.unwrap(), "GET");
1951 assert_eq!(req.path.unwrap(), "/test.txt");
1952 assert_eq!(req.version.unwrap(), 1);
1953 assert_eq!(req.headers.len(), 1);
1954 assert_eq!(req.headers[0].name, "Host");
1955 assert_eq!(req.headers[0].value, b"www.example.com");
1962 b"GET /%E4%B8%AD/test.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n",
1964 assert_eq!(req.method.unwrap(), "GET");
1965 assert_eq!(req.path.unwrap(), "/%E4%B8%AD/test.txt");
1966 assert_eq!(req.version.unwrap(), 1);
1967 assert_eq!(req.headers.len(), 1);
1968 assert_eq!(req.headers[0].name, "Host");
1969 assert_eq!(req.headers[0].value, b"www.example.com");
1976 b"GET /... HTTP/1.1\r\nHost: \r\n\r\n",
1978 assert_eq!(req.method.unwrap(), "GET");
1979 assert_eq!(req.path.unwrap(), "/...");
1980 assert_eq!(req.version.unwrap(), 1);
1981 assert_eq!(req.headers.len(), 1);
1982 assert_eq!(req.headers[0].name, "Host");
1983 assert_eq!(req.headers[0].value, b"");
1990 b"GET /a HTTP/1.1\r\nHost: \r\n\r\n",
1992 assert_eq!(req.method.unwrap(), "GET");
1993 assert_eq!(req.path.unwrap(), "/a");
1994 assert_eq!(req.version.unwrap(), 1);
1995 assert_eq!(req.headers.len(), 1);
1996 assert_eq!(req.headers[0].name, "Host");
1997 assert_eq!(req.headers[0].value, b"");
2004 b"GET /%EF%BF%BD?%EF%BF%BD HTTP/1.1\r\nHost: x\r\n\r\n",
2006 assert_eq!(req.method.unwrap(), "GET");
2007 assert_eq!(req.path.unwrap(), "/%EF%BF%BD?%EF%BF%BD");
2008 assert_eq!(req.version.unwrap(), 1);
2009 assert_eq!(req.headers.len(), 1);
2010 assert_eq!(req.headers[0].name, "Host");
2011 assert_eq!(req.headers[0].value, b"x");
2018 b"GET /bar HTTP/1.1\r\nHost: example.com\r\n\r\n",
2020 assert_eq!(req.method.unwrap(), "GET");
2021 assert_eq!(req.path.unwrap(), "/bar");
2022 assert_eq!(req.version.unwrap(), 1);
2023 assert_eq!(req.headers.len(), 1);
2024 assert_eq!(req.headers[0].name, "Host");
2025 assert_eq!(req.headers[0].value, b"example.com");
2032 b"GET test HTTP/1.1\r\nHost: \r\n\r\n",
2034 assert_eq!(req.method.unwrap(), "GET");
2035 assert_eq!(req.path.unwrap(), "test");
2036 assert_eq!(req.version.unwrap(), 1);
2037 assert_eq!(req.headers.len(), 1);
2038 assert_eq!(req.headers[0].name, "Host");
2039 assert_eq!(req.headers[0].value, b"");
2046 b"GET x@x.com HTTP/1.1\r\nHost: \r\n\r\n",
2048 assert_eq!(req.method.unwrap(), "GET");
2049 assert_eq!(req.path.unwrap(), "x@x.com");
2050 assert_eq!(req.version.unwrap(), 1);
2051 assert_eq!(req.headers.len(), 1);
2052 assert_eq!(req.headers[0].name, "Host");
2053 assert_eq!(req.headers[0].value, b"");
2060 b"GET , HTTP/1.1\r\nHost: \r\n\r\n",
2062 assert_eq!(req.method.unwrap(), "GET");
2063 assert_eq!(req.path.unwrap(), ",");
2064 assert_eq!(req.version.unwrap(), 1);
2065 assert_eq!(req.headers.len(), 1);
2066 assert_eq!(req.headers[0].name, "Host");
2067 assert_eq!(req.headers[0].value, b"");
2074 b"GET blank HTTP/1.1\r\nHost: \r\n\r\n",
2076 assert_eq!(req.method.unwrap(), "GET");
2077 assert_eq!(req.path.unwrap(), "blank");
2078 assert_eq!(req.version.unwrap(), 1);
2079 assert_eq!(req.headers.len(), 1);
2080 assert_eq!(req.headers[0].name, "Host");
2081 assert_eq!(req.headers[0].value, b"");
2088 b"GET test?test HTTP/1.1\r\nHost: \r\n\r\n",
2090 assert_eq!(req.method.unwrap(), "GET");
2091 assert_eq!(req.path.unwrap(), "test?test");
2092 assert_eq!(req.version.unwrap(), 1);
2093 assert_eq!(req.headers.len(), 1);
2094 assert_eq!(req.headers[0].name, "Host");
2095 assert_eq!(req.headers[0].value, b"");
2102 b"GET /%60%7B%7D?`{} HTTP/1.1\r\nHost: h\r\n\r\n",
2104 assert_eq!(req.method.unwrap(), "GET");
2105 assert_eq!(req.path.unwrap(), "/%60%7B%7D?`{}");
2106 assert_eq!(req.version.unwrap(), 1);
2107 assert_eq!(req.headers.len(), 1);
2108 assert_eq!(req.headers[0].name, "Host");
2109 assert_eq!(req.headers[0].value, b"h");
2117 b"GET /?%27 HTTP/1.1\r\nHost: host\r\n\r\n",
2119 assert_eq!(req.method.unwrap(), "GET");
2120 assert_eq!(req.path.unwrap(), "/?%27");
2121 assert_eq!(req.version.unwrap(), 1);
2122 assert_eq!(req.headers.len(), 1);
2123 assert_eq!(req.headers[0].name, "Host");
2124 assert_eq!(req.headers[0].value, b"host");
2131 b"GET /?' HTTP/1.1\r\nHost: host\r\n\r\n",
2133 assert_eq!(req.method.unwrap(), "GET");
2134 assert_eq!(req.path.unwrap(), "/?'");
2135 assert_eq!(req.version.unwrap(), 1);
2136 assert_eq!(req.headers.len(), 1);
2137 assert_eq!(req.headers[0].name, "Host");
2138 assert_eq!(req.headers[0].value, b"host");
2145 b"GET /some/path HTTP/1.1\r\nHost: example.org\r\n\r\n",
2147 assert_eq!(req.method.unwrap(), "GET");
2148 assert_eq!(req.path.unwrap(), "/some/path");
2149 assert_eq!(req.version.unwrap(), 1);
2150 assert_eq!(req.headers.len(), 1);
2151 assert_eq!(req.headers[0].name, "Host");
2152 assert_eq!(req.headers[0].value, b"example.org");
2159 b"GET /smth HTTP/1.1\r\nHost: example.org\r\n\r\n",
2161 assert_eq!(req.method.unwrap(), "GET");
2162 assert_eq!(req.path.unwrap(), "/smth");
2163 assert_eq!(req.version.unwrap(), 1);
2164 assert_eq!(req.headers.len(), 1);
2165 assert_eq!(req.headers[0].name, "Host");
2166 assert_eq!(req.headers[0].value, b"example.org");
2173 b"GET /some/path HTTP/1.1\r\nHost: example.org\r\n\r\n",
2175 assert_eq!(req.method.unwrap(), "GET");
2176 assert_eq!(req.path.unwrap(), "/some/path");
2177 assert_eq!(req.version.unwrap(), 1);
2178 assert_eq!(req.headers.len(), 1);
2179 assert_eq!(req.headers[0].name, "Host");
2180 assert_eq!(req.headers[0].value, b"example.org");
2187 b"GET /pa/i HTTP/1.1\r\nHost: \r\n\r\n",
2189 assert_eq!(req.method.unwrap(), "GET");
2190 assert_eq!(req.path.unwrap(), "/pa/i");
2191 assert_eq!(req.version.unwrap(), 1);
2192 assert_eq!(req.headers.len(), 1);
2193 assert_eq!(req.headers[0].name, "Host");
2194 assert_eq!(req.headers[0].value, b"");
2201 b"GET /i HTTP/1.1\r\nHost: ho\r\n\r\n",
2203 assert_eq!(req.method.unwrap(), "GET");
2204 assert_eq!(req.path.unwrap(), "/i");
2205 assert_eq!(req.version.unwrap(), 1);
2206 assert_eq!(req.headers.len(), 1);
2207 assert_eq!(req.headers[0].name, "Host");
2208 assert_eq!(req.headers[0].value, b"ho");
2215 b"GET /pa/i HTTP/1.1\r\nHost: \r\n\r\n",
2217 assert_eq!(req.method.unwrap(), "GET");
2218 assert_eq!(req.path.unwrap(), "/pa/i");
2219 assert_eq!(req.version.unwrap(), 1);
2220 assert_eq!(req.headers.len(), 1);
2221 assert_eq!(req.headers[0].name, "Host");
2222 assert_eq!(req.headers[0].value, b"");
2229 b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
2231 assert_eq!(req.method.unwrap(), "GET");
2232 assert_eq!(req.path.unwrap(), "/i");
2233 assert_eq!(req.version.unwrap(), 1);
2234 assert_eq!(req.headers.len(), 1);
2235 assert_eq!(req.headers[0].name, "Host");
2236 assert_eq!(req.headers[0].value, b"");
2243 b"GET /i HTTP/1.1\r\nHost: ho\r\n\r\n",
2245 assert_eq!(req.method.unwrap(), "GET");
2246 assert_eq!(req.path.unwrap(), "/i");
2247 assert_eq!(req.version.unwrap(), 1);
2248 assert_eq!(req.headers.len(), 1);
2249 assert_eq!(req.headers[0].name, "Host");
2250 assert_eq!(req.headers[0].value, b"ho");
2257 b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
2259 assert_eq!(req.method.unwrap(), "GET");
2260 assert_eq!(req.path.unwrap(), "/i");
2261 assert_eq!(req.version.unwrap(), 1);
2262 assert_eq!(req.headers.len(), 1);
2263 assert_eq!(req.headers[0].name, "Host");
2264 assert_eq!(req.headers[0].value, b"");
2271 b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
2273 assert_eq!(req.method.unwrap(), "GET");
2274 assert_eq!(req.path.unwrap(), "/i");
2275 assert_eq!(req.version.unwrap(), 1);
2276 assert_eq!(req.headers.len(), 1);
2277 assert_eq!(req.headers[0].name, "Host");
2278 assert_eq!(req.headers[0].value, b"");
2285 b"GET /i HTTP/1.1\r\nHost: ho\r\n\r\n",
2287 assert_eq!(req.method.unwrap(), "GET");
2288 assert_eq!(req.path.unwrap(), "/i");
2289 assert_eq!(req.version.unwrap(), 1);
2290 assert_eq!(req.headers.len(), 1);
2291 assert_eq!(req.headers[0].name, "Host");
2292 assert_eq!(req.headers[0].value, b"ho");
2299 b"GET /i HTTP/1.1\r\nHost: \r\n\r\n",
2301 assert_eq!(req.method.unwrap(), "GET");
2302 assert_eq!(req.path.unwrap(), "/i");
2303 assert_eq!(req.version.unwrap(), 1);
2304 assert_eq!(req.headers.len(), 1);
2305 assert_eq!(req.headers[0].name, "Host");
2306 assert_eq!(req.headers[0].value, b"");
2313 b"GET /pa/pa?i HTTP/1.1\r\nHost: \r\n\r\n",
2315 assert_eq!(req.method.unwrap(), "GET");
2316 assert_eq!(req.path.unwrap(), "/pa/pa?i");
2317 assert_eq!(req.version.unwrap(), 1);
2318 assert_eq!(req.headers.len(), 1);
2319 assert_eq!(req.headers[0].name, "Host");
2320 assert_eq!(req.headers[0].value, b"");
2327 b"GET /pa?i HTTP/1.1\r\nHost: ho\r\n\r\n",
2329 assert_eq!(req.method.unwrap(), "GET");
2330 assert_eq!(req.path.unwrap(), "/pa?i");
2331 assert_eq!(req.version.unwrap(), 1);
2332 assert_eq!(req.headers.len(), 1);
2333 assert_eq!(req.headers[0].name, "Host");
2334 assert_eq!(req.headers[0].value, b"ho");
2341 b"GET /pa/pa?i HTTP/1.1\r\nHost: \r\n\r\n",
2343 assert_eq!(req.method.unwrap(), "GET");
2344 assert_eq!(req.path.unwrap(), "/pa/pa?i");
2345 assert_eq!(req.version.unwrap(), 1);
2346 assert_eq!(req.headers.len(), 1);
2347 assert_eq!(req.headers[0].name, "Host");
2348 assert_eq!(req.headers[0].value, b"");
2355 b"GET sd HTTP/1.1\r\nHost: \r\n\r\n",
2357 assert_eq!(req.method.unwrap(), "GET");
2358 assert_eq!(req.path.unwrap(), "sd");
2359 assert_eq!(req.version.unwrap(), 1);
2360 assert_eq!(req.headers.len(), 1);
2361 assert_eq!(req.headers[0].name, "Host");
2362 assert_eq!(req.headers[0].value, b"");
2369 b"GET sd/sd HTTP/1.1\r\nHost: \r\n\r\n",
2371 assert_eq!(req.method.unwrap(), "GET");
2372 assert_eq!(req.path.unwrap(), "sd/sd");
2373 assert_eq!(req.version.unwrap(), 1);
2374 assert_eq!(req.headers.len(), 1);
2375 assert_eq!(req.headers[0].name, "Host");
2376 assert_eq!(req.headers[0].value, b"");
2383 b"GET /pa/pa HTTP/1.1\r\nHost: \r\n\r\n",
2385 assert_eq!(req.method.unwrap(), "GET");
2386 assert_eq!(req.path.unwrap(), "/pa/pa");
2387 assert_eq!(req.version.unwrap(), 1);
2388 assert_eq!(req.headers.len(), 1);
2389 assert_eq!(req.headers[0].name, "Host");
2390 assert_eq!(req.headers[0].value, b"");
2397 b"GET /pa HTTP/1.1\r\nHost: ho\r\n\r\n",
2399 assert_eq!(req.method.unwrap(), "GET");
2400 assert_eq!(req.path.unwrap(), "/pa");
2401 assert_eq!(req.version.unwrap(), 1);
2402 assert_eq!(req.headers.len(), 1);
2403 assert_eq!(req.headers[0].name, "Host");
2404 assert_eq!(req.headers[0].value, b"ho");
2411 b"GET /pa/pa HTTP/1.1\r\nHost: \r\n\r\n",
2413 assert_eq!(req.method.unwrap(), "GET");
2414 assert_eq!(req.path.unwrap(), "/pa/pa");
2415 assert_eq!(req.version.unwrap(), 1);
2416 assert_eq!(req.headers.len(), 1);
2417 assert_eq!(req.headers[0].name, "Host");
2418 assert_eq!(req.headers[0].value, b"");
2425 b"GET /x HTTP/1.1\r\nHost: %C3%B1\r\n\r\n",
2427 assert_eq!(req.method.unwrap(), "GET");
2428 assert_eq!(req.path.unwrap(), "/x");
2429 assert_eq!(req.version.unwrap(), 1);
2430 assert_eq!(req.headers.len(), 1);
2431 assert_eq!(req.headers[0].name, "Host");
2432 assert_eq!(req.headers[0].value, b"%C3%B1");
2439 b"GET \\.\\./ HTTP/1.1\r\n\r\n",
2441 assert_eq!(req.method.unwrap(), "GET");
2442 assert_eq!(req.path.unwrap(), "\\.\\./");
2443 assert_eq!(req.version.unwrap(), 1);
2444 assert_eq!(req.headers.len(), 0);
2451 b"GET :a@example.net HTTP/1.1\r\nHost: \r\n\r\n",
2453 assert_eq!(req.method.unwrap(), "GET");
2454 assert_eq!(req.path.unwrap(), ":a@example.net");
2455 assert_eq!(req.version.unwrap(), 1);
2456 assert_eq!(req.headers.len(), 1);
2457 assert_eq!(req.headers[0].name, "Host");
2458 assert_eq!(req.headers[0].value, b"");
2465 b"GET %NBD HTTP/1.1\r\nHost: \r\n\r\n",
2467 assert_eq!(req.method.unwrap(), "GET");
2468 assert_eq!(req.path.unwrap(), "%NBD");
2469 assert_eq!(req.version.unwrap(), 1);
2470 assert_eq!(req.headers.len(), 1);
2471 assert_eq!(req.headers[0].name, "Host");
2472 assert_eq!(req.headers[0].value, b"");
2479 b"GET %1G HTTP/1.1\r\nHost: \r\n\r\n",
2481 assert_eq!(req.method.unwrap(), "GET");
2482 assert_eq!(req.path.unwrap(), "%1G");
2483 assert_eq!(req.version.unwrap(), 1);
2484 assert_eq!(req.headers.len(), 1);
2485 assert_eq!(req.headers[0].name, "Host");
2486 assert_eq!(req.headers[0].value, b"");
2493 b"GET /relative_import.html HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n",
2495 assert_eq!(req.method.unwrap(), "GET");
2496 assert_eq!(req.path.unwrap(), "/relative_import.html");
2497 assert_eq!(req.version.unwrap(), 1);
2498 assert_eq!(req.headers.len(), 1);
2499 assert_eq!(req.headers[0].name, "Host");
2500 assert_eq!(req.headers[0].value, b"127.0.0.1");
2507 b"GET /?foo=%7B%22abc%22 HTTP/1.1\r\nHost: facebook.com\r\n\r\n",
2509 assert_eq!(req.method.unwrap(), "GET");
2510 assert_eq!(req.path.unwrap(), "/?foo=%7B%22abc%22");
2511 assert_eq!(req.version.unwrap(), 1);
2512 assert_eq!(req.headers.len(), 1);
2513 assert_eq!(req.headers[0].name, "Host");
2514 assert_eq!(req.headers[0].value, b"facebook.com");
2521 b"GET /jqueryui@1.2.3 HTTP/1.1\r\nHost: localhost\r\n\r\n",
2523 assert_eq!(req.method.unwrap(), "GET");
2524 assert_eq!(req.path.unwrap(), "/jqueryui@1.2.3");
2525 assert_eq!(req.version.unwrap(), 1);
2526 assert_eq!(req.headers.len(), 1);
2527 assert_eq!(req.headers[0].name, "Host");
2528 assert_eq!(req.headers[0].value, b"localhost");
2535 b"GET /path?query HTTP/1.1\r\nHost: host\r\n\r\n",
2537 assert_eq!(req.method.unwrap(), "GET");
2538 assert_eq!(req.path.unwrap(), "/path?query");
2539 assert_eq!(req.version.unwrap(), 1);
2540 assert_eq!(req.headers.len(), 1);
2541 assert_eq!(req.headers[0].name, "Host");
2542 assert_eq!(req.headers[0].value, b"host");
2549 b"GET /foo/bar?a=b&c=d HTTP/1.1\r\nHost: example.org\r\n\r\n",
2551 assert_eq!(req.method.unwrap(), "GET");
2552 assert_eq!(req.path.unwrap(), "/foo/bar?a=b&c=d");
2553 assert_eq!(req.version.unwrap(), 1);
2554 assert_eq!(req.headers.len(), 1);
2555 assert_eq!(req.headers[0].name, "Host");
2556 assert_eq!(req.headers[0].value, b"example.org");
2563 b"GET /foo/bar??a=b&c=d HTTP/1.1\r\nHost: example.org\r\n\r\n",
2565 assert_eq!(req.method.unwrap(), "GET");
2566 assert_eq!(req.path.unwrap(), "/foo/bar??a=b&c=d");
2567 assert_eq!(req.version.unwrap(), 1);
2568 assert_eq!(req.headers.len(), 1);
2569 assert_eq!(req.headers[0].name, "Host");
2570 assert_eq!(req.headers[0].value, b"example.org");
2577 b"GET /foo/bar HTTP/1.1\r\nHost: example.org\r\n\r\n",
2579 assert_eq!(req.method.unwrap(), "GET");
2580 assert_eq!(req.path.unwrap(), "/foo/bar");
2581 assert_eq!(req.version.unwrap(), 1);
2582 assert_eq!(req.headers.len(), 1);
2583 assert_eq!(req.headers[0].name, "Host");
2584 assert_eq!(req.headers[0].value, b"example.org");
2591 b"GET /baz?qux HTTP/1.1\r\nHost: foo.bar\r\n\r\n",
2593 assert_eq!(req.method.unwrap(), "GET");
2594 assert_eq!(req.path.unwrap(), "/baz?qux");
2595 assert_eq!(req.version.unwrap(), 1);
2596 assert_eq!(req.headers.len(), 1);
2597 assert_eq!(req.headers[0].name, "Host");
2598 assert_eq!(req.headers[0].value, b"foo.bar");
2605 b"GET /baz?qux HTTP/1.1\r\nHost: foo.bar\r\n\r\n",
2607 assert_eq!(req.method.unwrap(), "GET");
2608 assert_eq!(req.path.unwrap(), "/baz?qux");
2609 assert_eq!(req.version.unwrap(), 1);
2610 assert_eq!(req.headers.len(), 1);
2611 assert_eq!(req.headers[0].name, "Host");
2612 assert_eq!(req.headers[0].value, b"foo.bar");
2619 b"GET /baz?qux HTTP/1.1\r\nHost: foo.bar\r\n\r\n",
2621 assert_eq!(req.method.unwrap(), "GET");
2622 assert_eq!(req.path.unwrap(), "/baz?qux");
2623 assert_eq!(req.version.unwrap(), 1);
2624 assert_eq!(req.headers.len(), 1);
2625 assert_eq!(req.headers[0].name, "Host");
2626 assert_eq!(req.headers[0].value, b"foo.bar");
2633 b"GET /baz?qux HTTP/1.1\r\nHost: foo.bar\r\n\r\n",
2635 assert_eq!(req.method.unwrap(), "GET");
2636 assert_eq!(req.path.unwrap(), "/baz?qux");
2637 assert_eq!(req.version.unwrap(), 1);
2638 assert_eq!(req.headers.len(), 1);
2639 assert_eq!(req.headers[0].name, "Host");
2640 assert_eq!(req.headers[0].value, b"foo.bar");
2647 b"GET /baz?qux HTTP/1.1\r\nHost: foo.bar\r\n\r\n",
2649 assert_eq!(req.method.unwrap(), "GET");
2650 assert_eq!(req.path.unwrap(), "/baz?qux");
2651 assert_eq!(req.version.unwrap(), 1);
2652 assert_eq!(req.headers.len(), 1);
2653 assert_eq!(req.headers[0].name, "Host");
2654 assert_eq!(req.headers[0].value, b"foo.bar");
2661 b"GET /C%3A/ HTTP/1.1\r\nHost: \r\n\r\n",
2663 assert_eq!(req.method.unwrap(), "GET");
2664 assert_eq!(req.path.unwrap(), "/C%3A/");
2665 assert_eq!(req.version.unwrap(), 1);
2666 assert_eq!(req.headers.len(), 1);
2667 assert_eq!(req.headers[0].name, "Host");
2668 assert_eq!(req.headers[0].value, b"");
2675 b"GET /C%7C/ HTTP/1.1\r\nHost: \r\n\r\n",
2677 assert_eq!(req.method.unwrap(), "GET");
2678 assert_eq!(req.path.unwrap(), "/C%7C/");
2679 assert_eq!(req.version.unwrap(), 1);
2680 assert_eq!(req.headers.len(), 1);
2681 assert_eq!(req.headers[0].name, "Host");
2682 assert_eq!(req.headers[0].value, b"");
2689 b"GET /C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif HTTP/1.1\r\nHost: \r\n\r\n",
2691 assert_eq!(req.method.unwrap(), "GET");
2692 assert_eq!(req.path.unwrap(), "/C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif");
2693 assert_eq!(req.version.unwrap(), 1);
2694 assert_eq!(req.headers.len(), 1);
2695 assert_eq!(req.headers[0].name, "Host");
2696 assert_eq!(req.headers[0].value, b"");
2703 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
2705 assert_eq!(req.method.unwrap(), "GET");
2706 assert_eq!(req.path.unwrap(), "/C:/");
2707 assert_eq!(req.version.unwrap(), 1);
2708 assert_eq!(req.headers.len(), 1);
2709 assert_eq!(req.headers[0].name, "Host");
2710 assert_eq!(req.headers[0].value, b"");
2717 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
2719 assert_eq!(req.method.unwrap(), "GET");
2720 assert_eq!(req.path.unwrap(), "/C:/");
2721 assert_eq!(req.version.unwrap(), 1);
2722 assert_eq!(req.headers.len(), 1);
2723 assert_eq!(req.headers[0].name, "Host");
2724 assert_eq!(req.headers[0].value, b"");
2731 b"GET /d: HTTP/1.1\r\nHost: \r\n\r\n",
2733 assert_eq!(req.method.unwrap(), "GET");
2734 assert_eq!(req.path.unwrap(), "/d:");
2735 assert_eq!(req.version.unwrap(), 1);
2736 assert_eq!(req.headers.len(), 1);
2737 assert_eq!(req.headers[0].name, "Host");
2738 assert_eq!(req.headers[0].value, b"");
2745 b"GET /d:/ HTTP/1.1\r\nHost: \r\n\r\n",
2747 assert_eq!(req.method.unwrap(), "GET");
2748 assert_eq!(req.path.unwrap(), "/d:/");
2749 assert_eq!(req.version.unwrap(), 1);
2750 assert_eq!(req.headers.len(), 1);
2751 assert_eq!(req.headers[0].name, "Host");
2752 assert_eq!(req.headers[0].value, b"");
2759 b"GET /test?test HTTP/1.1\r\nHost: \r\n\r\n",
2761 assert_eq!(req.method.unwrap(), "GET");
2762 assert_eq!(req.path.unwrap(), "/test?test");
2763 assert_eq!(req.version.unwrap(), 1);
2764 assert_eq!(req.headers.len(), 1);
2765 assert_eq!(req.headers[0].name, "Host");
2766 assert_eq!(req.headers[0].value, b"");
2773 b"GET /test?test HTTP/1.1\r\nHost: \r\n\r\n",
2775 assert_eq!(req.method.unwrap(), "GET");
2776 assert_eq!(req.path.unwrap(), "/test?test");
2777 assert_eq!(req.version.unwrap(), 1);
2778 assert_eq!(req.headers.len(), 1);
2779 assert_eq!(req.headers[0].name, "Host");
2780 assert_eq!(req.headers[0].value, b"");
2787 b"GET /test?x HTTP/1.1\r\nHost: \r\n\r\n",
2789 assert_eq!(req.method.unwrap(), "GET");
2790 assert_eq!(req.path.unwrap(), "/test?x");
2791 assert_eq!(req.version.unwrap(), 1);
2792 assert_eq!(req.headers.len(), 1);
2793 assert_eq!(req.headers[0].name, "Host");
2794 assert_eq!(req.headers[0].value, b"");
2801 b"GET /test?x HTTP/1.1\r\nHost: \r\n\r\n",
2803 assert_eq!(req.method.unwrap(), "GET");
2804 assert_eq!(req.path.unwrap(), "/test?x");
2805 assert_eq!(req.version.unwrap(), 1);
2806 assert_eq!(req.headers.len(), 1);
2807 assert_eq!(req.headers[0].name, "Host");
2808 assert_eq!(req.headers[0].value, b"");
2815 b"GET /test?test HTTP/1.1\r\nHost: \r\n\r\n",
2817 assert_eq!(req.method.unwrap(), "GET");
2818 assert_eq!(req.path.unwrap(), "/test?test");
2819 assert_eq!(req.version.unwrap(), 1);
2820 assert_eq!(req.headers.len(), 1);
2821 assert_eq!(req.headers[0].name, "Host");
2822 assert_eq!(req.headers[0].value, b"");
2829 b"GET /test?test HTTP/1.1\r\nHost: \r\n\r\n",
2831 assert_eq!(req.method.unwrap(), "GET");
2832 assert_eq!(req.path.unwrap(), "/test?test");
2833 assert_eq!(req.version.unwrap(), 1);
2834 assert_eq!(req.headers.len(), 1);
2835 assert_eq!(req.headers[0].name, "Host");
2836 assert_eq!(req.headers[0].value, b"");
2843 b"GET /?fox HTTP/1.1\r\nHost: \r\n\r\n",
2845 assert_eq!(req.method.unwrap(), "GET");
2846 assert_eq!(req.path.unwrap(), "/?fox");
2847 assert_eq!(req.version.unwrap(), 1);
2848 assert_eq!(req.headers.len(), 1);
2849 assert_eq!(req.headers[0].name, "Host");
2850 assert_eq!(req.headers[0].value, b"");
2857 b"GET /localhost//cat HTTP/1.1\r\nHost: \r\n\r\n",
2859 assert_eq!(req.method.unwrap(), "GET");
2860 assert_eq!(req.path.unwrap(), "/localhost//cat");
2861 assert_eq!(req.version.unwrap(), 1);
2862 assert_eq!(req.headers.len(), 1);
2863 assert_eq!(req.headers[0].name, "Host");
2864 assert_eq!(req.headers[0].value, b"");
2871 b"GET /localhost//cat HTTP/1.1\r\nHost: \r\n\r\n",
2873 assert_eq!(req.method.unwrap(), "GET");
2874 assert_eq!(req.path.unwrap(), "/localhost//cat");
2875 assert_eq!(req.version.unwrap(), 1);
2876 assert_eq!(req.headers.len(), 1);
2877 assert_eq!(req.headers[0].name, "Host");
2878 assert_eq!(req.headers[0].value, b"");
2885 b"GET /mouse HTTP/1.1\r\nHost: \r\n\r\n",
2887 assert_eq!(req.method.unwrap(), "GET");
2888 assert_eq!(req.path.unwrap(), "/mouse");
2889 assert_eq!(req.version.unwrap(), 1);
2890 assert_eq!(req.headers.len(), 1);
2891 assert_eq!(req.headers[0].name, "Host");
2892 assert_eq!(req.headers[0].value, b"");
2899 b"GET /pig HTTP/1.1\r\nHost: \r\n\r\n",
2901 assert_eq!(req.method.unwrap(), "GET");
2902 assert_eq!(req.path.unwrap(), "/pig");
2903 assert_eq!(req.version.unwrap(), 1);
2904 assert_eq!(req.headers.len(), 1);
2905 assert_eq!(req.headers[0].name, "Host");
2906 assert_eq!(req.headers[0].value, b"");
2913 b"GET /pig HTTP/1.1\r\nHost: \r\n\r\n",
2915 assert_eq!(req.method.unwrap(), "GET");
2916 assert_eq!(req.path.unwrap(), "/pig");
2917 assert_eq!(req.version.unwrap(), 1);
2918 assert_eq!(req.headers.len(), 1);
2919 assert_eq!(req.headers[0].name, "Host");
2920 assert_eq!(req.headers[0].value, b"");
2927 b"GET /pig HTTP/1.1\r\nHost: \r\n\r\n",
2929 assert_eq!(req.method.unwrap(), "GET");
2930 assert_eq!(req.path.unwrap(), "/pig");
2931 assert_eq!(req.version.unwrap(), 1);
2932 assert_eq!(req.headers.len(), 1);
2933 assert_eq!(req.headers[0].name, "Host");
2934 assert_eq!(req.headers[0].value, b"");
2941 b"GET /localhost//pig HTTP/1.1\r\nHost: lion\r\n\r\n",
2943 assert_eq!(req.method.unwrap(), "GET");
2944 assert_eq!(req.path.unwrap(), "/localhost//pig");
2945 assert_eq!(req.version.unwrap(), 1);
2946 assert_eq!(req.headers.len(), 1);
2947 assert_eq!(req.headers[0].name, "Host");
2948 assert_eq!(req.headers[0].value, b"lion");
2955 b"GET /rooibos HTTP/1.1\r\nHost: tea\r\n\r\n",
2957 assert_eq!(req.method.unwrap(), "GET");
2958 assert_eq!(req.path.unwrap(), "/rooibos");
2959 assert_eq!(req.version.unwrap(), 1);
2960 assert_eq!(req.headers.len(), 1);
2961 assert_eq!(req.headers[0].name, "Host");
2962 assert_eq!(req.headers[0].value, b"tea");
2969 b"GET /?chai HTTP/1.1\r\nHost: tea\r\n\r\n",
2971 assert_eq!(req.method.unwrap(), "GET");
2972 assert_eq!(req.path.unwrap(), "/?chai");
2973 assert_eq!(req.version.unwrap(), 1);
2974 assert_eq!(req.headers.len(), 1);
2975 assert_eq!(req.headers[0].name, "Host");
2976 assert_eq!(req.headers[0].value, b"tea");
2983 b"GET /C: HTTP/1.1\r\nHost: \r\n\r\n",
2985 assert_eq!(req.method.unwrap(), "GET");
2986 assert_eq!(req.path.unwrap(), "/C:");
2987 assert_eq!(req.version.unwrap(), 1);
2988 assert_eq!(req.headers.len(), 1);
2989 assert_eq!(req.headers[0].name, "Host");
2990 assert_eq!(req.headers[0].value, b"");
2997 b"GET /C: HTTP/1.1\r\nHost: \r\n\r\n",
2999 assert_eq!(req.method.unwrap(), "GET");
3000 assert_eq!(req.path.unwrap(), "/C:");
3001 assert_eq!(req.version.unwrap(), 1);
3002 assert_eq!(req.headers.len(), 1);
3003 assert_eq!(req.headers[0].name, "Host");
3004 assert_eq!(req.headers[0].value, b"");
3011 b"GET /C: HTTP/1.1\r\nHost: \r\n\r\n",
3013 assert_eq!(req.method.unwrap(), "GET");
3014 assert_eq!(req.path.unwrap(), "/C:");
3015 assert_eq!(req.version.unwrap(), 1);
3016 assert_eq!(req.headers.len(), 1);
3017 assert_eq!(req.headers[0].name, "Host");
3018 assert_eq!(req.headers[0].value, b"");
3025 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3027 assert_eq!(req.method.unwrap(), "GET");
3028 assert_eq!(req.path.unwrap(), "/C:/");
3029 assert_eq!(req.version.unwrap(), 1);
3030 assert_eq!(req.headers.len(), 1);
3031 assert_eq!(req.headers[0].name, "Host");
3032 assert_eq!(req.headers[0].value, b"");
3039 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3041 assert_eq!(req.method.unwrap(), "GET");
3042 assert_eq!(req.path.unwrap(), "/C:/");
3043 assert_eq!(req.version.unwrap(), 1);
3044 assert_eq!(req.headers.len(), 1);
3045 assert_eq!(req.headers[0].name, "Host");
3046 assert_eq!(req.headers[0].value, b"");
3053 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3055 assert_eq!(req.method.unwrap(), "GET");
3056 assert_eq!(req.path.unwrap(), "/C:/");
3057 assert_eq!(req.version.unwrap(), 1);
3058 assert_eq!(req.headers.len(), 1);
3059 assert_eq!(req.headers[0].name, "Host");
3060 assert_eq!(req.headers[0].value, b"");
3067 b"GET /dir/C HTTP/1.1\r\nHost: host\r\n\r\n",
3069 assert_eq!(req.method.unwrap(), "GET");
3070 assert_eq!(req.path.unwrap(), "/dir/C");
3071 assert_eq!(req.version.unwrap(), 1);
3072 assert_eq!(req.headers.len(), 1);
3073 assert_eq!(req.headers[0].name, "Host");
3074 assert_eq!(req.headers[0].value, b"host");
3081 b"GET /dir/C|a HTTP/1.1\r\nHost: host\r\n\r\n",
3083 assert_eq!(req.method.unwrap(), "GET");
3084 assert_eq!(req.path.unwrap(), "/dir/C|a");
3085 assert_eq!(req.version.unwrap(), 1);
3086 assert_eq!(req.headers.len(), 1);
3087 assert_eq!(req.headers[0].name, "Host");
3088 assert_eq!(req.headers[0].value, b"host");
3095 b"GET /c:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
3097 assert_eq!(req.method.unwrap(), "GET");
3098 assert_eq!(req.path.unwrap(), "/c:/foo/bar");
3099 assert_eq!(req.version.unwrap(), 1);
3100 assert_eq!(req.headers.len(), 1);
3101 assert_eq!(req.headers[0].name, "Host");
3102 assert_eq!(req.headers[0].value, b"");
3109 b"GET /c:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
3111 assert_eq!(req.method.unwrap(), "GET");
3112 assert_eq!(req.path.unwrap(), "/c:/foo/bar");
3113 assert_eq!(req.version.unwrap(), 1);
3114 assert_eq!(req.headers.len(), 1);
3115 assert_eq!(req.headers[0].name, "Host");
3116 assert_eq!(req.headers[0].value, b"");
3123 b"GET /c:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
3125 assert_eq!(req.method.unwrap(), "GET");
3126 assert_eq!(req.path.unwrap(), "/c:/foo/bar");
3127 assert_eq!(req.version.unwrap(), 1);
3128 assert_eq!(req.headers.len(), 1);
3129 assert_eq!(req.headers[0].name, "Host");
3130 assert_eq!(req.headers[0].value, b"");
3137 b"GET /c:/foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
3139 assert_eq!(req.method.unwrap(), "GET");
3140 assert_eq!(req.path.unwrap(), "/c:/foo/bar");
3141 assert_eq!(req.version.unwrap(), 1);
3142 assert_eq!(req.headers.len(), 1);
3143 assert_eq!(req.headers[0].name, "Host");
3144 assert_eq!(req.headers[0].value, b"");
3151 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3153 assert_eq!(req.method.unwrap(), "GET");
3154 assert_eq!(req.path.unwrap(), "/C:/");
3155 assert_eq!(req.version.unwrap(), 1);
3156 assert_eq!(req.headers.len(), 1);
3157 assert_eq!(req.headers[0].name, "Host");
3158 assert_eq!(req.headers[0].value, b"");
3165 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3167 assert_eq!(req.method.unwrap(), "GET");
3168 assert_eq!(req.path.unwrap(), "/C:/");
3169 assert_eq!(req.version.unwrap(), 1);
3170 assert_eq!(req.headers.len(), 1);
3171 assert_eq!(req.headers[0].name, "Host");
3172 assert_eq!(req.headers[0].value, b"");
3179 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3181 assert_eq!(req.method.unwrap(), "GET");
3182 assert_eq!(req.path.unwrap(), "/C:/");
3183 assert_eq!(req.version.unwrap(), 1);
3184 assert_eq!(req.headers.len(), 1);
3185 assert_eq!(req.headers[0].name, "Host");
3186 assert_eq!(req.headers[0].value, b"");
3193 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3195 assert_eq!(req.method.unwrap(), "GET");
3196 assert_eq!(req.path.unwrap(), "/C:/");
3197 assert_eq!(req.version.unwrap(), 1);
3198 assert_eq!(req.headers.len(), 1);
3199 assert_eq!(req.headers[0].name, "Host");
3200 assert_eq!(req.headers[0].value, b"");
3207 b"GET /C:/ HTTP/1.1\r\nHost: \r\n\r\n",
3209 assert_eq!(req.method.unwrap(), "GET");
3210 assert_eq!(req.path.unwrap(), "/C:/");
3211 assert_eq!(req.version.unwrap(), 1);
3212 assert_eq!(req.headers.len(), 1);
3213 assert_eq!(req.headers[0].name, "Host");
3214 assert_eq!(req.headers[0].value, b"");
3221 b"GET /?q=v HTTP/1.1\r\nHost: \r\n\r\n",
3223 assert_eq!(req.method.unwrap(), "GET");
3224 assert_eq!(req.path.unwrap(), "/?q=v");
3225 assert_eq!(req.version.unwrap(), 1);
3226 assert_eq!(req.headers.len(), 1);
3227 assert_eq!(req.headers[0].name, "Host");
3228 assert_eq!(req.headers[0].value, b"");
3235 b"GET ?x HTTP/1.1\r\nHost: %C3%B1\r\n\r\n",
3237 assert_eq!(req.method.unwrap(), "GET");
3238 assert_eq!(req.path.unwrap(), "?x");
3239 assert_eq!(req.version.unwrap(), 1);
3240 assert_eq!(req.headers.len(), 1);
3241 assert_eq!(req.headers[0].name, "Host");
3242 assert_eq!(req.headers[0].value, b"%C3%B1");
3249 b"GET ?x HTTP/1.1\r\nHost: %C3%B1\r\n\r\n",
3251 assert_eq!(req.method.unwrap(), "GET");
3252 assert_eq!(req.path.unwrap(), "?x");
3253 assert_eq!(req.version.unwrap(), 1);
3254 assert_eq!(req.headers.len(), 1);
3255 assert_eq!(req.headers[0].name, "Host");
3256 assert_eq!(req.headers[0].value, b"%C3%B1");
3263 b"GET // HTTP/1.1\r\nHost: \r\n\r\n",
3265 assert_eq!(req.method.unwrap(), "GET");
3266 assert_eq!(req.path.unwrap(), "//");
3267 assert_eq!(req.version.unwrap(), 1);
3268 assert_eq!(req.headers.len(), 1);
3269 assert_eq!(req.headers[0].name, "Host");
3270 assert_eq!(req.headers[0].value, b"");
3277 b"GET //x/ HTTP/1.1\r\nHost: \r\n\r\n",
3279 assert_eq!(req.method.unwrap(), "GET");
3280 assert_eq!(req.path.unwrap(), "//x/");
3281 assert_eq!(req.version.unwrap(), 1);
3282 assert_eq!(req.headers.len(), 1);
3283 assert_eq!(req.headers[0].name, "Host");
3284 assert_eq!(req.headers[0].value, b"");
3291 b"GET /someconfig;mode=netascii HTTP/1.1\r\nHost: foobar.com\r\n\r\n",
3293 assert_eq!(req.method.unwrap(), "GET");
3294 assert_eq!(req.path.unwrap(), "/someconfig;mode=netascii");
3295 assert_eq!(req.version.unwrap(), 1);
3296 assert_eq!(req.headers.len(), 1);
3297 assert_eq!(req.headers[0].name, "Host");
3298 assert_eq!(req.headers[0].value, b"foobar.com");
3305 b"GET /Index.ut2 HTTP/1.1\r\nHost: 10.10.10.10\r\n\r\n",
3307 assert_eq!(req.method.unwrap(), "GET");
3308 assert_eq!(req.path.unwrap(), "/Index.ut2");
3309 assert_eq!(req.version.unwrap(), 1);
3310 assert_eq!(req.headers.len(), 1);
3311 assert_eq!(req.headers[0].name, "Host");
3312 assert_eq!(req.headers[0].value, b"10.10.10.10");
3319 b"GET /0?baz=bam&qux=baz HTTP/1.1\r\nHost: somehost\r\n\r\n",
3321 assert_eq!(req.method.unwrap(), "GET");
3322 assert_eq!(req.path.unwrap(), "/0?baz=bam&qux=baz");
3323 assert_eq!(req.version.unwrap(), 1);
3324 assert_eq!(req.headers.len(), 1);
3325 assert_eq!(req.headers[0].name, "Host");
3326 assert_eq!(req.headers[0].value, b"somehost");
3333 b"GET /sup HTTP/1.1\r\nHost: host\r\n\r\n",
3335 assert_eq!(req.method.unwrap(), "GET");
3336 assert_eq!(req.path.unwrap(), "/sup");
3337 assert_eq!(req.version.unwrap(), 1);
3338 assert_eq!(req.headers.len(), 1);
3339 assert_eq!(req.headers[0].name, "Host");
3340 assert_eq!(req.headers[0].value, b"host");
3347 b"GET /foo/bar.git HTTP/1.1\r\nHost: github.com\r\n\r\n",
3349 assert_eq!(req.method.unwrap(), "GET");
3350 assert_eq!(req.path.unwrap(), "/foo/bar.git");
3351 assert_eq!(req.version.unwrap(), 1);
3352 assert_eq!(req.headers.len(), 1);
3353 assert_eq!(req.headers[0].name, "Host");
3354 assert_eq!(req.headers[0].value, b"github.com");
3361 b"GET /channel?passwd HTTP/1.1\r\nHost: myserver.com\r\n\r\n",
3363 assert_eq!(req.method.unwrap(), "GET");
3364 assert_eq!(req.path.unwrap(), "/channel?passwd");
3365 assert_eq!(req.version.unwrap(), 1);
3366 assert_eq!(req.headers.len(), 1);
3367 assert_eq!(req.headers[0].name, "Host");
3368 assert_eq!(req.headers[0].value, b"myserver.com");
3375 b"GET /foo.bar.org?type=TXT HTTP/1.1\r\nHost: fw.example.org\r\n\r\n",
3377 assert_eq!(req.method.unwrap(), "GET");
3378 assert_eq!(req.path.unwrap(), "/foo.bar.org?type=TXT");
3379 assert_eq!(req.version.unwrap(), 1);
3380 assert_eq!(req.headers.len(), 1);
3381 assert_eq!(req.headers[0].name, "Host");
3382 assert_eq!(req.headers[0].value, b"fw.example.org");
3389 b"GET /ou=People,o=JNDITutorial HTTP/1.1\r\nHost: localhost\r\n\r\n",
3391 assert_eq!(req.method.unwrap(), "GET");
3392 assert_eq!(req.path.unwrap(), "/ou=People,o=JNDITutorial");
3393 assert_eq!(req.version.unwrap(), 1);
3394 assert_eq!(req.headers.len(), 1);
3395 assert_eq!(req.headers[0].name, "Host");
3396 assert_eq!(req.headers[0].value, b"localhost");
3403 b"GET /foo/bar HTTP/1.1\r\nHost: github.com\r\n\r\n",
3405 assert_eq!(req.method.unwrap(), "GET");
3406 assert_eq!(req.path.unwrap(), "/foo/bar");
3407 assert_eq!(req.version.unwrap(), 1);
3408 assert_eq!(req.headers.len(), 1);
3409 assert_eq!(req.headers[0].name, "Host");
3410 assert_eq!(req.headers[0].value, b"github.com");
3417 b"GET ietf:rfc:2648 HTTP/1.1\r\nHost: \r\n\r\n",
3419 assert_eq!(req.method.unwrap(), "GET");
3420 assert_eq!(req.path.unwrap(), "ietf:rfc:2648");
3421 assert_eq!(req.version.unwrap(), 1);
3422 assert_eq!(req.headers.len(), 1);
3423 assert_eq!(req.headers[0].name, "Host");
3424 assert_eq!(req.headers[0].value, b"");
3431 b"GET joe@example.org,2001:foo/bar HTTP/1.1\r\nHost: \r\n\r\n",
3433 assert_eq!(req.method.unwrap(), "GET");
3434 assert_eq!(req.path.unwrap(), "joe@example.org,2001:foo/bar");
3435 assert_eq!(req.version.unwrap(), 1);
3436 assert_eq!(req.headers.len(), 1);
3437 assert_eq!(req.headers[0].name, "Host");
3438 assert_eq!(req.headers[0].value, b"");
3445 b"GET /path HTTP/1.1\r\nHost: H%4fSt\r\n\r\n",
3447 assert_eq!(req.method.unwrap(), "GET");
3448 assert_eq!(req.path.unwrap(), "/path");
3449 assert_eq!(req.version.unwrap(), 1);
3450 assert_eq!(req.headers.len(), 1);
3451 assert_eq!(req.headers[0].name, "Host");
3452 assert_eq!(req.headers[0].value, b"H%4fSt");
3459 b"GET https://example.com:443/ HTTP/1.1\r\nHost: \r\n\r\n",
3461 assert_eq!(req.method.unwrap(), "GET");
3462 assert_eq!(req.path.unwrap(), "https://example.com:443/");
3463 assert_eq!(req.version.unwrap(), 1);
3464 assert_eq!(req.headers.len(), 1);
3465 assert_eq!(req.headers[0].name, "Host");
3466 assert_eq!(req.headers[0].value, b"");
3473 b"GET d3958f5c-0777-0845-9dcf-2cb28783acaf HTTP/1.1\r\nHost: \r\n\r\n",
3475 assert_eq!(req.method.unwrap(), "GET");
3476 assert_eq!(req.path.unwrap(), "d3958f5c-0777-0845-9dcf-2cb28783acaf");
3477 assert_eq!(req.version.unwrap(), 1);
3478 assert_eq!(req.headers.len(), 1);
3479 assert_eq!(req.headers[0].name, "Host");
3480 assert_eq!(req.headers[0].value, b"");
3487 b"GET /test?%22 HTTP/1.1\r\nHost: example.org\r\n\r\n",
3489 assert_eq!(req.method.unwrap(), "GET");
3490 assert_eq!(req.path.unwrap(), "/test?%22");
3491 assert_eq!(req.version.unwrap(), 1);
3492 assert_eq!(req.headers.len(), 1);
3493 assert_eq!(req.headers[0].name, "Host");
3494 assert_eq!(req.headers[0].value, b"example.org");
3501 b"GET /test HTTP/1.1\r\nHost: example.org\r\n\r\n",
3503 assert_eq!(req.method.unwrap(), "GET");
3504 assert_eq!(req.path.unwrap(), "/test");
3505 assert_eq!(req.version.unwrap(), 1);
3506 assert_eq!(req.headers.len(), 1);
3507 assert_eq!(req.headers[0].name, "Host");
3508 assert_eq!(req.headers[0].value, b"example.org");
3515 b"GET /test?%3C HTTP/1.1\r\nHost: example.org\r\n\r\n",
3517 assert_eq!(req.method.unwrap(), "GET");
3518 assert_eq!(req.path.unwrap(), "/test?%3C");
3519 assert_eq!(req.version.unwrap(), 1);
3520 assert_eq!(req.headers.len(), 1);
3521 assert_eq!(req.headers[0].name, "Host");
3522 assert_eq!(req.headers[0].value, b"example.org");
3529 b"GET /test?%3E HTTP/1.1\r\nHost: example.org\r\n\r\n",
3531 assert_eq!(req.method.unwrap(), "GET");
3532 assert_eq!(req.path.unwrap(), "/test?%3E");
3533 assert_eq!(req.version.unwrap(), 1);
3534 assert_eq!(req.headers.len(), 1);
3535 assert_eq!(req.headers[0].name, "Host");
3536 assert_eq!(req.headers[0].value, b"example.org");
3543 b"GET /test?%E2%8C%A3 HTTP/1.1\r\nHost: example.org\r\n\r\n",
3545 assert_eq!(req.method.unwrap(), "GET");
3546 assert_eq!(req.path.unwrap(), "/test?%E2%8C%A3");
3547 assert_eq!(req.version.unwrap(), 1);
3548 assert_eq!(req.headers.len(), 1);
3549 assert_eq!(req.headers[0].name, "Host");
3550 assert_eq!(req.headers[0].value, b"example.org");
3557 b"GET /test?%23%23 HTTP/1.1\r\nHost: example.org\r\n\r\n",
3559 assert_eq!(req.method.unwrap(), "GET");
3560 assert_eq!(req.path.unwrap(), "/test?%23%23");
3561 assert_eq!(req.version.unwrap(), 1);
3562 assert_eq!(req.headers.len(), 1);
3563 assert_eq!(req.headers[0].name, "Host");
3564 assert_eq!(req.headers[0].value, b"example.org");
3571 b"GET /test?%GH HTTP/1.1\r\nHost: example.org\r\n\r\n",
3573 assert_eq!(req.method.unwrap(), "GET");
3574 assert_eq!(req.path.unwrap(), "/test?%GH");
3575 assert_eq!(req.version.unwrap(), 1);
3576 assert_eq!(req.headers.len(), 1);
3577 assert_eq!(req.headers[0].name, "Host");
3578 assert_eq!(req.headers[0].value, b"example.org");
3585 b"GET /test?a HTTP/1.1\r\nHost: example.org\r\n\r\n",
3587 assert_eq!(req.method.unwrap(), "GET");
3588 assert_eq!(req.path.unwrap(), "/test?a");
3589 assert_eq!(req.version.unwrap(), 1);
3590 assert_eq!(req.headers.len(), 1);
3591 assert_eq!(req.headers[0].name, "Host");
3592 assert_eq!(req.headers[0].value, b"example.org");
3599 b"GET /test?a HTTP/1.1\r\nHost: example.org\r\n\r\n",
3601 assert_eq!(req.method.unwrap(), "GET");
3602 assert_eq!(req.path.unwrap(), "/test?a");
3603 assert_eq!(req.version.unwrap(), 1);
3604 assert_eq!(req.headers.len(), 1);
3605 assert_eq!(req.headers[0].name, "Host");
3606 assert_eq!(req.headers[0].value, b"example.org");
3613 b"GET /test-a-colon-slash.html HTTP/1.1\r\nHost: \r\n\r\n",
3615 assert_eq!(req.method.unwrap(), "GET");
3616 assert_eq!(req.path.unwrap(), "/test-a-colon-slash.html");
3617 assert_eq!(req.version.unwrap(), 1);
3618 assert_eq!(req.headers.len(), 1);
3619 assert_eq!(req.headers[0].name, "Host");
3620 assert_eq!(req.headers[0].value, b"");
3627 b"GET /test-a-colon-slash-slash.html HTTP/1.1\r\nHost: \r\n\r\n",
3629 assert_eq!(req.method.unwrap(), "GET");
3630 assert_eq!(req.path.unwrap(), "/test-a-colon-slash-slash.html");
3631 assert_eq!(req.version.unwrap(), 1);
3632 assert_eq!(req.headers.len(), 1);
3633 assert_eq!(req.headers[0].name, "Host");
3634 assert_eq!(req.headers[0].value, b"");
3641 b"GET /test-a-colon-slash-b.html HTTP/1.1\r\nHost: \r\n\r\n",
3643 assert_eq!(req.method.unwrap(), "GET");
3644 assert_eq!(req.path.unwrap(), "/test-a-colon-slash-b.html");
3645 assert_eq!(req.version.unwrap(), 1);
3646 assert_eq!(req.headers.len(), 1);
3647 assert_eq!(req.headers[0].name, "Host");
3648 assert_eq!(req.headers[0].value, b"");
3655 b"GET /test-a-colon-slash-slash-b.html HTTP/1.1\r\nHost: b\r\n\r\n",
3657 assert_eq!(req.method.unwrap(), "GET");
3658 assert_eq!(req.path.unwrap(), "/test-a-colon-slash-slash-b.html");
3659 assert_eq!(req.version.unwrap(), 1);
3660 assert_eq!(req.headers.len(), 1);
3661 assert_eq!(req.headers[0].name, "Host");
3662 assert_eq!(req.headers[0].value, b"b");
3669 b"GET /test?a HTTP/1.1\r\nHost: example.org\r\n\r\n",
3671 assert_eq!(req.method.unwrap(), "GET");
3672 assert_eq!(req.path.unwrap(), "/test?a");
3673 assert_eq!(req.version.unwrap(), 1);
3674 assert_eq!(req.headers.len(), 1);
3675 assert_eq!(req.headers[0].name, "Host");
3676 assert_eq!(req.headers[0].value, b"example.org");
3683 b"GET /nvidia_web_services/controller.gfeclientcontent.php/com.nvidia.services.GFEClientContent.getShieldReady/{\"gcV\":\"2.2.2.0\",\"dID\":\"1341\",\"osC\":\"6.20\",\"is6\":\"1\",\"lg\":\"1033\",\"GFPV\":\"389.08\",\"isO\":\"1\",\"sM\":\"16777216\"} HTTP/1.0\r\nHost: gfwsl.geforce.com\r\n\r\n",
3685 assert_eq!(req.method.unwrap(), "GET");
3686 assert_eq!(req.path.unwrap(), "/nvidia_web_services/controller.gfeclientcontent.php/com.nvidia.services.GFEClientContent.getShieldReady/{\"gcV\":\"2.2.2.0\",\"dID\":\"1341\",\"osC\":\"6.20\",\"is6\":\"1\",\"lg\":\"1033\",\"GFPV\":\"389.08\",\"isO\":\"1\",\"sM\":\"16777216\"}");
3687 assert_eq!(req.version.unwrap(), 0);
3688 assert_eq!(req.headers.len(), 1);
3689 assert_eq!(req.headers[0].name, "Host");
3690 assert_eq!(req.headers[0].value, b"gfwsl.geforce.com");