aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/tests/http_cache.rs
diff options
context:
space:
mode:
authorGregory Terzian <gterzian@users.noreply.github.com>2019-06-22 06:28:32 -0700
committerGregory Terzian <gterzian@users.noreply.github.com>2019-06-22 06:28:32 -0700
commit689b7971b82b6268de3c4eaff2d54dfc77910088 (patch)
treed3943c1eab02b9749159de9cc442b86fc294cd83 /components/net/tests/http_cache.rs
parent67494d477667001910148647b03118534b7d7f82 (diff)
downloadservo-689b7971b82b6268de3c4eaff2d54dfc77910088.tar.gz
servo-689b7971b82b6268de3c4eaff2d54dfc77910088.zip
http-cache: re-enable and update test
Diffstat (limited to 'components/net/tests/http_cache.rs')
-rw-r--r--components/net/tests/http_cache.rs51
1 files changed, 26 insertions, 25 deletions
diff --git a/components/net/tests/http_cache.rs b/components/net/tests/http_cache.rs
index fceec1aadc7..743e6f43188 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()),
}
})
}