|
|
@ -6,7 +6,7 @@ use fixtures::{server, Error, TestServer}; |
|
|
|
use rstest::rstest; |
|
|
|
use rstest::rstest; |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
#[rstest] |
|
|
|
fn no_auth_digest(#[with(&["--auth", "/@user:pass", "-A"])] server: TestServer) -> Result<(), Error> { |
|
|
|
fn no_auth(#[with(&["--auth", "/@user:pass", "-A"])] server: TestServer) -> Result<(), Error> { |
|
|
|
let resp = reqwest::blocking::get(server.url())?; |
|
|
|
let resp = reqwest::blocking::get(server.url())?; |
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
assert!(resp.headers().contains_key("www-authenticate")); |
|
|
|
assert!(resp.headers().contains_key("www-authenticate")); |
|
|
@ -17,7 +17,7 @@ fn no_auth_digest(#[with(&["--auth", "/@user:pass", "-A"])] server: TestServer) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
#[rstest] |
|
|
|
fn auth_digest(#[with(&["--auth", "/@user:pass", "-A"])] server: TestServer) -> Result<(), Error> { |
|
|
|
fn auth(#[with(&["--auth", "/@user:pass", "-A"])] server: TestServer) -> Result<(), Error> { |
|
|
|
let url = format!("{}file1", server.url()); |
|
|
|
let url = format!("{}file1", server.url()); |
|
|
|
let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?; |
|
|
|
let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?; |
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
assert_eq!(resp.status(), 401); |
|
|
@ -29,14 +29,14 @@ fn auth_digest(#[with(&["--auth", "/@user:pass", "-A"])] server: TestServer) -> |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
#[rstest] |
|
|
|
fn auth_skip_digest(#[with(&["--auth", "/@user:pass@*"])] server: TestServer) -> Result<(), Error> { |
|
|
|
fn auth_skip(#[with(&["--auth", "/@user:pass@*"])] server: TestServer) -> Result<(), Error> { |
|
|
|
let resp = reqwest::blocking::get(server.url())?; |
|
|
|
let resp = reqwest::blocking::get(server.url())?; |
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
Ok(()) |
|
|
|
Ok(()) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
#[rstest] |
|
|
|
fn auth_readonly_digest( |
|
|
|
fn auth_readonly( |
|
|
|
#[with(&["--auth", "/@user:pass@user2:pass2", "-A"])] server: TestServer, |
|
|
|
#[with(&["--auth", "/@user:pass@user2:pass2", "-A"])] server: TestServer, |
|
|
|
) -> Result<(), Error> { |
|
|
|
) -> Result<(), Error> { |
|
|
|
let url = format!("{}index.html", server.url()); |
|
|
|
let url = format!("{}index.html", server.url()); |
|
|
@ -53,7 +53,7 @@ fn auth_readonly_digest( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
#[rstest] |
|
|
|
fn auth_nest_digest( |
|
|
|
fn auth_nest( |
|
|
|
#[with(&["--auth", "/@user:pass@user2:pass2", "--auth", "/dira@user3:pass3", "-A"])] |
|
|
|
#[with(&["--auth", "/@user:pass@user2:pass2", "--auth", "/dira@user3:pass3", "-A"])] |
|
|
|
server: TestServer, |
|
|
|
server: TestServer, |
|
|
|
) -> Result<(), Error> { |
|
|
|
) -> Result<(), Error> { |
|
|
@ -72,7 +72,7 @@ fn auth_nest_digest( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
#[rstest] |
|
|
|
fn auth_nest_share_digest( |
|
|
|
fn auth_nest_share( |
|
|
|
#[with(&["--auth", "/@user:pass@*", "--auth", "/dira@user3:pass3", "-A"])] server: TestServer, |
|
|
|
#[with(&["--auth", "/@user:pass@*", "--auth", "/dira@user3:pass3", "-A"])] server: TestServer, |
|
|
|
) -> Result<(), Error> { |
|
|
|
) -> Result<(), Error> { |
|
|
|
let url = format!("{}index.html", server.url()); |
|
|
|
let url = format!("{}index.html", server.url()); |
|
|
@ -80,83 +80,3 @@ fn auth_nest_share_digest( |
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
Ok(()) |
|
|
|
Ok(()) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
|
|
|
|
fn no_auth_basic(#[with(&["--basic-auth", "--auth", "/@user:pass", "-A"])] server: TestServer) -> Result<(), Error> { |
|
|
|
|
|
|
|
let resp = reqwest::blocking::get(server.url())?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
|
|
|
|
assert!(resp.headers().contains_key("www-authenticate")); |
|
|
|
|
|
|
|
let url = format!("{}file1", server.url()); |
|
|
|
|
|
|
|
let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
|
|
|
|
fn auth_basic(#[with(&["--basic-auth", "--auth", "/@user:pass", "-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()) |
|
|
|
|
|
|
|
.basic_auth("user", Some("pass")) |
|
|
|
|
|
|
|
.send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 201); |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
|
|
|
|
fn auth_skip_basic(#[with(&["--basic-auth", "--auth", "/@user:pass@*"])] server: TestServer) -> Result<(), Error> { |
|
|
|
|
|
|
|
let resp = reqwest::blocking::get(server.url())?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
|
|
|
|
fn auth_readonly_basic( |
|
|
|
|
|
|
|
#[with(&["--basic-auth", "--auth", "/@user:pass@user2:pass2", "-A"])] server: TestServer, |
|
|
|
|
|
|
|
) -> Result<(), Error> { |
|
|
|
|
|
|
|
let url = format!("{}index.html", server.url()); |
|
|
|
|
|
|
|
let resp = fetch!(b"GET", &url).send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
|
|
|
|
let resp = fetch!(b"GET", &url).basic_auth("user2", Some("pass2")).send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
|
|
|
|
let url = format!("{}file1", server.url()); |
|
|
|
|
|
|
|
let resp = fetch!(b"PUT", &url) |
|
|
|
|
|
|
|
.body(b"abc".to_vec()) |
|
|
|
|
|
|
|
.basic_auth("user2", Some("pass2")) |
|
|
|
|
|
|
|
.send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 401); |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
|
|
|
|
fn auth_nest_basic( |
|
|
|
|
|
|
|
#[with(&["--basic-auth", "--auth", "/@user:pass@user2:pass2", "--auth", "/dira@user3:pass3", "-A"])] |
|
|
|
|
|
|
|
server: TestServer, |
|
|
|
|
|
|
|
) -> Result<(), Error> { |
|
|
|
|
|
|
|
let url = format!("{}dira/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()) |
|
|
|
|
|
|
|
.basic_auth("user3", Some("pass3")) |
|
|
|
|
|
|
|
.send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 201); |
|
|
|
|
|
|
|
let resp = fetch!(b"PUT", &url) |
|
|
|
|
|
|
|
.body(b"abc".to_vec()) |
|
|
|
|
|
|
|
.basic_auth("user", Some("pass")) |
|
|
|
|
|
|
|
.send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 201); |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[rstest] |
|
|
|
|
|
|
|
fn auth_nest_share_basic( |
|
|
|
|
|
|
|
#[with(&["--basic-auth", "--auth", "/@user:pass@*", "--auth", "/dira@user3:pass3", "-A"])] server: TestServer, |
|
|
|
|
|
|
|
) -> Result<(), Error> { |
|
|
|
|
|
|
|
let url = format!("{}index.html", server.url()); |
|
|
|
|
|
|
|
let resp = fetch!(b"GET", &url).send()?; |
|
|
|
|
|
|
|
assert_eq!(resp.status(), 200); |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|