feat: allow search with --render-try-index (#88)
This commit is contained in:
parent
1e0cdafbcf
commit
2ffdcdf106
2 changed files with 24 additions and 3 deletions
|
@ -155,9 +155,18 @@ impl Server {
|
||||||
match method {
|
match method {
|
||||||
Method::GET | Method::HEAD => {
|
Method::GET | Method::HEAD => {
|
||||||
if is_dir {
|
if is_dir {
|
||||||
if render_try_index && query == "zip" {
|
if render_try_index {
|
||||||
self.handle_zip_dir(path, head_only, &mut res).await?;
|
if query == "zip" {
|
||||||
} else if render_index || render_spa || render_try_index {
|
self.handle_zip_dir(path, head_only, &mut res).await?;
|
||||||
|
} else if allow_search && query.starts_with("q=") {
|
||||||
|
let q = decode_uri(&query[2..]).unwrap_or_default();
|
||||||
|
self.handle_search_dir(path, &q, head_only, &mut res)
|
||||||
|
.await?;
|
||||||
|
} else {
|
||||||
|
self.handle_render_index(path, headers, head_only, &mut res)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
|
} else if render_index || render_spa {
|
||||||
self.handle_render_index(path, headers, head_only, &mut res)
|
self.handle_render_index(path, headers, head_only, &mut res)
|
||||||
.await?;
|
.await?;
|
||||||
} else if query == "zip" {
|
} else if query == "zip" {
|
||||||
|
|
|
@ -50,6 +50,18 @@ fn render_try_index3(#[with(&["--render-try-index"])] server: TestServer) -> Res
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[rstest]
|
||||||
|
#[case(server(&["--render-try-index"] as &[&str]), false)]
|
||||||
|
#[case(server(&["--render-try-index", "--allow-search"] as &[&str]), true)]
|
||||||
|
fn render_try_index4(#[case] server: TestServer, #[case] searched: bool) -> Result<(), Error> {
|
||||||
|
let resp = reqwest::blocking::get(format!("{}{}?q={}", server.url(), DIR_NO_INDEX, "😀.bin"))?;
|
||||||
|
assert_eq!(resp.status(), 200);
|
||||||
|
let paths = utils::retrive_index_paths(&resp.text()?);
|
||||||
|
assert!(!paths.is_empty());
|
||||||
|
assert_eq!(paths.iter().all(|v| v.contains("😀.bin")), searched);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
#[rstest]
|
#[rstest]
|
||||||
fn render_spa(#[with(&["--render-spa"])] server: TestServer) -> Result<(), Error> {
|
fn render_spa(#[with(&["--render-spa"])] server: TestServer) -> Result<(), Error> {
|
||||||
let resp = reqwest::blocking::get(server.url())?;
|
let resp = reqwest::blocking::get(server.url())?;
|
||||||
|
|
Loading…
Reference in a new issue