Skip to content

Commit c9a88a6

Browse files
committed
Improve testing for host, path, query, hash when mutating path
1 parent 73490fe commit c9a88a6

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

url/tests/unit.rs

+32
Original file line numberDiff line numberDiff line change
@@ -1479,3 +1479,35 @@ fn test_can_be_a_base_with_path_segments_mut() {
14791479
.collect();
14801480
assert_eq!(segments, vec!["", "not-a-host"]);
14811481
}
1482+
1483+
#[test]
1484+
fn test_valid_indices_after_set_path() {
1485+
// Testing everything
1486+
let mut url = Url::parse("moz:/").unwrap();
1487+
assert!(!url.cannot_be_a_base());
1488+
1489+
url.set_path("/.//p");
1490+
url.set_host(Some("host")).unwrap();
1491+
url.set_query(Some("query"));
1492+
url.set_fragment(Some("frag"));
1493+
assert_eq!(url.as_str(), "moz://host//p?query#frag");
1494+
assert_eq!(url.host(), Some(Host::Domain("host")));
1495+
assert_eq!(url.path(), "//p");
1496+
assert_eq!(url.query(), Some("query"));
1497+
assert_eq!(url.fragment(), Some("frag"));
1498+
url.check_invariants().unwrap();
1499+
1500+
url = Url::parse("moz:/.//").unwrap();
1501+
assert!(!url.cannot_be_a_base());
1502+
1503+
url.set_path("p");
1504+
url.set_host(Some("host")).unwrap();
1505+
url.set_query(Some("query"));
1506+
url.set_fragment(Some("frag"));
1507+
assert_eq!(url.as_str(), "moz://host/p?query#frag");
1508+
assert_eq!(url.host(), Some(Host::Domain("host")));
1509+
assert_eq!(url.path(), "/p");
1510+
assert_eq!(url.query(), Some("query"));
1511+
assert_eq!(url.fragment(), Some("frag"));
1512+
url.check_invariants().unwrap();
1513+
}

0 commit comments

Comments
 (0)