aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/tests
diff options
context:
space:
mode:
Diffstat (limited to 'components/net/tests')
-rw-r--r--components/net/tests/data_loader.rs18
-rw-r--r--components/net/tests/fetch.rs297
-rw-r--r--components/net/tests/http_cache.rs15
-rw-r--r--components/net/tests/http_loader.rs6
-rw-r--r--components/net/tests/main.rs6
5 files changed, 97 insertions, 245 deletions
diff --git a/components/net/tests/data_loader.rs b/components/net/tests/data_loader.rs
index 198fe19709c..034e75bbd82 100644
--- a/components/net/tests/data_loader.rs
+++ b/components/net/tests/data_loader.rs
@@ -7,8 +7,8 @@ use std::ops::Deref;
use headers::{ContentType, HeaderMapExt};
use hyper_serde::Serde;
use mime::{self, Mime};
-use net_traits::request::{Origin, Referrer, Request};
-use net_traits::response::{HttpsState, ResponseBody};
+use net_traits::request::Referrer;
+use net_traits::response::ResponseBody;
use net_traits::{FetchMetadata, FilteredMetadata, NetworkError};
use servo_url::ServoUrl;
@@ -21,15 +21,13 @@ fn assert_parse(
charset: Option<&str>,
data: Option<&[u8]>,
) {
+ use net_traits::request::RequestBuilder;
+
let url = ServoUrl::parse(url).unwrap();
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .pipeline_id(None)
+ .build();
let response = fetch(&mut request, None);
diff --git a/components/net/tests/fetch.rs b/components/net/tests/fetch.rs
index bc0d19a5b9a..81321770a4e 100644
--- a/components/net/tests/fetch.rs
+++ b/components/net/tests/fetch.rs
@@ -33,15 +33,15 @@ use net::test::HttpState;
use net_traits::filemanager_thread::FileTokenCheck;
use net_traits::http_status::HttpStatus;
use net_traits::request::{
- Destination, Origin, RedirectMode, Referrer, Request, RequestBuilder, RequestMode,
+ Destination, RedirectMode, Referrer, Request, RequestBuilder, RequestMode,
};
-use net_traits::response::{CacheState, HttpsState, Response, ResponseBody, ResponseType};
+use net_traits::response::{CacheState, Response, ResponseBody, ResponseType};
use net_traits::{
FetchTaskTarget, IncludeSubdomains, NetworkError, ReferrerPolicy, ResourceFetchTiming,
ResourceTimingType,
};
use servo_arc::Arc as ServoArc;
-use servo_url::{ImmutableOrigin, ServoUrl};
+use servo_url::ServoUrl;
use tokio_test::block_on;
use uuid::Uuid;
@@ -61,14 +61,9 @@ fn test_fetch_response_is_not_network_error() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -80,14 +75,9 @@ fn test_fetch_response_is_not_network_error() {
#[test]
fn test_fetch_on_bad_port_is_network_error() {
let url = ServoUrl::parse("http://www.example.org:6667").unwrap();
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
assert!(fetch_response.is_network_error());
let fetch_error = fetch_response.get_network_error().unwrap();
@@ -105,14 +95,9 @@ fn test_fetch_response_body_matches_const_message() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -130,14 +115,9 @@ fn test_fetch_response_body_matches_const_message() {
#[test]
fn test_fetch_aboutblank() {
let url = ServoUrl::parse("about:blank").unwrap();
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
// We should see an opaque-filtered response.
@@ -168,12 +148,12 @@ fn test_fetch_blob() {
impl FetchTaskTarget for FetchResponseCollector {
fn process_request_body(&mut self, _: &Request) {}
fn process_request_eof(&mut self, _: &Request) {}
- fn process_response(&mut self, _: &Response) {}
- fn process_response_chunk(&mut self, chunk: Vec<u8>) {
+ fn process_response(&mut self, _: &Request, _: &Response) {}
+ fn process_response_chunk(&mut self, _: &Request, chunk: Vec<u8>) {
self.buffer.extend_from_slice(chunk.as_slice());
}
/// Fired when the response is fully fetched
- fn process_response_eof(&mut self, response: &Response) {
+ fn process_response_eof(&mut self, _: &Request, response: &Response) {
assert_eq!(self.buffer, self.expected);
let _ = self.sender.send(response.clone());
}
@@ -200,13 +180,9 @@ fn test_fetch_blob() {
);
let url = ServoUrl::parse(&format!("blob:{}{}", origin.as_str(), id.simple())).unwrap();
- let mut request = Request::new(
- url,
- Some(Origin::Origin(origin.origin())),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(origin.origin())
+ .build();
let (sender, receiver) = unbounded();
@@ -246,14 +222,9 @@ fn test_file() {
.unwrap();
let url = ServoUrl::from_file_path(path.clone()).unwrap();
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let pool = CoreResourceThreadPool::new(1);
let pool_handle = Arc::new(pool);
@@ -294,14 +265,9 @@ fn test_file() {
#[test]
fn test_fetch_ftp() {
let url = ServoUrl::parse("ftp://not-supported").unwrap();
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
assert!(fetch_response.is_network_error());
}
@@ -309,14 +275,9 @@ fn test_fetch_ftp() {
#[test]
fn test_fetch_bogus_scheme() {
let url = ServoUrl::parse("bogus://whatever").unwrap();
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
assert!(fetch_response.is_network_error());
}
@@ -360,15 +321,7 @@ fn test_cors_preflight_fetch() {
let (server, url) = make_server(handler);
let target_url = url.clone().join("a.html").unwrap();
-
- let origin = Origin::Origin(ImmutableOrigin::new_opaque());
- let mut request = Request::new(
- url.clone(),
- Some(origin),
- Referrer::ReferrerUrl(target_url),
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url, Referrer::ReferrerUrl(target_url)).build();
request.referrer_policy = Some(ReferrerPolicy::Origin);
request.use_cors_preflight = true;
request.mode = RequestMode::CorsMode;
@@ -418,14 +371,7 @@ fn test_cors_preflight_cache_fetch() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(ImmutableOrigin::new_opaque());
- let mut request = Request::new(
- url.clone(),
- Some(origin.clone()),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build();
request.use_cors_preflight = true;
request.mode = RequestMode::CorsMode;
let mut wrapped_request0 = request.clone();
@@ -485,14 +431,7 @@ fn test_cors_preflight_fetch_network_error() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(ImmutableOrigin::new_opaque());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build();
request.method = Method::from_bytes(b"CHICKEN").unwrap();
request.use_cors_preflight = true;
request.mode = RequestMode::CorsMode;
@@ -519,14 +458,9 @@ fn test_fetch_response_is_basic_filtered() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -587,14 +521,7 @@ fn test_fetch_response_is_cors_filtered() {
let (server, url) = make_server(handler);
// an origin mis-match will stop it from defaulting to a basic filtered response
- let origin = Origin::Origin(ImmutableOrigin::new_opaque());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build();
request.mode = RequestMode::CorsMode;
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -626,14 +553,7 @@ fn test_fetch_response_is_opaque_filtered() {
let (server, url) = make_server(handler);
// an origin mis-match will fall through to an Opaque filtered response
- let origin = Origin::Origin(ImmutableOrigin::new_opaque());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -679,14 +599,9 @@ fn test_fetch_response_is_opaque_redirect_filtered() {
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
request.redirect_mode = RedirectMode::Manual;
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -718,14 +633,9 @@ fn test_fetch_with_local_urls_only() {
let (server, server_url) = make_server(handler);
let do_fetch = |url: ServoUrl| {
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
// Set the flag.
request.local_urls_only = true;
@@ -786,14 +696,9 @@ fn test_fetch_with_hsts() {
HstsEntry::new("localhost".to_owned(), IncludeSubdomains::NotIncluded, None).unwrap(),
);
}
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
// Set the flag.
request.local_urls_only = false;
let response = fetch_with_context(&mut request, &mut context);
@@ -935,14 +840,9 @@ fn test_fetch_with_sri_network_error() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
// To calulate hash use :
// echo -n "alert('Hello, Network Error');" | openssl dgst -sha384 -binary | openssl base64 -A
request.integrity_metadata =
@@ -964,14 +864,9 @@ fn test_fetch_with_sri_sucess() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
// To calulate hash use :
// echo -n "alert('Hello, Network Error');" | openssl dgst -sha384 -binary | openssl base64 -A
request.integrity_metadata =
@@ -1009,15 +904,10 @@ fn test_fetch_blocked_nosniff() {
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
- request.destination = destination;
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .destination(destination)
+ .build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -1059,14 +949,9 @@ fn setup_server_and_fetch(message: &'static [u8], redirect_cap: u32) -> Response
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
fetch_response
@@ -1152,15 +1037,10 @@ fn test_fetch_redirect_updates_method_runner(
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
- request.method = method;
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .method(method)
+ .build();
let _ = fetch(&mut request, None);
let _ = server.close();
@@ -1240,15 +1120,9 @@ fn test_fetch_async_returns_complete_response() {
};
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
-
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -1264,15 +1138,7 @@ fn test_opaque_filtered_fetch_async_returns_complete_response() {
let (server, url) = make_server(handler);
// an origin mis-match will fall through to an Opaque filtered response
- let origin = Origin::Origin(ImmutableOrigin::new_opaque());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
-
+ let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build();
let fetch_response = fetch(&mut request, None);
let _ = server.close();
@@ -1304,16 +1170,10 @@ fn test_opaque_redirect_filtered_fetch_async_returns_complete_response() {
};
let (server, url) = make_server(handler);
-
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url,
- Some(origin),
- Referrer::NoReferrer,
- None,
- HttpsState::None,
- );
- request.redirect_mode = RedirectMode::Manual;
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .redirect_mode(RedirectMode::Manual)
+ .build();
let fetch_response = fetch(&mut request, None);
@@ -1333,14 +1193,11 @@ fn test_fetch_with_devtools() {
let (server, url) = make_server(handler);
- let origin = Origin::Origin(url.origin());
- let mut request = Request::new(
- url.clone(),
- Some(origin),
- Referrer::NoReferrer,
- Some(TEST_PIPELINE_ID),
- HttpsState::None,
- );
+ let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .origin(url.origin())
+ .redirect_mode(RedirectMode::Manual)
+ .pipeline_id(Some(TEST_PIPELINE_ID))
+ .build();
let (devtools_chan, devtools_port) = unbounded();
diff --git a/components/net/tests/http_cache.rs b/components/net/tests/http_cache.rs
index 9900295c891..478e452213b 100644
--- a/components/net/tests/http_cache.rs
+++ b/components/net/tests/http_cache.rs
@@ -6,8 +6,8 @@ use base::id::TEST_PIPELINE_ID;
use http::header::{HeaderValue, EXPIRES};
use http::StatusCode;
use net::http_cache::HttpCache;
-use net_traits::request::{Origin, Referrer, Request};
-use net_traits::response::{HttpsState, Response, ResponseBody};
+use net_traits::request::{Referrer, RequestBuilder};
+use net_traits::response::{Response, ResponseBody};
use net_traits::{ResourceFetchTiming, ResourceTimingType};
use servo_url::ServoUrl;
use tokio::sync::mpsc::unbounded_channel as unbounded;
@@ -20,13 +20,10 @@ fn test_refreshing_resource_sets_done_chan_the_appropriate_value() {
ResponseBody::Done(vec![]),
];
let url = ServoUrl::parse("https://servo.org").unwrap();
- let request = Request::new(
- url.clone(),
- Some(Origin::Origin(url.clone().origin())),
- Referrer::NoReferrer,
- Some(TEST_PIPELINE_ID),
- HttpsState::None,
- );
+ let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer)
+ .pipeline_id(Some(TEST_PIPELINE_ID))
+ .origin(url.origin())
+ .build();
let timing = ResourceFetchTiming::new(ResourceTimingType::Navigation);
let mut response = Response::new(url.clone(), timing);
// Expires header makes the response cacheable.
diff --git a/components/net/tests/http_loader.rs b/components/net/tests/http_loader.rs
index fac0101baba..bfa87f5df20 100644
--- a/components/net/tests/http_loader.rs
+++ b/components/net/tests/http_loader.rs
@@ -1426,12 +1426,12 @@ fn test_fetch_compressed_response_update_count() {
impl FetchTaskTarget for FetchResponseCollector {
fn process_request_body(&mut self, _: &Request) {}
fn process_request_eof(&mut self, _: &Request) {}
- fn process_response(&mut self, _: &Response) {}
- fn process_response_chunk(&mut self, _: Vec<u8>) {
+ fn process_response(&mut self, _: &Request, _: &Response) {}
+ fn process_response_chunk(&mut self, _: &Request, _: Vec<u8>) {
self.update_count += 1;
}
/// Fired when the response is fully fetched
- fn process_response_eof(&mut self, _: &Response) {
+ fn process_response_eof(&mut self, _: &Request, _: &Response) {
let _ = self.sender.send(self.update_count);
}
}
diff --git a/components/net/tests/main.rs b/components/net/tests/main.rs
index ae86c749d10..010898c2f83 100644
--- a/components/net/tests/main.rs
+++ b/components/net/tests/main.rs
@@ -121,10 +121,10 @@ fn new_fetch_context(
impl FetchTaskTarget for FetchResponseCollector {
fn process_request_body(&mut self, _: &Request) {}
fn process_request_eof(&mut self, _: &Request) {}
- fn process_response(&mut self, _: &Response) {}
- fn process_response_chunk(&mut self, _: Vec<u8>) {}
+ fn process_response(&mut self, _: &Request, _: &Response) {}
+ fn process_response_chunk(&mut self, _: &Request, _: Vec<u8>) {}
/// Fired when the response is fully fetched
- fn process_response_eof(&mut self, response: &Response) {
+ fn process_response_eof(&mut self, _: &Request, response: &Response) {
let _ = self.sender.send(response.clone());
}
}