Skip to content

Commit 707d757

Browse files
committed
add test case
1 parent 46b0094 commit 707d757

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

src/async_impl/body.rs

+14
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,8 @@ where
354354

355355
#[cfg(test)]
356356
mod tests {
357+
use http_body::Body as _;
358+
357359
use super::Body;
358360

359361
#[test]
@@ -362,4 +364,16 @@ mod tests {
362364
let body = Body::from(&test_data[..]);
363365
assert_eq!(body.as_bytes(), Some(&test_data[..]));
364366
}
367+
368+
#[test]
369+
fn body_exact_length() {
370+
assert_eq!(Body::empty().size_hint().exact(), None);
371+
assert_eq!(Body::reusable("abc".into()).size_hint().exact(), Some(3));
372+
assert_eq!(
373+
Body::streaming(Body::reusable("abc".into()))
374+
.size_hint()
375+
.exact(),
376+
None
377+
);
378+
}
365379
}

tests/blocking.rs

+21
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,27 @@ fn test_response_text() {
2121
assert_eq!(b"Hello", body.as_bytes());
2222
}
2323

24+
#[test]
25+
fn donot_set_conent_length_0_if_have_no_body() {
26+
let server = server::http(move |req| async move {
27+
let headers = req.headers();
28+
assert_eq!(headers.get("content-length"), None);
29+
dbg!(&headers);
30+
http::Response::default()
31+
});
32+
33+
let url = format!("http://{}/conent-length", server.addr());
34+
let res = reqwest::blocking::Client::builder()
35+
.no_proxy()
36+
.build()
37+
.expect("client builder")
38+
.get(&url)
39+
.send()
40+
.expect("request");
41+
42+
assert_eq!(res.status(), reqwest::StatusCode::OK);
43+
}
44+
2445
#[test]
2546
#[cfg(feature = "charset")]
2647
fn test_response_non_utf_8_text() {

tests/client.rs

+22
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,28 @@ async fn auto_headers() {
5454
assert_eq!(res.remote_addr(), Some(server.addr()));
5555
}
5656

57+
#[tokio::test]
58+
async fn donot_set_conent_length_0_if_have_no_body() {
59+
let server = server::http(move |req| async move {
60+
let headers = req.headers();
61+
assert_eq!(headers.get("content-length"), None);
62+
dbg!(&headers);
63+
http::Response::default()
64+
});
65+
66+
let url = format!("http://{}/conent-length", server.addr());
67+
let res = reqwest::Client::builder()
68+
.no_proxy()
69+
.build()
70+
.expect("client builder")
71+
.get(&url)
72+
.send()
73+
.await
74+
.expect("request");
75+
76+
assert_eq!(res.status(), reqwest::StatusCode::OK);
77+
}
78+
5779
#[tokio::test]
5880
async fn user_agent() {
5981
let server = server::http(move |req| async move {

0 commit comments

Comments
 (0)