From b1e4deca84c295e9d36ea4a6389c5ca0b6a5a996 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Thu, 11 Jun 2020 18:37:56 -0400 Subject: [PATCH] Don't return 404 if .cargo-ok file exists This was a regression introduced in https://github.com/rust-lang/docs.rs/pull/692. --- src/web/source.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/web/source.rs b/src/web/source.rs index 650f624f9..4d448f19d 100644 --- a/src/web/source.rs +++ b/src/web/source.rs @@ -115,7 +115,7 @@ impl FileList { // skip .cargo-ok generated by cargo if path == ".cargo-ok" { - return None; + continue; } // look only files for req_path @@ -261,6 +261,7 @@ pub fn source_browser_handler(req: &mut Request) -> IronResult { #[cfg(test)] mod tests { use super::*; + use crate::test::{assert_success, wrapper}; use serde_json::json; #[test] @@ -306,4 +307,20 @@ mod tests { assert_eq!(correct_json, serde_json::to_value(&file_list).unwrap(),); } + + #[test] + fn cargo_ok_not_skipped() { + wrapper(|env| { + let db = env.db(); + db.fake_release() + .name("fake") + .version("0.1.0") + .source_file(".cargo-ok", b"ok") + .source_file("README.md", b"hello") + .create()?; + let web = env.frontend(); + assert_success("/crate/fake/0.1.0/source/", web)?; + Ok(()) + }); + } }