mirror of https://github.com/rwf2/Rocket.git
Fix URI display for root path.
This commit is contained in:
parent
d91e3e0454
commit
785d0d2a6a
|
@ -193,6 +193,11 @@ impl<'a> URI<'a> {
|
||||||
|
|
||||||
impl<'a> fmt::Display for URI<'a> {
|
impl<'a> fmt::Display for URI<'a> {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
// If this is the root path, then there are "zero" segments.
|
||||||
|
if self.as_str().starts_with("/") && self.segment_count() == 0 {
|
||||||
|
return write!(f, "/");
|
||||||
|
}
|
||||||
|
|
||||||
for segment in self.segments() {
|
for segment in self.segments() {
|
||||||
write!(f, "/{}", segment)?;
|
write!(f, "/{}", segment)?;
|
||||||
}
|
}
|
||||||
|
@ -577,4 +582,17 @@ mod tests {
|
||||||
test_fragment("/a/b/c?123", None);
|
test_fragment("/a/b/c?123", None);
|
||||||
test_fragment("/a", None);
|
test_fragment("/a", None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn to_string() {
|
||||||
|
let uri_to_string = |string| URI::new(string).to_string();
|
||||||
|
|
||||||
|
assert_eq!(uri_to_string("/"), "/".to_string());
|
||||||
|
assert_eq!(uri_to_string("//"), "/".to_string());
|
||||||
|
assert_eq!(uri_to_string("//////a/"), "/a".to_string());
|
||||||
|
assert_eq!(uri_to_string("//ab"), "/ab".to_string());
|
||||||
|
assert_eq!(uri_to_string("//a"), "/a".to_string());
|
||||||
|
assert_eq!(uri_to_string("/a/b///c"), "/a/b/c".to_string());
|
||||||
|
assert_eq!(uri_to_string("/a///b/c/d///"), "/a/b/c/d".to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue