test server with h2 over tcp

This commit is contained in:
Nikolay Kim 2020-04-25 10:11:49 +06:00
parent e66ca1678a
commit 4ff6ecf573
3 changed files with 36 additions and 7 deletions

View file

@ -123,12 +123,7 @@ where
on_connect.set(&mut req.extensions_mut());
}
crate::rt::spawn(ServiceResponse::<
S::Future,
S::Response,
S::Error,
B,
> {
crate::rt::spawn(ServiceResponse {
state: ServiceResponseState::ServiceCall(
this.config.service.call(req),
Some(res),

View file

@ -605,6 +605,14 @@ mod tests {
let _ = lazy(|cx| Pin::new(&mut worker).poll(cx)).await;
assert!(avail.available());
*st.lock().unwrap() = St::Pending;
let _ = lazy(|cx| Pin::new(&mut worker).poll(cx)).await;
assert!(!avail.available());
*st.lock().unwrap() = St::Ready;
let _ = lazy(|cx| Pin::new(&mut worker).poll(cx)).await;
assert!(avail.available());
// restart
*st.lock().unwrap() = St::Fail;
let _ = lazy(|cx| Pin::new(&mut worker).poll(cx)).await;

View file

@ -1000,7 +1000,7 @@ mod tests {
let data = req.app_data::<web::types::Data<u64>>().unwrap();
assert_eq!(*data.get_ref(), 20);
// let req = TestRequest::with_uri("/test").to_http_
assert_eq!(format!("{:?}", StreamType::Tcp), "StreamType::Tcp");
}
#[ntex_rt::test]
@ -1216,4 +1216,30 @@ mod tests {
let res = srv.put("").send().await.unwrap();
assert_eq!(srv.load_body(res).await.unwrap(), Bytes::new());
}
#[ntex_rt::test]
async fn test_h2_tcp() {
let srv = server_with(TestServerConfig::default().h2(), || {
App::new().service(
web::resource("/").route(web::get().to(|| async { HttpResponse::Ok() })),
)
});
let client = Client::build()
.connector(
Connector::default()
.secure_connector(Service::map(
crate::connect::Connector::default(),
|stream| (stream, crate::http::Protocol::Http2),
))
.finish(),
)
.timeout(time::Duration::from_millis(30000))
.finish();
let url = format!("https://localhost:{}/", srv.addr.port());
let response = client.get(url).send().await.unwrap();
assert_eq!(response.version(), Version::HTTP_2);
assert!(response.status().is_success());
}
}