diff options
author | Stjepan Glavina <stjepang@gmail.com> | 2016-03-24 11:17:12 +0100 |
---|---|---|
committer | Stjepan Glavina <stjepang@gmail.com> | 2016-03-24 11:17:12 +0100 |
commit | bcd813d961c829afca90b246fcd73a87c48c1f5f (patch) | |
tree | dfa21666bd956e805ff8d87c81cb2c59395e8c49 /tests | |
parent | ef8d36d208abeaf8396abe940a32263620966a72 (diff) | |
download | servo-bcd813d961c829afca90b246fcd73a87c48c1f5f.tar.gz servo-bcd813d961c829afca90b246fcd73a87c48c1f5f.zip |
Fix fetching about:blank
When fetching about:blank, response body should be the empty byte
sequence.
Spec: https://fetch.spec.whatwg.org/#concept-basic-fetch
Before this change, response body would be set to `ResponseBody::Empty`,
and then fetching would result in an infinite loop at step 19 in fn
`main_fetch` (methods.rs).
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/net/fetch.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/unit/net/fetch.rs b/tests/unit/net/fetch.rs index 010d49e5732..1a6168f77d6 100644 --- a/tests/unit/net/fetch.rs +++ b/tests/unit/net/fetch.rs @@ -95,6 +95,20 @@ fn test_fetch_response_body_matches_const_message() { } #[test] +fn test_fetch_aboutblank() { + + let url = Url::parse("about:blank").unwrap(); + let origin = Origin::Origin(url.origin()); + let mut request = Request::new(url, Some(origin), false); + request.referer = Referer::NoReferer; + let wrapped_request = Rc::new(request); + + let fetch_response = fetch(wrapped_request); + assert!(!fetch_response.is_network_error()); + assert!(*fetch_response.body.lock().unwrap() == ResponseBody::Done(vec![])); +} + +#[test] fn test_fetch_response_is_basic_filtered() { static MESSAGE: &'static [u8] = b""; |