Partial implementation of Main Fetch step, including appropiate updates to tests

This commit is contained in:
Nikki 2016-01-21 15:52:51 -07:00
parent 842ec7c415
commit db8cc6eccf
6 changed files with 264 additions and 65 deletions

View file

@ -9,7 +9,7 @@ use hyper::status::StatusCode;
use hyper::uri::RequestUri;
use net::fetch::methods::fetch;
use net_traits::request::{Context, Referer, Request};
use net_traits::response::{Response, ResponseBody};
use net_traits::response::{Response, ResponseBody, ResponseType};
use std::rc::Rc;
use url::Url;
@ -35,7 +35,8 @@ fn test_fetch_response_is_not_network_error() {
};
let (mut server, url) = make_server(handler);
let mut request = Request::new(url, Context::Fetch, false);
let origin = url.origin();
let mut request = Request::new(url, Context::Fetch, origin, false);
request.referer = Referer::NoReferer;
let wrapped_request = Rc::new(request);
@ -56,16 +57,20 @@ fn test_fetch_response_body_matches_const_message() {
};
let (mut server, url) = make_server(handler);
let mut request = Request::new(url, Context::Fetch, false);
let origin = url.origin();
let mut request = Request::new(url, Context::Fetch, origin, false);
request.referer = Referer::NoReferer;
let wrapped_request = Rc::new(request);
let fetch_response = fetch(wrapped_request, false);
let _ = server.close();
match fetch_response.body {
ResponseBody::Done(body) => {
assert_eq!(body, MESSAGE);
assert!(!Response::is_network_error(&fetch_response));
assert_eq!(fetch_response.response_type, ResponseType::Basic);
match *fetch_response.body.borrow() {
ResponseBody::Done(ref body) => {
assert_eq!(&**body, MESSAGE);
},
_ => panic!()
};
@ -94,7 +99,8 @@ fn test_fetch_redirect_count(message: &'static [u8], redirect_cap: u32) -> Respo
let (mut server, url) = make_server(handler);
let mut request = Request::new(url, Context::Fetch, false);
let origin = url.origin();
let mut request = Request::new(url, Context::Fetch, origin, false);
request.referer = Referer::NoReferer;
let wrapped_request = Rc::new(request);
@ -112,10 +118,12 @@ fn test_fetch_redirect_count_ceiling() {
let fetch_response = test_fetch_redirect_count(MESSAGE, redirect_cap);
assert_eq!(Response::is_network_error(&fetch_response), false);
match fetch_response.body {
ResponseBody::Done(body) => {
assert_eq!(body, MESSAGE);
assert!(!Response::is_network_error(&fetch_response));
assert_eq!(fetch_response.response_type, ResponseType::Basic);
match *fetch_response.body.borrow() {
ResponseBody::Done(ref body) => {
assert_eq!(&**body, MESSAGE);
},
_ => panic!()
};
@ -130,9 +138,10 @@ fn test_fetch_redirect_count_failure() {
let fetch_response = test_fetch_redirect_count(MESSAGE, redirect_cap);
assert_eq!(Response::is_network_error(&fetch_response), true);
match fetch_response.body {
ResponseBody::Done(_) => panic!(),
assert!(Response::is_network_error(&fetch_response));
match *fetch_response.body.borrow() {
ResponseBody::Done(_) | ResponseBody::Receiving(_) => panic!(),
_ => { }
};
}