}
fn extract_path(&self, path: &str) -> Option<PathBuf> {
- let decoded_path = decode_uri(&path[1..])?;
+ let mut slash_stripped_path = path;
+ while let Some(p) = slash_stripped_path.strip_prefix('/') {
+ slash_stripped_path = p
+ }
+ let decoded_path = decode_uri(slash_stripped_path)?;
let slashes_switched = if cfg!(windows) {
decoded_path.replace('/', "\\")
} else {
Ok(())
}
+#[rstest]
+fn propfind_double_slash(server: TestServer) -> Result<(), Error> {
+ let resp = fetch!(b"PROPFIND", format!("{}/", server.url())).send()?;
+ assert_eq!(resp.status(), 207);
+ Ok(())
+}
+
#[rstest]
fn propfind_file(server: TestServer) -> Result<(), Error> {
let resp = fetch!(b"PROPFIND", format!("{}test.html", server.url())).send()?;