mirror of
https://github.com/epi052/feroxbuster.git
synced 2026-05-27 16:51:13 -03:00
finalized tests
This commit is contained in:
@@ -113,6 +113,7 @@ pub(crate) fn filter_lookup(filter_type: &str, filter_value: &str) -> Option<Box
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::config::Configuration;
|
||||
use crate::filters::{LinesFilter, RegexFilter, SizeFilter, StatusCodeFilter, WordsFilter};
|
||||
use crate::scan_manager::FeroxScans;
|
||||
use httpmock::Method::GET;
|
||||
@@ -177,10 +178,18 @@ mod tests {
|
||||
when.method(GET).path("/");
|
||||
then.status(200).body("this is a test");
|
||||
});
|
||||
let scans = FeroxScans::default();
|
||||
let test_handles = Handles::for_testing(Some(Arc::new(scans)), None).0;
|
||||
|
||||
let filter = create_similarity_filter(&srv.url("/"), Arc::new(test_handles))
|
||||
let scans = FeroxScans::default();
|
||||
let config = Configuration {
|
||||
collect_extensions: true,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let (test_handles, _) = Handles::for_testing(Some(Arc::new(scans)), Some(Arc::new(config)));
|
||||
|
||||
let handles = Arc::new(test_handles);
|
||||
|
||||
let filter = create_similarity_filter(&srv.url("/"), handles.clone())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
use super::*;
|
||||
use crate::filters::FeroxFilters;
|
||||
use crate::filters::{
|
||||
FeroxFilters, LinesFilter, RegexFilter, SimilarityFilter, SizeFilter, StatusCodeFilter,
|
||||
WordsFilter,
|
||||
};
|
||||
use crate::{
|
||||
config::{Configuration, OutputLevel},
|
||||
event_handlers::Handles,
|
||||
@@ -7,10 +10,11 @@ use crate::{
|
||||
scanner::RESPONSES,
|
||||
statistics::Stats,
|
||||
traits::FeroxSerialize,
|
||||
SLEEP_DURATION, VERSION,
|
||||
SIMILARITY_THRESHOLD, SLEEP_DURATION, VERSION,
|
||||
};
|
||||
use indicatif::ProgressBar;
|
||||
use predicates::prelude::*;
|
||||
use regex::Regex;
|
||||
use std::sync::{atomic::Ordering, Arc};
|
||||
use std::thread::sleep;
|
||||
use std::time::Instant;
|
||||
@@ -371,14 +375,40 @@ fn feroxstates_feroxserialize_implementation() {
|
||||
let response: FeroxResponse = serde_json::from_str(json_response).unwrap();
|
||||
RESPONSES.insert(response);
|
||||
|
||||
let filters = Arc::new(FeroxFilters::default());
|
||||
let filters = FeroxFilters::default();
|
||||
filters
|
||||
.push(Box::new(StatusCodeFilter { filter_code: 100 }))
|
||||
.unwrap();
|
||||
filters
|
||||
.push(Box::new(WordsFilter { word_count: 200 }))
|
||||
.unwrap();
|
||||
filters
|
||||
.push(Box::new(SizeFilter {
|
||||
content_length: 300,
|
||||
}))
|
||||
.unwrap();
|
||||
filters
|
||||
.push(Box::new(LinesFilter { line_count: 400 }))
|
||||
.unwrap();
|
||||
filters
|
||||
.push(Box::new(RegexFilter {
|
||||
raw_string: ".*".to_string(),
|
||||
compiled: Regex::new(".*").unwrap(),
|
||||
}))
|
||||
.unwrap();
|
||||
filters
|
||||
.push(Box::new(SimilarityFilter {
|
||||
hash: "3:YKEpn:Yfp".to_string(),
|
||||
threshold: SIMILARITY_THRESHOLD,
|
||||
}))
|
||||
.unwrap();
|
||||
|
||||
let ferox_state = FeroxState::new(
|
||||
Arc::new(ferox_scans),
|
||||
Arc::new(config),
|
||||
&RESPONSES,
|
||||
stats,
|
||||
filters,
|
||||
Arc::new(filters),
|
||||
);
|
||||
|
||||
let expected_strs = predicates::str::contains("scans: FeroxScans").and(
|
||||
@@ -466,6 +496,7 @@ fn feroxstates_feroxserialize_implementation() {
|
||||
r#""collect_extensions":true"#,
|
||||
r#""collect_backups":false"#,
|
||||
r#""collect_words":false"#,
|
||||
r#""filters":[{"filter_code":100},{"word_count":200},{"content_length":300},{"line_count":400},{"compiled":".*","raw_string":".*"},{"hash":"3:YKEpn:Yfp","threshold":95}]"#,
|
||||
r#""collected_extensions":["php"]"#,
|
||||
r#""dont_collect":["tif","tiff","ico","cur","bmp","webp","svg","png","jpg","jpeg","jfif","gif","avif","apng","pjpeg","pjp","mov","wav","mpg","mpeg","mp3","mp4","m4a","m4p","m4v","ogg","webm","ogv","oga","flac","aac","3gp","css","zip","xls","xml","gz","tgz"]"#,
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user