feat(server): Handle 100-continue

cc #838
This commit is contained in:
Steven Fackler
2017-06-24 22:44:02 -07:00
parent 7d9dfee8ce
commit 6164e76405
4 changed files with 118 additions and 20 deletions

View File

@@ -523,3 +523,33 @@ fn test_server_disable_keep_alive() {
}
}
}
#[test]
fn expect_continue() {
let server = serve();
let mut req = connect(server.addr());
server.reply().status(hyper::Ok);
req.write_all(b"\
POST /foo HTTP/1.1\r\n\
Host: example.domain\r\n\
Expect: 100-continue\r\n\
Content-Length: 5\r\n\
Connection: Close\r\n\
\r\n\
").expect("write 1");
let msg = b"HTTP/1.1 100 Continue\r\n\r\n";
let mut buf = vec![0; msg.len()];
req.read_exact(&mut buf).expect("read 1");
assert_eq!(buf, msg);
let msg = b"hello";
req.write_all(msg).expect("write 2");
let mut body = String::new();
req.read_to_string(&mut body).expect("read 2");
let body = server.body();
assert_eq!(body, msg);
}