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