Fix extra::url::to_str to include the port.

Fixes #9451.
Fixes chris-morgan/rust-http#16.
This commit is contained in:
Chris Morgan 2013-10-19 00:25:03 +11:00
parent 71c3f8c20c
commit 1093730d72

View File

@ -671,9 +671,13 @@ pub fn to_str(url: &Url) -> ~str {
};
let authority = if url.host.is_empty() {
// If port is Some, we're in a nonsensical situation. Too bad.
~""
} else {
format!("//{}{}", user, url.host)
match url.port {
Some(ref port) => format!("//{}{}:{}", user, url.host, *port),
None => format!("//{}{}", user, url.host),
}
};
let query = if url.query.is_empty() {
@ -895,6 +899,12 @@ mod tests {
assert_eq!(from_str(url).unwrap().to_str(), url);
}
#[test]
fn test_url_with_port_parse_and_format() {
let url = ~"http://rust-lang.org:80/doc";
assert_eq!(from_str(url).unwrap().to_str(), url);
}
#[test]
fn test_scheme_host_only_url_parse_and_format() {
let url = ~"http://rust-lang.org";