Update Hyper and OpenSSL

This commit is contained in:
ddh 2017-01-11 12:07:36 +00:00 committed by Anthony Ramine
parent f66cae3f96
commit e527c9a991
32 changed files with 298 additions and 396 deletions

View file

@ -10,11 +10,12 @@ path = "lib.rs"
doctest = false
[dependencies]
cookie = "0.2"
cookie = "0.6"
devtools_traits = {path = "../../../components/devtools_traits"}
flate2 = "0.2.0"
hyper = "0.9.9"
hyper_serde = "0.5"
hyper = "0.10"
hyper-openssl = "0.2"
hyper_serde = "0.6"
ipc-channel = "0.7"
msg = {path = "../../../components/msg"}
net = {path = "../../../components/net"}

View file

@ -69,7 +69,7 @@ fn fn_cookie_constructor() {
let cookie = cookie_rs::Cookie::parse(" baz = bar; Domain = ").unwrap();
assert!(Cookie::new_wrapped(cookie.clone(), url, CookieSource::HTTP).is_some());
let cookie = Cookie::new_wrapped(cookie, url, CookieSource::HTTP).unwrap();
assert!(&**cookie.cookie.domain.as_ref().unwrap() == "example.com");
assert!(&**cookie.cookie.domain().as_ref().unwrap() == "example.com");
// cookie public domains test
let cookie = cookie_rs::Cookie::parse(" baz = bar; Domain = gov.ac").unwrap();
@ -88,11 +88,11 @@ fn fn_cookie_constructor() {
let cookie = cookie_rs::Cookie::parse(" baz = bar ; Secure; Path = /foo/bar/").unwrap();
let cookie = Cookie::new_wrapped(cookie, url, CookieSource::HTTP).unwrap();
assert!(cookie.cookie.value == "bar");
assert!(cookie.cookie.name == "baz");
assert!(cookie.cookie.secure);
assert!(&cookie.cookie.path.as_ref().unwrap()[..] == "/foo/bar/");
assert!(&cookie.cookie.domain.as_ref().unwrap()[..] == "example.com");
assert!(cookie.cookie.value() == "bar");
assert!(cookie.cookie.name() == "baz");
assert!(cookie.cookie.secure());
assert!(&cookie.cookie.path().as_ref().unwrap()[..] == "/foo/bar/");
assert!(&cookie.cookie.domain().as_ref().unwrap()[..] == "example.com");
assert!(cookie.host_only);
let u = &ServoUrl::parse("http://example.com/foobar").unwrap();
@ -125,7 +125,7 @@ fn test_sort_order() {
let b = cookie_rs::Cookie::parse("baz=bar;Path=/foo/bar/baz/").unwrap();
let b = Cookie::new_wrapped(b, url, CookieSource::HTTP).unwrap();
assert!(b.cookie.path.as_ref().unwrap().len() > a.cookie.path.as_ref().unwrap().len());
assert!(b.cookie.path().as_ref().unwrap().len() > a.cookie.path().as_ref().unwrap().len());
assert!(CookieStorage::cookie_comparator(&a, &b) == Ordering::Greater);
assert!(CookieStorage::cookie_comparator(&b, &a) == Ordering::Less);
assert!(CookieStorage::cookie_comparator(&a, &a_prime) == Ordering::Less);
@ -136,7 +136,8 @@ fn test_sort_order() {
fn add_cookie_to_storage(storage: &mut CookieStorage, url: &ServoUrl, cookie_str: &str)
{
let source = CookieSource::HTTP;
let cookie = Cookie::new_wrapped(cookie_rs::Cookie::parse(cookie_str).unwrap(), url, source).unwrap();
let cookie = cookie_rs::Cookie::parse(cookie_str.to_owned()).unwrap();
let cookie = Cookie::new_wrapped(cookie, url, source).unwrap();
storage.push(cookie, url, source);
}
@ -261,7 +262,7 @@ fn add_retrieve_cookies(set_location: &str,
let header = Header::parse_header(&[bytes]).unwrap();
let SetCookie(cookies) = header;
for bare_cookie in cookies {
let cookie = Cookie::new_wrapped(bare_cookie, &url, source).unwrap();
let cookie = Cookie::from_cookie_string(bare_cookie, &url, source).unwrap();
storage.push(cookie, &url, source);
}
}

View file

@ -20,7 +20,7 @@ fn run(set_location: &str, set_cookies: &[&str], final_location: &str) -> String
let header = Header::parse_header(&[bytes]);
if let Ok(SetCookie(cookies)) = header {
for bare_cookie in cookies {
if let Some(cookie) = Cookie::new_wrapped(bare_cookie, &url, source) {
if let Some(cookie) = Cookie::from_cookie_string(bare_cookie, &url, source) {
storage.push(cookie, &url, source);
}
}

View file

@ -18,10 +18,10 @@ use hyper::header::{Encoding, Location, Pragma, Quality, QualityItem, SetCookie,
use hyper::header::{Headers, Host, HttpDate, Referer as HyperReferer};
use hyper::method::Method;
use hyper::mime::{Mime, SubLevel, TopLevel};
use hyper::net::Openssl;
use hyper::server::{Request as HyperRequest, Response as HyperResponse, Server};
use hyper::status::StatusCode;
use hyper::uri::RequestUri;
use hyper_openssl;
use msg::constellation_msg::TEST_PIPELINE_ID;
use net::fetch::cors_cache::CorsCache;
use net::fetch::methods::FetchContext;
@ -524,9 +524,10 @@ fn test_fetch_with_hsts() {
let mut key_path = path.clone();
key_path.push("privatekey_for_testing.key");
let ssl = Openssl::with_cert_and_key(cert_path.into_os_string(), key_path.into_os_string())
let ssl = hyper_openssl::OpensslServer::from_files(key_path, cert_path)
.unwrap();
//takes an address and something that implements hyper::net::Ssl
let mut server = Server::https("0.0.0.0:0", ssl).unwrap().handle_threads(handler, 1).unwrap();
let context = FetchContext {

View file

@ -511,7 +511,7 @@ fn test_load_doesnt_add_host_to_sts_list_when_url_is_http_even_if_sts_headers_ar
#[test]
fn test_load_sets_cookies_in_the_resource_manager_when_it_get_set_cookie_header_in_response() {
let handler = move |_: HyperRequest, mut response: HyperResponse| {
response.headers_mut().set(SetCookie(vec![CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned())]));
response.headers_mut().set(SetCookie(vec!["mozillaIs=theBest".to_owned()]));
response.send(b"Yay!").unwrap();
};
let (mut server, url) = make_server(handler);
@ -543,7 +543,7 @@ fn test_load_sets_cookies_in_the_resource_manager_when_it_get_set_cookie_header_
fn test_load_sets_requests_cookies_header_for_url_by_getting_cookies_from_the_resource_manager() {
let handler = move |request: HyperRequest, response: HyperResponse| {
assert_eq!(request.headers.get::<CookieHeader>(),
Some(&CookieHeader(vec![CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned())])));
Some(&CookieHeader(vec!["mozillaIs=theBest".to_owned()])));
response.send(b"Yay!").unwrap();
};
let (mut server, url) = make_server(handler);
@ -581,7 +581,7 @@ fn test_load_sets_requests_cookies_header_for_url_by_getting_cookies_from_the_re
fn test_load_sends_cookie_if_nonhttp() {
let handler = move |request: HyperRequest, response: HyperResponse| {
assert_eq!(request.headers.get::<CookieHeader>(),
Some(&CookieHeader(vec![CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned())])));
Some(&CookieHeader(vec!["mozillaIs=theBest".to_owned()])));
response.send(b"Yay!").unwrap();
};
let (mut server, url) = make_server(handler);
@ -618,9 +618,8 @@ fn test_load_sends_cookie_if_nonhttp() {
#[test]
fn test_cookie_set_with_httponly_should_not_be_available_using_getcookiesforurl() {
let handler = move |_: HyperRequest, mut response: HyperResponse| {
let mut pair = CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned());
pair.httponly = true;
response.headers_mut().set(SetCookie(vec![pair]));
let pair = vec!["mozillaIs=theBest; HttpOnly".to_owned()];
response.headers_mut().set(SetCookie(pair));
response.send(b"Yay!").unwrap();
};
let (mut server, url) = make_server(handler);
@ -653,9 +652,8 @@ fn test_cookie_set_with_httponly_should_not_be_available_using_getcookiesforurl(
#[test]
fn test_when_cookie_received_marked_secure_is_ignored_for_http() {
let handler = move |_: HyperRequest, mut response: HyperResponse| {
let mut pair = CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned());
pair.secure = true;
response.headers_mut().set(SetCookie(vec![pair]));
let pair = vec!["mozillaIs=theBest; Secure".to_owned()];
response.headers_mut().set(SetCookie(pair));
response.send(b"Yay!").unwrap();
};
let (mut server, url) = make_server(handler);
@ -951,14 +949,14 @@ fn test_redirect_from_x_to_y_provides_y_cookies_from_y() {
};
if path == "/com/" {
assert_eq!(request.headers.get(),
Some(&CookieHeader(vec![CookiePair::new("mozillaIsNot".to_owned(), "dotOrg".to_owned())])));
Some(&CookieHeader(vec!["mozillaIsNot=dotOrg".to_owned()])));
let location = shared_url_y.lock().unwrap().as_ref().unwrap().to_string();
response.headers_mut().set(Location(location));
*response.status_mut() = StatusCode::MovedPermanently;
response.send(b"").unwrap();
} else if path == "/org/" {
assert_eq!(request.headers.get(),
Some(&CookieHeader(vec![CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned())])));
Some(&CookieHeader(vec!["mozillaIs=theBest".to_owned()])));
response.send(b"Yay!").unwrap();
} else {
panic!("unexpected path {:?}", path)
@ -1032,7 +1030,7 @@ fn test_redirect_from_x_to_x_provides_x_with_cookie_from_first_response() {
response.send(b"").unwrap();
} else if path == "/subsequent/" {
assert_eq!(request.headers.get(),
Some(&CookieHeader(vec![CookiePair::new("mozillaIs".to_owned(), "theBest".to_owned())])));
Some(&CookieHeader(vec!["mozillaIs=theBest".to_owned()])));
response.send(b"Yay!").unwrap();
} else {
panic!("unexpected path {:?}", path)

View file

@ -6,6 +6,7 @@ extern crate cookie as cookie_rs;
extern crate devtools_traits;
extern crate flate2;
extern crate hyper;
extern crate hyper_openssl;
extern crate hyper_serde;
extern crate ipc_channel;
extern crate msg;