Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the fetch target non-optional. #14465

Merged
merged 9 commits into from Dec 15, 2016

Use the asynchronous fetching code in unit tests.

This is the only code that is used in Servo proper, so it's a more useful
thing to test.
  • Loading branch information
Ms2ger committed Dec 15, 2016
commit a5efc01b5f6b9654b1bac4ebf63bd2627b665f3b
@@ -2,7 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use fetch_sync;
use fetch;
use hyper::header::ContentType;
use hyper::mime::{Attr, Mime, SubLevel, TopLevel, Value};
use hyper_serde::Serde;
@@ -21,7 +21,7 @@ fn assert_parse(url: &'static str,
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);

let response = fetch_sync(request, None);
let response = fetch(request, None);

match data {
Some(data) => {
@@ -2,7 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use {DEFAULT_USER_AGENT, new_fetch_context, fetch, fetch_sync, make_server};
use {DEFAULT_USER_AGENT, new_fetch_context, fetch, make_server};
use devtools_traits::DevtoolsControlMsg;
use devtools_traits::HttpRequest as DevtoolsHttpRequest;
use devtools_traits::HttpResponse as DevtoolsHttpResponse;
@@ -51,7 +51,7 @@ fn test_fetch_response_is_not_network_error() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

if fetch_response.is_network_error() {
@@ -70,7 +70,7 @@ fn test_fetch_response_body_matches_const_message() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(!fetch_response.is_network_error());
@@ -90,7 +90,7 @@ fn test_fetch_aboutblank() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
assert!(!fetch_response.is_network_error());
assert!(*fetch_response.body.lock().unwrap() == ResponseBody::Done(vec![]));
}
@@ -144,7 +144,7 @@ fn test_fetch_file() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);

let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
assert!(!fetch_response.is_network_error());
assert_eq!(fetch_response.headers.len(), 1);
let content_type: &ContentType = fetch_response.headers.get().unwrap();
@@ -169,7 +169,7 @@ fn test_fetch_ftp() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
assert!(fetch_response.is_network_error());
}

@@ -179,7 +179,7 @@ fn test_fetch_bogus_scheme() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
assert!(fetch_response.is_network_error());
}

@@ -210,7 +210,7 @@ fn test_cors_preflight_fetch() {
*request.referrer_policy.get_mut() = Some(ReferrerPolicy::Origin);
request.use_cors_preflight = true;
request.mode = RequestMode::CorsMode;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(!fetch_response.is_network_error());
@@ -299,7 +299,7 @@ fn test_cors_preflight_fetch_network_error() {
*request.referrer.borrow_mut() = Referrer::NoReferrer;
request.use_cors_preflight = true;
request.mode = RequestMode::CorsMode;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(fetch_response.is_network_error());
@@ -320,7 +320,7 @@ fn test_fetch_response_is_basic_filtered() {
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(!fetch_response.is_network_error());
@@ -366,7 +366,7 @@ fn test_fetch_response_is_cors_filtered() {
let mut request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
request.mode = RequestMode::CorsMode;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(!fetch_response.is_network_error());
@@ -397,7 +397,7 @@ fn test_fetch_response_is_opaque_filtered() {
let origin = Origin::Origin(UrlOrigin::new_opaque());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(!fetch_response.is_network_error());
@@ -445,7 +445,7 @@ fn test_fetch_response_is_opaque_redirect_filtered() {
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
request.redirect_mode.set(RedirectMode::Manual);
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();

assert!(!fetch_response.is_network_error());
@@ -482,7 +482,7 @@ fn test_fetch_with_local_urls_only() {
// Set the flag.
request.local_urls_only = true;

fetch_sync(request, None)
fetch(request, None)
};

let local_url = ServoUrl::parse("about:blank").unwrap();
@@ -519,7 +519,7 @@ fn setup_server_and_fetch(message: &'static [u8], redirect_cap: u32) -> Response
let origin = Origin::Origin(url.origin());
let request = Request::new(url, Some(origin), false, None);
*request.referrer.borrow_mut() = Referrer::NoReferrer;
let fetch_response = fetch_sync(request, None);
let fetch_response = fetch(request, None);
let _ = server.close();
fetch_response
}
@@ -604,7 +604,7 @@ fn test_fetch_redirect_updates_method_runner(tx: Sender<bool>, status_code: Stat
*request.referrer.borrow_mut() = Referrer::NoReferrer;
*request.method.borrow_mut() = method;

let _ = fetch_sync(request, None);
let _ = fetch(request, None);
let _ = server.close();
}

@@ -757,7 +757,7 @@ fn test_fetch_with_devtools() {

let (devtools_chan, devtools_port) = channel::<DevtoolsControlMsg>();

let _ = fetch_sync(request, Some(devtools_chan));
let _ = fetch(request, Some(devtools_chan));
let _ = server.close();

// notification received from devtools
@@ -7,7 +7,7 @@ use cookie_rs::Cookie as CookiePair;
use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg, NetworkEvent};
use devtools_traits::HttpRequest as DevtoolsHttpRequest;
use devtools_traits::HttpResponse as DevtoolsHttpResponse;
use fetch_sync;
use fetch;
use fetch_with_context;
use flate2::Compression;
use flate2::write::{DeflateEncoder, GzEncoder};
@@ -142,7 +142,7 @@ fn test_check_default_headers_loaded_in_every_request() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);
assert!(response.status.unwrap().is_success());

// Testing for method.POST
@@ -156,7 +156,7 @@ fn test_check_default_headers_loaded_in_every_request() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);
assert!(response.status.unwrap().is_success());

let _ = server.close();
@@ -178,7 +178,7 @@ fn test_load_when_request_is_not_get_or_head_and_there_is_no_body_content_length
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);
assert!(response.status.unwrap().is_success());

let _ = server.close();
@@ -205,7 +205,7 @@ fn test_request_and_response_data_with_network_messages() {
.. RequestInit::default()
});
let (devtools_chan, devtools_port) = mpsc::channel();
let response = fetch_sync(request, Some(devtools_chan));
let response = fetch(request, Some(devtools_chan));
assert!(response.status.unwrap().is_success());

let _ = server.close();
@@ -292,7 +292,7 @@ fn test_request_and_response_message_from_devtool_without_pipeline_id() {
.. RequestInit::default()
});
let (devtools_chan, devtools_port) = mpsc::channel();
let response = fetch_sync(request, Some(devtools_chan));
let response = fetch(request, Some(devtools_chan));
assert!(response.status.unwrap().is_success());

let _ = server.close();
@@ -327,7 +327,7 @@ fn test_redirected_request_to_devtools() {
.. RequestInit::default()
});
let (devtools_chan, devtools_port) = mpsc::channel();
let response = fetch_sync(request, Some(devtools_chan));
let response = fetch(request, Some(devtools_chan));

let _ = pre_server.close();
let _ = post_server.close();
@@ -374,7 +374,7 @@ fn test_load_when_redirecting_from_a_post_should_rewrite_next_request_as_get() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = pre_server.close();
let _ = post_server.close();
@@ -402,7 +402,7 @@ fn test_load_should_decode_the_response_as_deflate_when_response_headers_have_co
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -431,7 +431,7 @@ fn test_load_should_decode_the_response_as_gzip_when_response_headers_have_conte
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -469,7 +469,7 @@ fn test_load_doesnt_send_request_body_on_any_redirect() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = pre_server.close();
let _ = post_server.close();
@@ -697,7 +697,7 @@ fn test_load_sets_content_length_to_length_of_request_body() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -725,7 +725,7 @@ fn test_load_uses_explicit_accept_from_headers_in_load_data() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -752,7 +752,7 @@ fn test_load_sets_default_accept_to_html_xhtml_xml_and_then_anything_else() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -780,7 +780,7 @@ fn test_load_uses_explicit_accept_encoding_from_load_data_headers() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -807,7 +807,7 @@ fn test_load_sets_default_accept_encoding_to_gzip_and_deflate() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -843,7 +843,7 @@ fn test_load_errors_when_there_a_redirect_loop() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server_a.close();
let _ = server_b.close();
@@ -886,7 +886,7 @@ fn test_load_succeeds_with_a_redirect_loop() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server_a.close();
let _ = server_b.close();
@@ -923,7 +923,7 @@ fn test_load_follows_a_redirect() {
pipeline_id: Some(TEST_PIPELINE_ID),
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = pre_server.close();
let _ = post_server.close();
@@ -1045,7 +1045,7 @@ fn test_redirect_from_x_to_x_provides_x_with_cookie_from_first_response() {
credentials_mode: CredentialsMode::Include,
.. RequestInit::default()
});
let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -1112,7 +1112,7 @@ fn test_auth_ui_needs_www_auth() {
.. RequestInit::default()
});

let response = fetch_sync(request, None);
let response = fetch(request, None);

let _ = server.close();

@@ -82,10 +82,6 @@ fn fetch(request: Request, dc: Option<Sender<DevtoolsControlMsg>>) -> Response {
receiver.recv().unwrap()
}

fn fetch_sync(request: Request, dc: Option<Sender<DevtoolsControlMsg>>) -> Response {
fetch_with_context(request, &new_fetch_context(dc))
}

fn fetch_with_context(request: Request, context: &FetchContext) -> Response {
methods::fetch(Rc::new(request), &mut None, context)
}
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.