refactor into unit
This commit is contained in:
@@ -6,18 +6,18 @@ use super::super::*;
|
||||
fn agent_reuse_headers() {
|
||||
let agent = agent().set("Authorization", "Foo 12345").build();
|
||||
|
||||
test::set_handler("/agent_reuse_headers", |req, _url| {
|
||||
assert!(req.has("Authorization"));
|
||||
assert_eq!(req.header("Authorization").unwrap(), "Foo 12345");
|
||||
test::set_handler("/agent_reuse_headers", |unit| {
|
||||
assert!(unit.has("Authorization"));
|
||||
assert_eq!(unit.header("Authorization").unwrap(), "Foo 12345");
|
||||
test::make_response(200, "OK", vec!["X-Call: 1"], vec![])
|
||||
});
|
||||
|
||||
let resp = agent.get("test://host/agent_reuse_headers").call();
|
||||
assert_eq!(resp.header("X-Call").unwrap(), "1");
|
||||
|
||||
test::set_handler("/agent_reuse_headers", |req, _url| {
|
||||
assert!(req.has("Authorization"));
|
||||
assert_eq!(req.header("Authorization").unwrap(), "Foo 12345");
|
||||
test::set_handler("/agent_reuse_headers", |unit| {
|
||||
assert!(unit.has("Authorization"));
|
||||
assert_eq!(unit.header("Authorization").unwrap(), "Foo 12345");
|
||||
test::make_response(200, "OK", vec!["X-Call: 2"], vec![])
|
||||
});
|
||||
|
||||
@@ -29,7 +29,7 @@ fn agent_reuse_headers() {
|
||||
fn agent_cookies() {
|
||||
let agent = agent().build();
|
||||
|
||||
test::set_handler("/agent_cookies", |_req, _url| {
|
||||
test::set_handler("/agent_cookies", |_unit| {
|
||||
test::make_response(
|
||||
200,
|
||||
"OK",
|
||||
@@ -43,7 +43,7 @@ fn agent_cookies() {
|
||||
assert!(agent.cookie("foo").is_some());
|
||||
assert_eq!(agent.cookie("foo").unwrap().value(), "bar baz");
|
||||
|
||||
test::set_handler("/agent_cookies", |_req, _url| {
|
||||
test::set_handler("/agent_cookies", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ use super::super::*;
|
||||
|
||||
#[test]
|
||||
fn basic_auth() {
|
||||
test::set_handler("/basic_auth", |req, _url| {
|
||||
test::set_handler("/basic_auth", |unit| {
|
||||
assert_eq!(
|
||||
req.header("Authorization").unwrap(),
|
||||
unit.header("Authorization").unwrap(),
|
||||
"Basic bWFydGluOnJ1YmJlcm1hc2hndW0="
|
||||
);
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
@@ -19,8 +19,8 @@ fn basic_auth() {
|
||||
|
||||
#[test]
|
||||
fn kind_auth() {
|
||||
test::set_handler("/kind_auth", |req, _url| {
|
||||
assert_eq!(req.header("Authorization").unwrap(), "Digest abcdefgh123");
|
||||
test::set_handler("/kind_auth", |unit| {
|
||||
assert_eq!(unit.header("Authorization").unwrap(), "Digest abcdefgh123");
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/kind_auth")
|
||||
|
||||
@@ -5,7 +5,7 @@ use super::super::*;
|
||||
|
||||
#[test]
|
||||
fn transfer_encoding_bogus() {
|
||||
test::set_handler("/transfer_encoding_bogus", |_req, _url| {
|
||||
test::set_handler("/transfer_encoding_bogus", |_unit| {
|
||||
test::make_response(
|
||||
200,
|
||||
"OK",
|
||||
@@ -26,7 +26,7 @@ fn transfer_encoding_bogus() {
|
||||
|
||||
#[test]
|
||||
fn content_length_limited() {
|
||||
test::set_handler("/content_length_limited", |_req, _url| {
|
||||
test::set_handler("/content_length_limited", |_unit| {
|
||||
test::make_response(
|
||||
200,
|
||||
"OK",
|
||||
@@ -44,7 +44,7 @@ fn content_length_limited() {
|
||||
#[test]
|
||||
// content-length should be ignored when chunked
|
||||
fn ignore_content_length_when_chunked() {
|
||||
test::set_handler("/ignore_content_length_when_chunked", |_req, _url| {
|
||||
test::set_handler("/ignore_content_length_when_chunked", |_unit| {
|
||||
test::make_response(
|
||||
200,
|
||||
"OK",
|
||||
@@ -63,7 +63,7 @@ fn ignore_content_length_when_chunked() {
|
||||
|
||||
#[test]
|
||||
fn no_reader_on_head() {
|
||||
test::set_handler("/no_reader_on_head", |_req, _url| {
|
||||
test::set_handler("/no_reader_on_head", |_unit| {
|
||||
// so this is technically illegal, we return a body for the HEAD request.
|
||||
test::make_response(
|
||||
200,
|
||||
|
||||
@@ -4,7 +4,7 @@ use super::super::*;
|
||||
|
||||
#[test]
|
||||
fn content_length_on_str() {
|
||||
test::set_handler("/content_length_on_str", |_req, _url| {
|
||||
test::set_handler("/content_length_on_str", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = post("test://host/content_length_on_str").send_string("Hello World!!!");
|
||||
@@ -15,7 +15,7 @@ fn content_length_on_str() {
|
||||
|
||||
#[test]
|
||||
fn user_set_content_length_on_str() {
|
||||
test::set_handler("/user_set_content_length_on_str", |_req, _url| {
|
||||
test::set_handler("/user_set_content_length_on_str", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = post("test://host/user_set_content_length_on_str")
|
||||
@@ -29,7 +29,7 @@ fn user_set_content_length_on_str() {
|
||||
#[test]
|
||||
#[cfg(feature = "json")]
|
||||
fn content_length_on_json() {
|
||||
test::set_handler("/content_length_on_json", |_req, _url| {
|
||||
test::set_handler("/content_length_on_json", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let mut json = SerdeMap::new();
|
||||
@@ -45,7 +45,7 @@ fn content_length_on_json() {
|
||||
|
||||
#[test]
|
||||
fn content_length_and_chunked() {
|
||||
test::set_handler("/content_length_and_chunked", |_req, _url| {
|
||||
test::set_handler("/content_length_and_chunked", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = post("test://host/content_length_and_chunked")
|
||||
@@ -60,7 +60,7 @@ fn content_length_and_chunked() {
|
||||
#[test]
|
||||
#[cfg(feature = "charset")]
|
||||
fn str_with_encoding() {
|
||||
test::set_handler("/str_with_encoding", |_req, _url| {
|
||||
test::set_handler("/str_with_encoding", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = post("test://host/str_with_encoding")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use agent::Request;
|
||||
use agent::Unit;
|
||||
use agent::Stream;
|
||||
use error::Error;
|
||||
use header::Header;
|
||||
@@ -6,7 +6,6 @@ use std::collections::HashMap;
|
||||
use std::io::Cursor;
|
||||
use std::io::Write;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use url::Url;
|
||||
|
||||
mod agent_test;
|
||||
mod auth;
|
||||
@@ -16,7 +15,7 @@ mod query_string;
|
||||
mod range;
|
||||
mod simple;
|
||||
|
||||
type RequestHandler = Fn(&Request, &Url) -> Result<Stream, Error> + Send + 'static;
|
||||
type RequestHandler = Fn(&Unit) -> Result<Stream, Error> + Send + 'static;
|
||||
|
||||
lazy_static! {
|
||||
pub static ref TEST_HANDLERS: Arc<Mutex<HashMap<String, Box<RequestHandler>>>> =
|
||||
@@ -25,7 +24,7 @@ lazy_static! {
|
||||
|
||||
pub fn set_handler<H>(path: &str, handler: H)
|
||||
where
|
||||
H: Fn(&Request, &Url) -> Result<Stream, Error> + Send + 'static,
|
||||
H: Fn(&Unit) -> Result<Stream, Error> + Send + 'static,
|
||||
{
|
||||
let mut handlers = TEST_HANDLERS.lock().unwrap();
|
||||
handlers.insert(path.to_string(), Box::new(handler));
|
||||
@@ -50,9 +49,9 @@ pub fn make_response(
|
||||
Ok(Stream::Test(Box::new(cursor), write))
|
||||
}
|
||||
|
||||
pub fn resolve_handler(req: &Request, url: &Url) -> Result<Stream, Error> {
|
||||
pub fn resolve_handler(unit: &Unit) -> Result<Stream, Error> {
|
||||
let mut handlers = TEST_HANDLERS.lock().unwrap();
|
||||
let path = url.path();
|
||||
let path = unit.url.path();
|
||||
let handler = handlers.remove(path).unwrap();
|
||||
handler(req, url)
|
||||
handler(unit)
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ use super::super::*;
|
||||
|
||||
#[test]
|
||||
fn no_query_string() {
|
||||
test::set_handler("/no_query_string", |_req, _url| {
|
||||
test::set_handler("/no_query_string", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/no_query_string").call();
|
||||
@@ -15,7 +15,7 @@ fn no_query_string() {
|
||||
|
||||
#[test]
|
||||
fn escaped_query_string() {
|
||||
test::set_handler("/escaped_query_string", |_req, _url| {
|
||||
test::set_handler("/escaped_query_string", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/escaped_query_string")
|
||||
@@ -29,7 +29,7 @@ fn escaped_query_string() {
|
||||
|
||||
#[test]
|
||||
fn query_in_path() {
|
||||
test::set_handler("/query_in_path", |_req, _url| {
|
||||
test::set_handler("/query_in_path", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/query_in_path?foo=bar").call();
|
||||
@@ -40,7 +40,7 @@ fn query_in_path() {
|
||||
|
||||
#[test]
|
||||
fn query_in_path_and_req() {
|
||||
test::set_handler("/query_in_path_and_req", |_req, _url| {
|
||||
test::set_handler("/query_in_path_and_req", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/query_in_path_and_req?foo=bar")
|
||||
|
||||
@@ -5,9 +5,9 @@ use super::super::*;
|
||||
|
||||
#[test]
|
||||
fn header_passing() {
|
||||
test::set_handler("/header_passing", |req, _url| {
|
||||
assert!(req.has("X-Foo"));
|
||||
assert_eq!(req.header("X-Foo").unwrap(), "bar");
|
||||
test::set_handler("/header_passing", |unit| {
|
||||
assert!(unit.has("X-Foo"));
|
||||
assert_eq!(unit.header("X-Foo").unwrap(), "bar");
|
||||
test::make_response(200, "OK", vec!["X-Bar: foo"], vec![])
|
||||
});
|
||||
let resp = get("test://host/header_passing").set("X-Foo", "bar").call();
|
||||
@@ -18,9 +18,9 @@ fn header_passing() {
|
||||
|
||||
#[test]
|
||||
fn repeat_non_x_header() {
|
||||
test::set_handler("/repeat_non_x_header", |req, _url| {
|
||||
assert!(req.has("Accept"));
|
||||
assert_eq!(req.header("Accept").unwrap(), "baz");
|
||||
test::set_handler("/repeat_non_x_header", |unit| {
|
||||
assert!(unit.has("Accept"));
|
||||
assert_eq!(unit.header("Accept").unwrap(), "baz");
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/repeat_non_x_header")
|
||||
@@ -32,11 +32,11 @@ fn repeat_non_x_header() {
|
||||
|
||||
#[test]
|
||||
fn repeat_x_header() {
|
||||
test::set_handler("/repeat_x_header", |req, _url| {
|
||||
assert!(req.has("X-Forwarded-For"));
|
||||
assert_eq!(req.header("X-Forwarded-For").unwrap(), "130.240.19.2");
|
||||
test::set_handler("/repeat_x_header", |unit| {
|
||||
assert!(unit.has("X-Forwarded-For"));
|
||||
assert_eq!(unit.header("X-Forwarded-For").unwrap(), "130.240.19.2");
|
||||
assert_eq!(
|
||||
req.all("X-Forwarded-For"),
|
||||
unit.all("X-Forwarded-For"),
|
||||
vec!["130.240.19.2", "130.240.19.3"]
|
||||
);
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
@@ -50,7 +50,7 @@ fn repeat_x_header() {
|
||||
|
||||
#[test]
|
||||
fn body_as_text() {
|
||||
test::set_handler("/body_as_text", |_req, _url| {
|
||||
test::set_handler("/body_as_text", |_unit| {
|
||||
test::make_response(200, "OK", vec![], "Hello World!".to_string().into_bytes())
|
||||
});
|
||||
let resp = get("test://host/body_as_text").call();
|
||||
@@ -61,7 +61,7 @@ fn body_as_text() {
|
||||
#[test]
|
||||
#[cfg(feature = "json")]
|
||||
fn body_as_json() {
|
||||
test::set_handler("/body_as_json", |_req, _url| {
|
||||
test::set_handler("/body_as_json", |_unit| {
|
||||
test::make_response(
|
||||
200,
|
||||
"OK",
|
||||
@@ -76,7 +76,7 @@ fn body_as_json() {
|
||||
|
||||
#[test]
|
||||
fn body_as_reader() {
|
||||
test::set_handler("/body_as_reader", |_req, _url| {
|
||||
test::set_handler("/body_as_reader", |_unit| {
|
||||
test::make_response(200, "OK", vec![], "abcdefgh".to_string().into_bytes())
|
||||
});
|
||||
let resp = get("test://host/body_as_reader").call();
|
||||
@@ -88,7 +88,7 @@ fn body_as_reader() {
|
||||
|
||||
#[test]
|
||||
fn escape_path() {
|
||||
test::set_handler("/escape_path%20here", |_req, _url| {
|
||||
test::set_handler("/escape_path%20here", |_unit| {
|
||||
test::make_response(200, "OK", vec![], vec![])
|
||||
});
|
||||
let resp = get("test://host/escape_path here").call();
|
||||
|
||||
Reference in New Issue
Block a user