extern crate h2_test_support; use h2_test_support::*; // In this case, the stream & connection both have capacity, but capacity is not // explicitly requested. #[test] fn send_data_without_requesting_capacity() { let _ = ::env_logger::init(); let payload = [0; 1024]; let mock = mock_io::Builder::new() .handshake() .write(&[ // POST / 0, 0, 16, 1, 4, 0, 0, 0, 1, 131, 135, 65, 139, 157, 41, 172, 75, 143, 168, 233, 25, 151, 33, 233, 132, ]) .write(&[ // DATA 0, 4, 0, 0, 1, 0, 0, 0, 1, ]) .write(&payload[..]) .write(frames::SETTINGS_ACK) // Read response .read(&[0, 0, 1, 1, 5, 0, 0, 0, 1, 0x89]) .build(); let mut h2 = Client::handshake(mock) .wait().unwrap(); let request = Request::builder() .method(method::POST) .uri("https://http2.akamai.com/") .body(()).unwrap(); let mut stream = h2.request(request, false).unwrap(); // The capacity should be immediately allocated assert_eq!(stream.capacity(), 0); // Send the data stream.send_data(payload[..].into(), true).unwrap(); // Get the response let resp = h2.run(poll_fn(|| stream.poll_response())).unwrap(); assert_eq!(resp.status(), status::NO_CONTENT); h2.wait().unwrap(); } #[test] #[ignore] fn expand_window_sends_window_update() { } #[test] #[ignore] fn expand_window_calls_are_coalesced() { } #[test] #[ignore] fn recv_data_overflows_window() { } #[test] #[ignore] fn recv_window_update_causes_overflow() { // A received window update causes the window to overflow. }