340 lines
6.4 KiB
Rust
340 lines
6.4 KiB
Rust
#![deny(warnings)]
|
|
#[macro_use]
|
|
mod support;
|
|
use self::support::*;
|
|
|
|
t! {
|
|
get_1,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
"date" => SOME,
|
|
},
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_implicit_path,
|
|
client:
|
|
request:
|
|
uri: "",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
date_isnt_overwritten,
|
|
client:
|
|
request:
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
"date" => "let me through",
|
|
},
|
|
;
|
|
server:
|
|
request:
|
|
;
|
|
response:
|
|
headers: {
|
|
"date" => "let me through",
|
|
},
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_body,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_body_2_keeps_alive,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_strip_connection_header,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
// h2 doesn't actually receive the connection header
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
// http2 should strip this header
|
|
"connection" => "close",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_strip_keep_alive_header,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
// h2 doesn't actually receive the keep-alive header
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
// http2 should strip this header
|
|
"keep-alive" => "timeout=5, max=1000",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_strip_upgrade_header,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
// h2 doesn't actually receive the upgrade header
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
// http2 should strip this header
|
|
"upgrade" => "h2c",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_allow_te_trailers_header,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
headers: {
|
|
// http2 strips connection headers other than TE "trailers"
|
|
"te" => "trailers",
|
|
},
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
headers: {
|
|
"te" => "trailers",
|
|
},
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_body_chunked,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
// h2 doesn't actually receive the transfer-encoding header
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
// http2 should strip this header
|
|
"transfer-encoding" => "chunked",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
post_outgoing_length,
|
|
client:
|
|
request:
|
|
method: "POST",
|
|
uri: "/hello",
|
|
body: "hello, world!",
|
|
;
|
|
response:
|
|
;
|
|
server:
|
|
request:
|
|
method: "POST",
|
|
uri: "/hello",
|
|
headers: {
|
|
"content-length" => "13",
|
|
},
|
|
body: "hello, world!",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
post_chunked,
|
|
client:
|
|
request:
|
|
method: "POST",
|
|
uri: "/post_chunked",
|
|
headers: {
|
|
// http2 should strip this header
|
|
"transfer-encoding" => "chunked",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
response:
|
|
;
|
|
server:
|
|
request:
|
|
method: "POST",
|
|
uri: "/post_chunked",
|
|
body: "hello world",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_2,
|
|
client:
|
|
request:
|
|
uri: "/1",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
request:
|
|
uri: "/2",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/1",
|
|
;
|
|
response:
|
|
;
|
|
request:
|
|
uri: "/2",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
http2_parallel_10,
|
|
parallel: 0..10
|
|
}
|