49 lines
1.2 KiB
Rust
49 lines
1.2 KiB
Rust
#[macro_use]
|
|
extern crate log;
|
|
|
|
pub mod support;
|
|
use support::*;
|
|
|
|
#[test]
|
|
fn headers_only_bidirectional() {
|
|
let _ = env_logger::init();
|
|
|
|
let mock = mock_io::Builder::new()
|
|
.handshake()
|
|
// Write GET /
|
|
.write(&[
|
|
0, 0, 0x10, 1, 5, 0, 0, 0, 1, 0x82, 0x87, 0x41, 0x8B, 0x9D, 0x29,
|
|
0xAC, 0x4B, 0x8F, 0xA8, 0xE9, 0x19, 0x97, 0x21, 0xE9, 0x84,
|
|
])
|
|
.write(frames::SETTINGS_ACK)
|
|
// Read response
|
|
.read(&[0, 0, 1, 1, 5, 0, 0, 0, 1, 0x89])
|
|
.build();
|
|
|
|
let h2 = client::handshake(mock)
|
|
.wait().unwrap();
|
|
|
|
// Send the request
|
|
let mut request = request::Head::default();
|
|
request.uri = "https://http2.akamai.com/".parse().unwrap();
|
|
|
|
info!("sending request");
|
|
let h2 = h2.send_request(1.into(), request, true).wait().unwrap();
|
|
|
|
// Get the response
|
|
|
|
info!("getting response");
|
|
let (resp, h2) = h2.into_future().wait().unwrap();
|
|
|
|
match resp.unwrap() {
|
|
h2::Frame::Headers { headers, .. } => {
|
|
assert_eq!(headers.status, status::NO_CONTENT);
|
|
}
|
|
_ => panic!("unexpected frame"),
|
|
}
|
|
|
|
// No more frames
|
|
info!("ensure no more responses");
|
|
assert!(Stream::wait(h2).next().is_none());;
|
|
}
|