You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.2 KiB
73 lines
2.2 KiB
mod fixtures; |
|
mod utils; |
|
|
|
use fixtures::{server, Error, TestServer}; |
|
use rstest::rstest; |
|
|
|
#[rstest] |
|
fn default_not_allow_upload(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(), 403); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn default_not_allow_delete(server: TestServer) -> Result<(), Error> { |
|
let url = format!("{}test.html", server.url()); |
|
let resp = fetch!(b"DELETE", &url).send()?; |
|
assert_eq!(resp.status(), 403); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn default_not_exist_dir(server: TestServer) -> Result<(), Error> { |
|
let resp = reqwest::blocking::get(format!("{}404/", server.url()))?; |
|
assert_eq!(resp.status(), 404); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn allow_upload_not_exist_dir( |
|
#[with(&["--allow-upload"])] server: TestServer, |
|
) -> Result<(), Error> { |
|
let resp = reqwest::blocking::get(format!("{}404/", server.url()))?; |
|
assert_eq!(resp.status(), 200); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn allow_upload_no_override(#[with(&["--allow-upload"])] server: TestServer) -> Result<(), Error> { |
|
let url = format!("{}index.html", server.url()); |
|
let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?; |
|
assert_eq!(resp.status(), 403); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn allow_delete_no_override(#[with(&["--allow-delete"])] server: TestServer) -> Result<(), Error> { |
|
let url = format!("{}index.html", server.url()); |
|
let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?; |
|
assert_eq!(resp.status(), 403); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn allow_upload_delete_can_override(#[with(&["-A"])] server: TestServer) -> Result<(), Error> { |
|
let url = format!("{}index.html", server.url()); |
|
let resp = fetch!(b"PUT", &url).body(b"abc".to_vec()).send()?; |
|
assert_eq!(resp.status(), 201); |
|
Ok(()) |
|
} |
|
|
|
#[rstest] |
|
fn allow_search(#[with(&["--allow-search"])] server: TestServer) -> Result<(), Error> { |
|
let resp = reqwest::blocking::get(format!("{}?q={}", server.url(), "test.html"))?; |
|
assert_eq!(resp.status(), 200); |
|
let paths = utils::retrive_index_paths(&resp.text()?); |
|
assert!(!paths.is_empty()); |
|
for p in paths { |
|
assert!(p.contains("test.html")); |
|
} |
|
Ok(()) |
|
}
|
|
|