diff --git a/components/net/tests/http_cache.rs b/components/net/tests/http_cache.rs index fceec1aadc73..743e6f431889 100644 --- a/components/net/tests/http_cache.rs +++ b/components/net/tests/http_cache.rs @@ -2,48 +2,49 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use hyper::header::{Expires, HttpDate}; -use hyper::method::Method; -use hyper::status::StatusCode; +use crossbeam_channel::unbounded; +use http::header::{HeaderValue, EXPIRES}; +use http::StatusCode; use msg::constellation_msg::TEST_PIPELINE_ID; use net::http_cache::HttpCache; -use net_traits::request::{Destination, Request, RequestInit}; +use net_traits::request::{Origin, Request}; use net_traits::response::{Response, ResponseBody}; +use net_traits::{ResourceFetchTiming, ResourceTimingType}; use servo_url::ServoUrl; -use std::sync::mpsc::channel; - #[test] fn test_refreshing_resource_sets_done_chan_the_appropriate_value() { - let response_bodies = vec![ResponseBody::Receiving(vec![]), - ResponseBody::Empty, - ResponseBody::Done(vec![])]; + let response_bodies = vec![ + ResponseBody::Receiving(vec![]), + ResponseBody::Empty, + ResponseBody::Done(vec![]), + ]; let url = ServoUrl::parse("https://servo.org").unwrap(); - let request = Request::from_init(RequestInit { - url: url.clone(), - method: Method::Get, - destination: Destination::Document, - origin: url.clone().origin(), - pipeline_id: Some(TEST_PIPELINE_ID), - .. RequestInit::default() - }); - let mut response = Response::new(url.clone()); + let request = Request::new( + url.clone(), + Some(Origin::Origin(url.clone().origin())), + Some(TEST_PIPELINE_ID), + ); + let timing = ResourceFetchTiming::new(ResourceTimingType::Navigation); + let mut response = Response::new(url.clone(), timing); // Expires header makes the response cacheable. - response.headers.set(Expires(HttpDate(time::now()))); + response + .headers + .insert(EXPIRES, HeaderValue::from_str("-10").unwrap()); + let mut cache = HttpCache::new(); response_bodies.iter().for_each(|body| { - let mut cache = HttpCache::new(); - *response.body.lock().unwrap() = body; + *response.body.lock().unwrap() = body.clone(); // First, store the 'normal' response. cache.store(&request, &response); // Second, mutate the response into a 304 response, and refresh the stored one. - response.status = Some(StatusCode::NotModified); - let mut done_chan = Some(channel()); - let refreshed_response = cache.refresh(&request, response, &mut done_chan); + response.status = Some((StatusCode::NOT_MODIFIED, String::from("304"))); + let mut done_chan = Some(unbounded()); + let refreshed_response = cache.refresh(&request, response.clone(), &mut done_chan); // Ensure a resource was found, and refreshed. assert!(refreshed_response.is_some()); match body { ResponseBody::Receiving(_) => assert!(done_chan.is_some()), - ResponseBody::Empty | ResponseBody::Done(_) => assert!(done_chan.is_none()) + ResponseBody::Empty | ResponseBody::Done(_) => assert!(done_chan.is_none()), } }) } diff --git a/components/net/tests/main.rs b/components/net/tests/main.rs index 1580eb8310ad..d473ee2368ea 100644 --- a/components/net/tests/main.rs +++ b/components/net/tests/main.rs @@ -14,6 +14,7 @@ mod fetch; mod file_loader; mod filemanager_thread; mod hsts; +mod http_cache; mod http_loader; mod mime_classifier; mod resource_thread;