Spaces:
Running
Running
add a test to check if the regex wildcard .* matches any character
Browse files- src/results/aggregator.rs +39 -0
src/results/aggregator.rs
CHANGED
|
@@ -258,6 +258,45 @@ mod tests {
|
|
| 258 |
Ok(())
|
| 259 |
}
|
| 260 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 261 |
#[test]
|
| 262 |
fn test_filter_with_lists_file_not_found() {
|
| 263 |
let mut map_to_be_filtered = HashMap::new();
|
|
|
|
| 258 |
Ok(())
|
| 259 |
}
|
| 260 |
|
| 261 |
+
#[test]
|
| 262 |
+
fn test_filter_with_lists_wildcard() -> Result<(), Box<dyn std::error::Error>> {
|
| 263 |
+
let mut map_to_be_filtered = HashMap::new();
|
| 264 |
+
map_to_be_filtered.insert(
|
| 265 |
+
"https://www.example.com".to_string(),
|
| 266 |
+
SearchResult {
|
| 267 |
+
title: "Example Domain".to_string(),
|
| 268 |
+
url: "https://www.example.com".to_string(),
|
| 269 |
+
description: "This domain is for use in illustrative examples in documents.".to_string(),
|
| 270 |
+
engine: vec!["Google".to_string(), "Bing".to_string()],
|
| 271 |
+
},
|
| 272 |
+
);
|
| 273 |
+
map_to_be_filtered.insert(
|
| 274 |
+
"https://www.rust-lang.org/".to_string(),
|
| 275 |
+
SearchResult {
|
| 276 |
+
title: "Rust Programming Language".to_string(),
|
| 277 |
+
url: "https://www.rust-lang.org/".to_string(),
|
| 278 |
+
description: "A systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.".to_string(),
|
| 279 |
+
engine: vec!["Google".to_string(), "DuckDuckGo".to_string()],
|
| 280 |
+
},
|
| 281 |
+
);
|
| 282 |
+
|
| 283 |
+
// Create a temporary file with a regex pattern containing a wildcard
|
| 284 |
+
let mut file = NamedTempFile::new()?;
|
| 285 |
+
writeln!(file, "ex.*le")?;
|
| 286 |
+
file.flush()?;
|
| 287 |
+
|
| 288 |
+
let mut resultant_map = HashMap::new();
|
| 289 |
+
|
| 290 |
+
filter_with_lists(&mut map_to_be_filtered, &mut resultant_map, file.path().to_str().unwrap())?;
|
| 291 |
+
|
| 292 |
+
assert_eq!(resultant_map.len(), 1);
|
| 293 |
+
assert!(resultant_map.contains_key("https://www.example.com"));
|
| 294 |
+
assert_eq!(map_to_be_filtered.len(), 1);
|
| 295 |
+
assert!(map_to_be_filtered.contains_key("https://www.rust-lang.org/"));
|
| 296 |
+
|
| 297 |
+
Ok(())
|
| 298 |
+
}
|
| 299 |
+
|
| 300 |
#[test]
|
| 301 |
fn test_filter_with_lists_file_not_found() {
|
| 302 |
let mut map_to_be_filtered = HashMap::new();
|