diff --git a/src/banner/container.rs b/src/banner/container.rs index c0411d1..4609dc2 100644 --- a/src/banner/container.rs +++ b/src/banner/container.rs @@ -165,7 +165,7 @@ impl Banner { } for denied_url in &config.url_denylist { - url_denylist.push(BannerEntry::new("🚫", "Dont Scan", &denied_url)); + url_denylist.push(BannerEntry::new("🚫", "Don't Scan", &denied_url)); } let mut codes = vec![]; diff --git a/tests/test_banner.rs b/tests/test_banner.rs index 3fb4de6..e1a3299 100644 --- a/tests/test_banner.rs +++ b/tests/test_banner.rs @@ -113,6 +113,36 @@ fn banner_prints_headers() { ); } +#[test] +/// test allows non-existent wordlist to trigger the banner printing to stderr +/// expect to see all mandatory prints + multiple dont scan entries +fn banner_prints_denied_urls() { + Command::cargo_bin("feroxbuster") + .unwrap() + .arg("--url") + .arg("http://localhost") + .arg("--dont-scan") + .arg("http://dont-scan.me") + .arg("--dont-scan") + .arg("https://also-not.me") + .assert() + .success() + .stderr( + predicate::str::contains("─┬─") + .and(predicate::str::contains("Target Url")) + .and(predicate::str::contains("http://localhost")) + .and(predicate::str::contains("Threads")) + .and(predicate::str::contains("Wordlist")) + .and(predicate::str::contains("Status Codes")) + .and(predicate::str::contains("Timeout (secs)")) + .and(predicate::str::contains("User-Agent")) + .and(predicate::str::contains("Don't Scan")) + .and(predicate::str::contains("http://dont-scan.me")) + .and(predicate::str::contains("https://also-not.me")) + .and(predicate::str::contains("─┴─")), + ); +} + #[test] /// test allows non-existent wordlist to trigger the banner printing to stderr /// expect to see all mandatory prints + multiple size filters