Lines Matching +full:url +full:- +full:parse
1 // Copyright 2013-2014 The rust-url developers.
3 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
5 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9 //! Data-driven tests
14 use url::{quirks, Url};
31 // Copied from https://github.com/web-platform-tests/wpt/blob/master/url/ in urltestdata()
33 .expect("JSON parse error in urltestdata.json"); in urltestdata()
55 let base = match Url::parse(&base) { in urltestdata()
61 &format!("parse base for {:?}", input), in urltestdata()
70 Url::parse(&input) in urltestdata()
73 let url = match (res, failure) { in urltestdata() localVariable
74 (Ok(url), false) => url, in urltestdata()
79 &format!("parse URL for {:?}", input), in urltestdata()
87 format!(" failed: expected parse error for URL {:?}", input), in urltestdata()
88 &format!("parse URL for {:?}", input), in urltestdata()
96 passed &= check_invariants(&url, &format!("invariants for {:?}", input), None); in urltestdata()
101 get(&url, attr), in urltestdata()
102 &format!("{:?} - {}", input, attr), in urltestdata()
110 &quirks::origin(&url), in urltestdata()
123 .expect("JSON parse error in setters_tests.json"); in setters_tests()
146 let mut url = Url::parse(&href).unwrap(); in setters_tests() localVariable
148 passed &= check_invariants(&url, &name, comment_ref); in setters_tests()
149 set(&mut url, attr, &new_value); in setters_tests()
153 passed &= test_eq_eprint(value.string(), get(&url, attr), &name, comment_ref); in setters_tests()
157 passed &= check_invariants(&url, &name, comment_ref); in setters_tests()
164 fn check_invariants(url: &Url, name: &str, comment: Option<&str>) -> bool { in check_invariants() argument
166 if let Err(e) = url.check_invariants() { in check_invariants()
169 format!(" failed: invariants checked -> {:?}", e), in check_invariants()
177 let bytes = serde_json::to_vec(url).unwrap(); in check_invariants()
178 let new_url: Url = serde_json::from_slice(&bytes).unwrap(); in check_invariants()
179 passed &= test_eq_eprint(url.to_string(), &new_url.to_string(), name, comment); in check_invariants()
186 fn take_key(&mut self, key: &str) -> Option<Value>; in take_key()
187 fn string(self) -> String; in string()
188 fn maybe_string(self) -> Option<String>; in maybe_string()
189 fn take_string(&mut self, key: &str) -> String; in take_string()
193 fn take_key(&mut self, key: &str) -> Option<Value> { in take_key()
197 fn string(self) -> String { in string()
201 fn maybe_string(self) -> Option<String> { in maybe_string()
209 fn take_string(&mut self, key: &str) -> String { in take_string()
214 fn get<'a>(url: &'a Url, attr: &str) -> &'a str { in get() argument
216 "href" => quirks::href(url), in get()
217 "protocol" => quirks::protocol(url), in get()
218 "username" => quirks::username(url), in get()
219 "password" => quirks::password(url), in get()
220 "hostname" => quirks::hostname(url), in get()
221 "host" => quirks::host(url), in get()
222 "port" => quirks::port(url), in get()
223 "pathname" => quirks::pathname(url), in get()
224 "search" => quirks::search(url), in get()
225 "hash" => quirks::hash(url), in get()
231 fn set<'a>(url: &'a mut Url, attr: &str, new: &str) { in set() argument
233 "protocol" => quirks::set_protocol(url, new), in set()
234 "username" => quirks::set_username(url, new), in set()
235 "password" => quirks::set_password(url, new), in set()
236 "hostname" => quirks::set_hostname(url, new), in set()
237 "host" => quirks::set_host(url, new), in set()
238 "port" => quirks::set_port(url, new), in set()
239 "pathname" => Ok(quirks::set_pathname(url, new)), in set()
240 "search" => Ok(quirks::set_search(url, new)), in set()
241 "hash" => Ok(quirks::set_hash(url, new)), in set()
246 fn test_eq_eprint(expected: String, actual: &str, name: &str, comment: Option<&str>) -> bool { in test_eq_eprint()