pub enum AccessPerm {
#[default]
IndexOnly,
- ReadWrite,
ReadOnly,
+ ReadWrite,
}
impl AccessPerm {
assert_eq!(paths.find("dir2", true), None);
assert!(paths.find("dir1/file", true).is_some());
}
+
+ #[test]
+ fn test_access_paths_perm() {
+ let mut paths = AccessPaths::default();
+ assert_eq!(paths.perm(), AccessPerm::IndexOnly);
+ paths.set_perm(AccessPerm::ReadOnly);
+ assert_eq!(paths.perm(), AccessPerm::ReadOnly);
+ paths.set_perm(AccessPerm::ReadWrite);
+ assert_eq!(paths.perm(), AccessPerm::ReadWrite);
+ paths.set_perm(AccessPerm::ReadOnly);
+ assert_eq!(paths.perm(), AccessPerm::ReadWrite);
+ }
}
Ok(())
}
+#[rstest]
+fn auth_and_public(
+ #[with(&["--auth", "user:pass@/:rw|@/", "-A"])] server: TestServer,
+) -> Result<(), Error> {
+ let url = format!("{}file1", server.url());
+ let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?;
+ assert_eq!(resp.status(), 401);
+ let resp = fetch!(b"PUT", &url)
+ .body(b"abc".to_vec())
+ .send_with_digest_auth("user", "pass")?;
+ assert_eq!(resp.status(), 201);
+ let resp = fetch!(b"GET", &url).send()?;
+ assert_eq!(resp.status(), 200);
+ assert_eq!(resp.text()?, "abc");
+ Ok(())
+}
+
#[rstest]
fn auth_skip(#[with(&["--auth", "@/"])] server: TestServer) -> Result<(), Error> {
let resp = reqwest::blocking::get(server.url())?;