diff --git a/tests/client.rs b/tests/client.rs index 541f1ba..a302a2a 100644 --- a/tests/client.rs +++ b/tests/client.rs @@ -79,9 +79,9 @@ fn test_post() { request: b"\ POST /2 HTTP/1.1\r\n\ Host: $HOST\r\n\ - Content-Length: 5\r\n\ User-Agent: $USERAGENT\r\n\ Accept: */*\r\n\ + Content-Length: 5\r\n\ Accept-Encoding: gzip\r\n\ \r\n\ Hello\ @@ -170,3 +170,111 @@ fn test_error_for_status_5xx() { assert!(err.is_server_error()); assert_eq!(err.status(), Some(reqwest::StatusCode::InternalServerError)); } + +#[test] +fn test_default_headers() { + use reqwest::header; + let mut headers = header::Headers::with_capacity(1); + let mut cookies = header::Cookie::new(); + cookies.set("a", "b"); + cookies.set("c", "d"); + headers.set(cookies); + let client = reqwest::Client::builder() + .default_headers(headers) + .build().unwrap(); + + let server = server! { + request: b"\ + GET /1 HTTP/1.1\r\n\ + Host: $HOST\r\n\ + User-Agent: $USERAGENT\r\n\ + Accept: */*\r\n\ + Cookie: a=b; c=d\r\n\ + Accept-Encoding: gzip\r\n\ + \r\n\ + ", + response: b"\ + HTTP/1.1 200 OK\r\n\ + Server: test\r\n\ + Content-Length: 0\r\n\ + \r\n\ + " + }; + + let url = format!("http://{}/1", server.addr()); + let res = client.get(&url).send().unwrap(); + + assert_eq!(res.url().as_str(), &url); + assert_eq!(res.status(), reqwest::StatusCode::Ok); + assert_eq!(res.headers().get(), + Some(&reqwest::header::Server::new("test"))); + assert_eq!(res.headers().get(), + Some(&reqwest::header::ContentLength(0))); + + let server = server! { + request: b"\ + GET /2 HTTP/1.1\r\n\ + Host: $HOST\r\n\ + User-Agent: $USERAGENT\r\n\ + Accept: */*\r\n\ + Cookie: a=b; c=d\r\n\ + Accept-Encoding: gzip\r\n\ + \r\n\ + ", + response: b"\ + HTTP/1.1 200 OK\r\n\ + Server: test\r\n\ + Content-Length: 0\r\n\ + \r\n\ + " + }; + + let url = format!("http://{}/2", server.addr()); + let res = client.get(&url).send().unwrap(); + + assert_eq!(res.url().as_str(), &url); + assert_eq!(res.status(), reqwest::StatusCode::Ok); + assert_eq!(res.headers().get(), + Some(&reqwest::header::Server::new("test"))); + assert_eq!(res.headers().get(), + Some(&reqwest::header::ContentLength(0))); +} + +#[test] +fn test_override_default_headers() { + use reqwest::header; + let mut headers = header::Headers::with_capacity(1); + headers.set(header::Authorization("iamatoken".to_string())); + let client = reqwest::Client::builder() + .default_headers(headers) + .build().unwrap(); + + let server = server! { + request: b"\ + GET /3 HTTP/1.1\r\n\ + Host: $HOST\r\n\ + User-Agent: $USERAGENT\r\n\ + Accept: */*\r\n\ + Authorization: secret\r\n\ + Accept-Encoding: gzip\r\n\ + \r\n\ + ", + response: b"\ + HTTP/1.1 200 OK\r\n\ + Server: test\r\n\ + Content-Length: 0\r\n\ + \r\n\ + " + }; + + let url = format!("http://{}/3", server.addr()); + let res = client.get(&url).header(header::Authorization("secret".to_string())).send().unwrap(); + + assert_eq!(res.url().as_str(), &url); + assert_eq!(res.status(), reqwest::StatusCode::Ok); + assert_eq!(res.headers().get(), + Some(&reqwest::header::Server::new("test"))); + assert_eq!(res.headers().get(), + Some(&reqwest::header::ContentLength(0))); + +} diff --git a/tests/gzip.rs b/tests/gzip.rs index 15715c3..02a3083 100644 --- a/tests/gzip.rs +++ b/tests/gzip.rs @@ -114,8 +114,8 @@ fn test_accept_header_is_not_changed_if_set() { request: b"\ GET /accept HTTP/1.1\r\n\ Host: $HOST\r\n\ - Accept: application/json\r\n\ User-Agent: $USERAGENT\r\n\ + Accept: application/json\r\n\ Accept-Encoding: gzip\r\n\ \r\n\ ", @@ -143,9 +143,9 @@ fn test_accept_encoding_header_is_not_changed_if_set() { request: b"\ GET /accept-encoding HTTP/1.1\r\n\ Host: $HOST\r\n\ - Accept-Encoding: identity\r\n\ User-Agent: $USERAGENT\r\n\ Accept: */*\r\n\ + Accept-Encoding: identity\r\n\ \r\n\ ", response: b"\ diff --git a/tests/multipart.rs b/tests/multipart.rs index e832b33..723df31 100644 --- a/tests/multipart.rs +++ b/tests/multipart.rs @@ -19,10 +19,10 @@ fn test_multipart() { request: format!("\ POST /multipart/1 HTTP/1.1\r\n\ Host: $HOST\r\n\ - Content-Type: multipart/form-data; boundary={}\r\n\ - Content-Length: 123\r\n\ User-Agent: $USERAGENT\r\n\ Accept: */*\r\n\ + Content-Type: multipart/form-data; boundary={}\r\n\ + Content-Length: 123\r\n\ Accept-Encoding: gzip\r\n\ \r\n\ {}\ diff --git a/tests/redirect.rs b/tests/redirect.rs index ff46d5a..577f3e4 100644 --- a/tests/redirect.rs +++ b/tests/redirect.rs @@ -117,9 +117,9 @@ fn test_redirect_307_and_308_tries_to_post_again() { request: format!("\ POST /{} HTTP/1.1\r\n\ Host: $HOST\r\n\ - Content-Length: 5\r\n\ User-Agent: $USERAGENT\r\n\ Accept: */*\r\n\ + Content-Length: 5\r\n\ Accept-Encoding: gzip\r\n\ \r\n\ Hello\ @@ -136,9 +136,9 @@ fn test_redirect_307_and_308_tries_to_post_again() { request: format!("\ POST /dst HTTP/1.1\r\n\ Host: $HOST\r\n\ - Content-Length: 5\r\n\ User-Agent: $USERAGENT\r\n\ Accept: */*\r\n\ + Content-Length: 5\r\n\ Accept-Encoding: gzip\r\n\ Referer: http://$HOST/{}\r\n\ \r\n\ @@ -229,9 +229,9 @@ fn test_redirect_removes_sensitive_headers() { request: b"\ GET /sensitive HTTP/1.1\r\n\ Host: $HOST\r\n\ - Cookie: foo=bar\r\n\ User-Agent: $USERAGENT\r\n\ Accept: */*\r\n\ + Cookie: foo=bar\r\n\ Accept-Encoding: gzip\r\n\ \r\n\ ",