wip
This commit is contained in:
@@ -16,6 +16,7 @@ ordermap = "0.2.10"
|
|||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
mock-io = { git = "https://github.com/carllerche/mock-io" }
|
mock-io = { git = "https://github.com/carllerche/mock-io" }
|
||||||
|
test_futures = "0.0.1"
|
||||||
|
|
||||||
# Fuzzing
|
# Fuzzing
|
||||||
quickcheck = "0.4.1"
|
quickcheck = "0.4.1"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ extern crate futures;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
extern crate mock_io;
|
extern crate mock_io;
|
||||||
|
extern crate test_futures;
|
||||||
|
|
||||||
// scoped so `cargo test client_request` dtrt.
|
// scoped so `cargo test client_request` dtrt.
|
||||||
mod client_request {
|
mod client_request {
|
||||||
@@ -15,6 +16,7 @@ mod client_request {
|
|||||||
use futures::*;
|
use futures::*;
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use mock_io;
|
use mock_io;
|
||||||
|
use test_futures::*;
|
||||||
|
|
||||||
// TODO: move into another file
|
// TODO: move into another file
|
||||||
macro_rules! assert_user_err {
|
macro_rules! assert_user_err {
|
||||||
@@ -48,12 +50,12 @@ mod client_request {
|
|||||||
.write(SETTINGS_ACK)
|
.write(SETTINGS_ACK)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let h2 = client::handshake(mock)
|
let mut h2 = client::handshake(mock)
|
||||||
.wait().unwrap();
|
.wait().unwrap();
|
||||||
trace!("hands have been shook");
|
trace!("hands have been shook");
|
||||||
|
|
||||||
// At this point, the connection should be closed
|
// At this point, the connection should be closed
|
||||||
assert!(Stream::wait(h2).next().is_none());
|
sassert_empty(&mut h2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -78,10 +80,14 @@ mod client_request {
|
|||||||
// Send the request
|
// Send the request
|
||||||
let mut request = request::Head::default();
|
let mut request = request::Head::default();
|
||||||
request.uri = "https://http2.akamai.com/".parse().unwrap();
|
request.uri = "https://http2.akamai.com/".parse().unwrap();
|
||||||
|
|
||||||
|
trace!("sending request");
|
||||||
let h2 = h2.send_request(1.into(), request, true).wait().unwrap();
|
let h2 = h2.send_request(1.into(), request, true).wait().unwrap();
|
||||||
|
|
||||||
// Get the response
|
// Get the response
|
||||||
let (resp, h2) = h2.into_future().wait().unwrap();
|
|
||||||
|
trace!("getting response");
|
||||||
|
let (resp, mut h2) = h2.into_future().wait().unwrap();
|
||||||
|
|
||||||
match resp.unwrap() {
|
match resp.unwrap() {
|
||||||
Frame::Headers { headers, .. } => {
|
Frame::Headers { headers, .. } => {
|
||||||
@@ -91,7 +97,8 @@ mod client_request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// No more frames
|
// No more frames
|
||||||
assert!(Stream::wait(h2).next().is_none());
|
trace!("ensure no more responses");
|
||||||
|
sassert_empty(&mut h2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -144,7 +151,7 @@ mod client_request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the response body
|
// Get the response body
|
||||||
let (data, h2) = h2.into_future().wait().unwrap();
|
let (data, mut h2) = h2.into_future().wait().unwrap();
|
||||||
|
|
||||||
match data.unwrap() {
|
match data.unwrap() {
|
||||||
Frame::Data { id, data, end_of_stream, .. } => {
|
Frame::Data { id, data, end_of_stream, .. } => {
|
||||||
@@ -155,7 +162,7 @@ mod client_request {
|
|||||||
_ => panic!("unexpected frame"),
|
_ => panic!("unexpected frame"),
|
||||||
}
|
}
|
||||||
|
|
||||||
assert!(Stream::wait(h2).next().is_none());
|
sassert_empty(&mut h2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -208,7 +215,7 @@ mod client_request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the response body
|
// Get the response body
|
||||||
let (data, h2) = h2.into_future().wait().unwrap();
|
let (data, mut h2) = h2.into_future().wait().unwrap();
|
||||||
|
|
||||||
match data.unwrap() {
|
match data.unwrap() {
|
||||||
Frame::Data { id, data, end_of_stream, .. } => {
|
Frame::Data { id, data, end_of_stream, .. } => {
|
||||||
@@ -219,7 +226,7 @@ mod client_request {
|
|||||||
_ => panic!("unexpected frame"),
|
_ => panic!("unexpected frame"),
|
||||||
}
|
}
|
||||||
|
|
||||||
assert!(Stream::wait(h2).next().is_none());
|
sassert_empty(&mut h2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -288,7 +295,7 @@ mod client_request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the response body
|
// Get the response body
|
||||||
let (data, h2) = h2.into_future().wait().expect("into future");
|
let (data, mut h2) = h2.into_future().wait().expect("into future");
|
||||||
|
|
||||||
match data.expect("response data") {
|
match data.expect("response data") {
|
||||||
Frame::Data { id, data, end_of_stream, .. } => {
|
Frame::Data { id, data, end_of_stream, .. } => {
|
||||||
@@ -299,7 +306,7 @@ mod client_request {
|
|||||||
_ => panic!("unexpected frame"),
|
_ => panic!("unexpected frame"),
|
||||||
}
|
}
|
||||||
|
|
||||||
assert!(Stream::wait(h2).next().is_none());
|
sassert_empty(&mut h2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user