1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-06-25 14:49:20 +02:00

added combined http1/2 service

This commit is contained in:
Nikolay Kim
2019-03-06 22:56:34 -08:00
parent e25483a0d5
commit 3b069e0568
13 changed files with 575 additions and 169 deletions

View File

@ -10,8 +10,8 @@ use futures::stream::once;
use actix_http::body::Body;
use actix_http::{
body, client, h1, h2, http, Error, HttpMessage as HttpMessage2, KeepAlive, Request,
Response,
body, client, h1, h2, http, Error, HttpMessage as HttpMessage2, HttpService,
KeepAlive, Request, Response,
};
#[test]
@ -31,6 +31,26 @@ fn test_h1() {
assert!(response.status().is_success());
}
#[test]
fn test_h1_2() {
let mut srv = TestServer::new(|| {
HttpService::build()
.keep_alive(KeepAlive::Disabled)
.client_timeout(1000)
.client_disconnect(1000)
.server_hostname("localhost")
.finish(|req: Request| {
assert_eq!(req.version(), http::Version::HTTP_11);
future::ok::<_, ()>(Response::Ok().finish())
})
.map(|_| ())
});
let req = client::ClientRequest::get(srv.url("/")).finish().unwrap();
let response = srv.send_request(req).unwrap();
assert!(response.status().is_success());
}
#[cfg(feature = "ssl")]
fn ssl_acceptor<T>() -> std::io::Result<actix_server::ssl::OpensslAcceptor<T>> {
use openssl::ssl::{SslAcceptor, SslFiletype, SslMethod};
@ -71,7 +91,30 @@ fn test_h2() -> std::io::Result<()> {
let req = client::ClientRequest::get(srv.surl("/")).finish().unwrap();
let response = srv.send_request(req).unwrap();
println!("RES: {:?}", response);
assert!(response.status().is_success());
Ok(())
}
#[cfg(feature = "ssl")]
#[test]
fn test_h2_1() -> std::io::Result<()> {
let openssl = ssl_acceptor()?;
let mut srv = TestServer::new(move || {
openssl
.clone()
.map_err(|e| println!("Openssl error: {}", e))
.and_then(
HttpService::build()
.finish(|req: Request| {
assert_eq!(req.version(), http::Version::HTTP_2);
future::ok::<_, Error>(Response::Ok().finish())
})
.map_err(|_| ()),
)
});
let req = client::ClientRequest::get(srv.surl("/")).finish().unwrap();
let response = srv.send_request(req).unwrap();
assert!(response.status().is_success());
Ok(())
}
@ -79,9 +122,6 @@ fn test_h2() -> std::io::Result<()> {
#[cfg(feature = "ssl")]
#[test]
fn test_h2_body() -> std::io::Result<()> {
// std::env::set_var("RUST_LOG", "actix_http=trace");
// env_logger::init();
let data = "HELLOWORLD".to_owned().repeat(64 * 1024);
let openssl = ssl_acceptor()?;
let mut srv = TestServer::new(move || {