From 0d076302a6b1ccfbdf8c44f4acbfcd2f17e3a426 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 3 Jul 2025 17:20:00 +0800 Subject: [PATCH] Update string formatting for Rust 1.88 compatibility --- benches/bench_redirect_performance.rs | 8 ++-- examples/deserialization.rs | 6 +-- examples/example.rs | 2 +- examples/use-dat.rs | 2 +- fuzz/fuzz_targets/parse_request.rs | 2 +- js/src/lib.rs | 10 ++--- src/blocker.rs | 6 +-- src/content_blocking.rs | 8 ++-- src/cosmetic_filter_cache.rs | 9 ++-- src/filters/cosmetic.rs | 28 ++++++------- src/network_filter_list.rs | 2 +- src/regex_manager.rs | 2 +- src/resources/mod.rs | 4 +- src/resources/resource_assembler.rs | 2 +- src/resources/resource_storage.rs | 8 ++-- src/url_parser/parser.rs | 4 +- tests/legacy_harness.rs | 10 +---- tests/live.rs | 11 ++--- tests/matching.rs | 6 +-- tests/unit/blocker.rs | 5 +-- tests/unit/engine.rs | 24 +++++------ tests/unit/filters/cosmetic.rs | 2 +- tests/unit/filters/network.rs | 26 +++++------- tests/unit/filters/network_matchers.rs | 48 +++++----------------- tests/unit/optimizer.rs | 20 ++------- tests/unit/resources/resource_assembler.rs | 9 ++-- tests/unit/resources/resource_storage.rs | 4 +- 27 files changed, 103 insertions(+), 165 deletions(-) diff --git a/benches/bench_redirect_performance.rs b/benches/bench_redirect_performance.rs index 2ed4f2a4..36df2072 100644 --- a/benches/bench_redirect_performance.rs +++ b/benches/bench_redirect_performance.rs @@ -71,7 +71,7 @@ fn get_redirect_rules() -> Vec { .map(|(index, mut rule)| { rule.mask.insert(NetworkFilterMask::IS_LEFT_ANCHOR); rule.mask.insert(NetworkFilterMask::IS_RIGHT_ANCHOR); - rule.hostname = Some(format!("a{}.com/bad.js", index)); + rule.hostname = Some(format!("a{index}.com/bad.js")); rule.filter = adblock::filters::network::FilterPart::Empty; rule.mask.remove(NetworkFilterMask::IS_HOSTNAME_ANCHOR); @@ -204,7 +204,7 @@ pub fn build_custom_requests(rules: Vec) -> Vec { hostname }; - let source_url = format!("https://{}", source_hostname); + let source_url = format!("https://{source_hostname}"); Request::new(&url, &source_url, raw_type).unwrap() }) @@ -216,9 +216,7 @@ fn bench_fn(blocker: &Blocker, resources: &ResourceStorage, requests: &[Request] let block_result = blocker.check(request, resources); assert!( block_result.redirect.is_some(), - "{:?}, {:?}", - request, - block_result + "{request:?}, {block_result:?}" ); }); } diff --git a/examples/deserialization.rs b/examples/deserialization.rs index 684b7fbb..3ef07a72 100644 --- a/examples/deserialization.rs +++ b/examples/deserialization.rs @@ -29,7 +29,7 @@ fn load_requests() -> Vec { if let Ok(record) = result { reqs.push(record); } else { - println!("Could not parse {:?}", result); + println!("Could not parse {result:?}"); } } @@ -70,7 +70,7 @@ fn main() { let mut false_negative_exceptions: HashMap = HashMap::new(); for (reqs_processed, req) in requests.into_iter().enumerate() { if reqs_processed % 10000 == 0 { - println!("{} requests processed", reqs_processed); + println!("{reqs_processed} requests processed"); } let request = Request::new(&req.url, &req.sourceUrl, &req.r#type).unwrap(); let checked = engine.check_network_request(&request); @@ -106,7 +106,7 @@ fn main() { let mismatches = mismatch_expected_match + mismatch_expected_exception + mismatch_expected_pass; let ratio = mismatches as f32 / requests_len as f32; - assert!(ratio < 0.04, "Mismatch ratio was {}", ratio); + assert!(ratio < 0.04, "Mismatch ratio was {ratio}"); assert!( false_positive_rules.len() < 3, "False positive rules higher than expected: {:?}", diff --git a/examples/example.rs b/examples/example.rs index f0521685..9f2f74ac 100644 --- a/examples/example.rs +++ b/examples/example.rs @@ -26,5 +26,5 @@ fn main() { .unwrap(); let blocker_result = engine.check_network_request(&request); - println!("Blocker result: {:?}", blocker_result); + println!("Blocker result: {blocker_result:?}"); } diff --git a/examples/use-dat.rs b/examples/use-dat.rs index 8eee302b..bc662d71 100644 --- a/examples/use-dat.rs +++ b/examples/use-dat.rs @@ -25,5 +25,5 @@ fn main() { let checked = engine.check_network_request(&request); assert!(checked.filter.is_some()); assert!(checked.exception.is_some()); - println!("All good: {:?}", checked); + println!("All good: {checked:?}"); } diff --git a/fuzz/fuzz_targets/parse_request.rs b/fuzz/fuzz_targets/parse_request.rs index 62ca8944..abf7f485 100644 --- a/fuzz/fuzz_targets/parse_request.rs +++ b/fuzz/fuzz_targets/parse_request.rs @@ -6,7 +6,7 @@ use libfuzzer_sys::fuzz_target; fuzz_target!(|data: &[u8]| { if let Ok(url) = std::str::from_utf8(data) { - Request::new(&format!("https://{}", url), "https://example.com", "other"); + Request::new(&format!("https://{url}"), "https://example.com", "other"); Request::new(url, "https://example.com", "script"); Request::new(url, "", ""); Request::new(url, url, ""); diff --git a/js/src/lib.rs b/js/src/lib.rs index 7396162a..dddf67ec 100644 --- a/js/src/lib.rs +++ b/js/src/lib.rs @@ -147,7 +147,7 @@ fn filter_set_into_content_blocking(mut cx: FunctionContext) -> JsResult return Ok(JsUndefined::new(&mut cx).upcast()), + Err(_) => Ok(JsUndefined::new(&mut cx).upcast()), } } @@ -266,7 +266,7 @@ fn engine_deserialize(mut cx: FunctionContext) -> JsResult { let serialized_handle = cx.argument::(1)?; if let Ok(mut engine) = this.0.lock() { - let _result = engine.deserialize(&serialized_handle.as_slice(&mut cx)); + let _result = engine.deserialize(serialized_handle.as_slice(&cx)); } Ok(JsNull::new(&mut cx)) @@ -360,13 +360,13 @@ fn ublock_resources(mut cx: FunctionContext) -> JsResult { }; let mut resources = assemble_web_accessible_resources( - &Path::new(&web_accessible_resource_dir), - &Path::new(&redirect_resources_path), + Path::new(&web_accessible_resource_dir), + Path::new(&redirect_resources_path), ); if let Some(scriptlets_path) = scriptlets_path { #[allow(deprecated)] resources.append( - &mut adblock::resources::resource_assembler::assemble_scriptlet_resources(&Path::new( + &mut adblock::resources::resource_assembler::assemble_scriptlet_resources(Path::new( &scriptlets_path, )), ); diff --git a/src/blocker.rs b/src/blocker.rs index 24abf5fd..af2409e5 100644 --- a/src/blocker.rs +++ b/src/blocker.rs @@ -262,8 +262,8 @@ impl Blocker { impl std::fmt::Display for QParam<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - Self::KeyOnly(k) => write!(f, "{}", k), - Self::KeyValue(k, v) => write!(f, "{}={}", k, v), + Self::KeyOnly(k) => write!(f, "{k}"), + Self::KeyValue(k, v) => write!(f, "{k}={v}"), } } } @@ -317,7 +317,7 @@ impl Blocker { let new_param_str = if p.is_empty() { String::from("") } else { - format!("?{}", p) + format!("?{p}") }; Some(format!( "{}{}{}", diff --git a/src/content_blocking.rs b/src/content_blocking.rs index 9ecf4ec3..329b8199 100644 --- a/src/content_blocking.rs +++ b/src/content_blocking.rs @@ -377,7 +377,7 @@ impl TryFrom for CbRuleEquivalent { let with_fixed_wildcards = REPLACE_WILDCARDS.replace_all(&escaped_special_chars, ".*"); let mut url_filter = if v.mask.contains(NetworkFilterMask::IS_LEFT_ANCHOR) { - format!("^{}", with_fixed_wildcards) + format!("^{with_fixed_wildcards}") } else { let scheme_part = if v .mask @@ -394,7 +394,7 @@ impl TryFrom for CbRuleEquivalent { unreachable!("Invalid scheme information"); }; - format!("{}{}", scheme_part, with_fixed_wildcards) + format!("{scheme_part}{with_fixed_wildcards}") }; if v.mask.contains(NetworkFilterMask::IS_RIGHT_ANCHOR) { @@ -405,7 +405,7 @@ impl TryFrom for CbRuleEquivalent { } (crate::filters::network::FilterPart::Empty, Some(hostname)) => { let escaped_special_chars = SPECIAL_CHARS.replace_all(&hostname, r##"\$1"##); - format!("^[^:]+:(//)?([^/]+\\.)?{}", escaped_special_chars) + format!("^[^:]+:(//)?([^/]+\\.)?{escaped_special_chars}") } (crate::filters::network::FilterPart::Empty, None) => if v .mask @@ -464,7 +464,7 @@ impl TryFrom for CbRuleEquivalent { idna::domain_to_ascii(&lowercase).unwrap() }; - collection.push(format!("*{}", normalized_domain)); + collection.push(format!("*{normalized_domain}")); }); (non_empty(if_domain), non_empty(unless_domain)) diff --git a/src/cosmetic_filter_cache.rs b/src/cosmetic_filter_cache.rs index aef3bff7..f60d9e8c 100644 --- a/src/cosmetic_filter_cache.rs +++ b/src/cosmetic_filter_cache.rs @@ -193,10 +193,9 @@ impl CosmeticFilterCache { classes.into_iter().for_each(|class| { let class = class.as_ref(); - if self.simple_class_rules.contains(class) - && !exceptions.contains(&format!(".{}", class)) + if self.simple_class_rules.contains(class) && !exceptions.contains(&format!(".{class}")) { - selectors.push(format!(".{}", class)); + selectors.push(format!(".{class}")); } if let Some(bucket) = self.complex_class_rules.get(class) { selectors.extend( @@ -209,8 +208,8 @@ impl CosmeticFilterCache { }); ids.into_iter().for_each(|id| { let id = id.as_ref(); - if self.simple_id_rules.contains(id) && !exceptions.contains(&format!("#{}", id)) { - selectors.push(format!("#{}", id)); + if self.simple_id_rules.contains(id) && !exceptions.contains(&format!("#{id}")) { + selectors.push(format!("#{id}")); } if let Some(bucket) = self.complex_id_rules.get(id) { selectors.extend( diff --git a/src/filters/cosmetic.rs b/src/filters/cosmetic.rs index 68f6b8a5..c3a80cfb 100644 --- a/src/filters/cosmetic.rs +++ b/src/filters/cosmetic.rs @@ -633,7 +633,7 @@ mod css_validation { // Use `mock-stylesheet-marker` where uBO uses `color: red` since we have control over the // parsing logic within the block. - let mock_stylesheet = format!("{}{{mock-stylesheet-marker}}", selector); + let mock_stylesheet = format!("{selector}{{mock-stylesheet-marker}}"); let mut pi = ParserInput::new(&mock_stylesheet); let mut parser = Parser::new(&mut pi); let mut rule_list_parser = cssparser::RuleListParser::new_for_stylesheet( @@ -1104,17 +1104,17 @@ mod css_validation { fn to_css(&self, dest: &mut W) -> FmtResult { write!(dest, ":")?; match self { - Self::HasText(text) => write!(dest, "has-text({})", text)?, - Self::MatchesAttr(text) => write!(dest, "matches-attr({})", text)?, - Self::MatchesCss(text) => write!(dest, "matches-css({})", text)?, - Self::MatchesCssBefore(text) => write!(dest, "matches-css-before({})", text)?, - Self::MatchesCssAfter(text) => write!(dest, "matches-css-after({})", text)?, - Self::MatchesPath(text) => write!(dest, "matches-path({})", text)?, - Self::MinTextLength(text) => write!(dest, "min-text-length({})", text)?, - Self::Upward(text) => write!(dest, "upward({})", text)?, - Self::Xpath(text) => write!(dest, "xpath({})", text)?, - Self::AnythingElse(name, None) => write!(dest, "{}", name)?, - Self::AnythingElse(name, Some(args)) => write!(dest, "{}({})", name, args)?, + Self::HasText(text) => write!(dest, "has-text({text})")?, + Self::MatchesAttr(text) => write!(dest, "matches-attr({text})")?, + Self::MatchesCss(text) => write!(dest, "matches-css({text})")?, + Self::MatchesCssBefore(text) => write!(dest, "matches-css-before({text})")?, + Self::MatchesCssAfter(text) => write!(dest, "matches-css-after({text})")?, + Self::MatchesPath(text) => write!(dest, "matches-path({text})")?, + Self::MinTextLength(text) => write!(dest, "min-text-length({text})")?, + Self::Upward(text) => write!(dest, "upward({text})")?, + Self::Xpath(text) => write!(dest, "xpath({text})")?, + Self::AnythingElse(name, None) => write!(dest, "{name}")?, + Self::AnythingElse(name, Some(args)) => write!(dest, "{name}({args})")?, } Ok(()) } @@ -1165,8 +1165,8 @@ mod css_validation { fn to_css(&self, dest: &mut W) -> FmtResult { write!(dest, "::")?; match self { - Self(name, None) => write!(dest, "{}", name)?, - Self(name, Some(args)) => write!(dest, "{}({})", name, args)?, + Self(name, None) => write!(dest, "{name}")?, + Self(name, Some(args)) => write!(dest, "{name}({args})")?, } Ok(()) } diff --git a/src/network_filter_list.rs b/src/network_filter_list.rs index 0bde86e2..eaa73f8e 100644 --- a/src/network_filter_list.rs +++ b/src/network_filter_list.rs @@ -35,7 +35,7 @@ impl From<&NetworkFilter> for CheckResult { impl fmt::Display for CheckResult { fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { if let Some(ref raw_line) = self.raw_line { - write!(f, "{}", raw_line) + write!(f, "{raw_line}") } else { write!(f, "{}", self.filter_mask) } diff --git a/src/regex_manager.rs b/src/regex_manager.rs index e54da304..af748925 100644 --- a/src/regex_manager.rs +++ b/src/regex_manager.rs @@ -208,7 +208,7 @@ where // Should match start or end of url let left_anchor = if is_left_anchor { "^" } else { "" }; let right_anchor = if is_right_anchor { "$" } else { "" }; - let filter = format!("{}{}{}", left_anchor, repl, right_anchor); + let filter = format!("{left_anchor}{repl}{right_anchor}"); escaped_patterns.push(filter); } diff --git a/src/resources/mod.rs b/src/resources/mod.rs index 7fda7af2..f1212fac 100644 --- a/src/resources/mod.rs +++ b/src/resources/mod.rs @@ -248,7 +248,7 @@ impl MimeType { "xml" => MimeType::TextXml, _ => { #[cfg(test)] - eprintln!("Unrecognized file extension on: {:?}", resource_path); + eprintln!("Unrecognized file extension on: {resource_path:?}"); MimeType::Unknown } } @@ -332,7 +332,7 @@ impl From for &str { impl std::fmt::Display for MimeType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let s: &str = self.into(); - write!(f, "{}", s) + write!(f, "{s}") } } diff --git a/src/resources/resource_assembler.rs b/src/resources/resource_assembler.rs index 2893d1bc..17a99130 100644 --- a/src/resources/resource_assembler.rs +++ b/src/resources/resource_assembler.rs @@ -244,7 +244,7 @@ fn read_resource_from_web_accessible_dir( ) -> Resource { let resource_path = web_accessible_resource_dir.join(&resource_info.name); if !resource_path.is_file() { - panic!("Expected {:?} to be a file", resource_path); + panic!("Expected {resource_path:?} to be a file"); } let mut resource_file = File::open(resource_path).expect("open resource file for reading"); let mut resource_contents = Vec::new(); diff --git a/src/resources/resource_storage.rs b/src/resources/resource_storage.rs index 39150000..6b63c8d7 100644 --- a/src/resources/resource_storage.rs +++ b/src/resources/resource_storage.rs @@ -68,7 +68,7 @@ fn stringify_arg(arg: &str) -> String { start = index + 1; } if escape == b'u' { - output.extend_from_slice(format!("{:04x}", ch).as_bytes()); + output.extend_from_slice(format!("{ch:04x}").as_bytes()); } } output.extend_from_slice(&string.as_bytes()[start..]); @@ -121,7 +121,7 @@ impl ResourceStorage { #[allow(clippy::unnecessary_lazy_evaluations)] self_.add_resource(resource).unwrap_or_else(|_e| { #[cfg(test)] - eprintln!("Failed to add resource: {:?}", _e) + eprintln!("Failed to add resource: {_e:?}") }) }); @@ -388,7 +388,7 @@ static TEMPLATE_ARGUMENT_RE: [Lazy; 9] = [ ]; fn template_argument_regex(i: usize) -> Regex { - Regex::new(&format!(r"\{{\{{{}\}}\}}", i)).unwrap() + Regex::new(&format!(r"\{{\{{{i}\}}\}}")).unwrap() } /// Omit the 0th element of `args` (the scriptlet name) when calling this method. @@ -415,7 +415,7 @@ fn with_js_extension(scriptlet_name: &str) -> String { if scriptlet_name.ends_with(".js") { scriptlet_name.to_string() } else { - format!("{}.js", scriptlet_name) + format!("{scriptlet_name}.js") } } diff --git a/src/url_parser/parser.rs b/src/url_parser/parser.rs index 627d8613..66bcd485 100644 --- a/src/url_parser/parser.rs +++ b/src/url_parser/parser.rs @@ -529,10 +529,10 @@ impl Parser { } if host_str.is_ascii() { - write!(&mut self.serialization, "{}", host_str).unwrap(); + write!(&mut self.serialization, "{host_str}").unwrap(); } else { let encoded = idna::domain_to_ascii(host_str)?; - write!(&mut self.serialization, "{}", encoded).unwrap(); + write!(&mut self.serialization, "{encoded}").unwrap(); } let host_end = self.serialization.len(); diff --git a/tests/legacy_harness.rs b/tests/legacy_harness.rs index e87d9312..8eb1b22f 100644 --- a/tests/legacy_harness.rs +++ b/tests/legacy_harness.rs @@ -23,8 +23,7 @@ mod legacy_test_filters { assert_eq!( filter.mask, expected_filter_mask, - "Filter {} mask doesn't match expectation", - raw_filter + "Filter {raw_filter} mask doesn't match expectation" ); let filter_string = filter.filter.string_view(); @@ -511,12 +510,7 @@ mod legacy_check_options { let request = Request::new(url, source_url, request_type).unwrap(); assert!( engine.check_network_request(&request).matched == *expectation, - "Expected match = {} for {} from {} typed {} against {:?}", - expectation, - url, - source_url, - request_type, - rules + "Expected match = {expectation} for {url} from {source_url} typed {request_type} against {rules:?}" ) } } diff --git a/tests/live.rs b/tests/live.rs index 81da7476..a397ef03 100644 --- a/tests/live.rs +++ b/tests/live.rs @@ -34,7 +34,7 @@ fn load_requests() -> Vec { blocked: record.blocked, }); } else { - println!("Could not parse {:?}", result); + println!("Could not parse {result:?}"); } } @@ -68,10 +68,7 @@ static ALL_FILTERS: once_cell::sync::Lazy = async { let body = reqwest::get(DEFAULT_LISTS_URL) .await @@ -241,7 +238,7 @@ fn check_live_redirects() { "Expected match, got filter {:?}, exception {:?}", checked.filter, checked.exception ); - assert!(checked.redirect.is_some(), "{:#?}", checked); + assert!(checked.redirect.is_some(), "{checked:#?}"); // Check for the specific expected return script value in base64 assert_eq!(checked.redirect.unwrap(), "data:application/javascript;base64,LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBpZiAoIGFtem5hZHMgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHcgPSB3aW5kb3c7CiAgICB2YXIgbm9vcGZuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgOwogICAgfS5iaW5kKCk7CiAgICB2YXIgYW16bmFkcyA9IHsKICAgICAgICBhcHBlbmRTY3JpcHRUYWc6IG5vb3BmbiwKICAgICAgICBhcHBlbmRUYXJnZXRpbmdUb0FkU2VydmVyVXJsOiBub29wZm4sCiAgICAgICAgYXBwZW5kVGFyZ2V0aW5nVG9RdWVyeVN0cmluZzogbm9vcGZuLAogICAgICAgIGNsZWFyVGFyZ2V0aW5nRnJvbUdQVEFzeW5jOiBub29wZm4sCiAgICAgICAgZG9BbGxUYXNrczogbm9vcGZuLAogICAgICAgIGRvR2V0QWRzQXN5bmM6IG5vb3BmbiwKICAgICAgICBkb1Rhc2s6IG5vb3BmbiwKICAgICAgICBkZXRlY3RJZnJhbWVBbmRHZXRVUkw6IG5vb3BmbiwKICAgICAgICBnZXRBZHM6IG5vb3BmbiwKICAgICAgICBnZXRBZHNBc3luYzogbm9vcGZuLAogICAgICAgIGdldEFkRm9yU2xvdDogbm9vcGZuLAogICAgICAgIGdldEFkc0NhbGxiYWNrOiBub29wZm4sCiAgICAgICAgZ2V0RGlzcGxheUFkczogbm9vcGZuLAogICAgICAgIGdldERpc3BsYXlBZHNBc3luYzogbm9vcGZuLAogICAgICAgIGdldERpc3BsYXlBZHNDYWxsYmFjazogbm9vcGZuLAogICAgICAgIGdldEtleXM6IG5vb3BmbiwKICAgICAgICBnZXRSZWZlcnJlclVSTDogbm9vcGZuLAogICAgICAgIGdldFNjcmlwdFNvdXJjZTogbm9vcGZuLAogICAgICAgIGdldFRhcmdldGluZzogbm9vcGZuLAogICAgICAgIGdldFRva2Vuczogbm9vcGZuLAogICAgICAgIGdldFZhbGlkTWlsbGlzZWNvbmRzOiBub29wZm4sCiAgICAgICAgZ2V0VmlkZW9BZHM6IG5vb3BmbiwKICAgICAgICBnZXRWaWRlb0Fkc0FzeW5jOiBub29wZm4sCiAgICAgICAgZ2V0VmlkZW9BZHNDYWxsYmFjazogbm9vcGZuLAogICAgICAgIGhhbmRsZUNhbGxCYWNrOiBub29wZm4sCiAgICAgICAgaGFzQWRzOiBub29wZm4sCiAgICAgICAgcmVuZGVyQWQ6IG5vb3BmbiwKICAgICAgICBzYXZlQWRzOiBub29wZm4sCiAgICAgICAgc2V0VGFyZ2V0aW5nOiBub29wZm4sCiAgICAgICAgc2V0VGFyZ2V0aW5nRm9yR1BUQXN5bmM6IG5vb3BmbiwKICAgICAgICBzZXRUYXJnZXRpbmdGb3JHUFRTeW5jOiBub29wZm4sCiAgICAgICAgdHJ5R2V0QWRzQXN5bmM6IG5vb3BmbiwKICAgICAgICB1cGRhdGVBZHM6IG5vb3BmbgogICAgfTsKICAgIHcuYW16bmFkcyA9IGFtem5hZHM7CiAgICB3LmFtem5fYWRzID0gdy5hbXpuX2FkcyB8fCBub29wZm47CiAgICB3LmFheF93cml0ZSA9IHcuYWF4X3dyaXRlIHx8IG5vb3BmbjsKICAgIHcuYWF4X3JlbmRlcl9hZCA9IHcuYWF4X3JlbmRlcl9hZCB8fCBub29wZm47Cn0pKCk7Cg=="); } @@ -259,7 +256,7 @@ fn check_live_redirects() { "Expected match, got filter {:?}, exception {:?}", checked.filter, checked.exception ); - assert!(checked.redirect.is_some(), "{:#?}", checked); + assert!(checked.redirect.is_some(), "{checked:#?}"); assert_eq!(checked.redirect.unwrap(), "data:application/javascript;base64,LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kb3VibGVjbGljay1ncHQvcmVmZXJlbmNlCiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH0uYmluZCgpOwogICAgY29uc3Qgbm9vcHRoaXNmbiA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgfTsKICAgIGNvbnN0IG5vb3BudWxsZm4gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH07CiAgICBjb25zdCBub29wYXJyYXlmbiA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBbXTsKICAgIH07CiAgICBjb25zdCBub29wc3RyZm4gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gJyc7CiAgICB9OwogICAgLy8KICAgIGNvbnN0IGNvbXBhbmlvbkFkc1NlcnZpY2UgPSB7CiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcjogbm9vcHRoaXNmbiwKICAgICAgICBlbmFibGVTeW5jTG9hZGluZzogbm9vcGZuLAogICAgICAgIHNldFJlZnJlc2hVbmZpbGxlZFNsb3RzOiBub29wZm4KICAgIH07CiAgICBjb25zdCBjb250ZW50U2VydmljZSA9IHsKICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBub29wdGhpc2ZuLAogICAgICAgIHNldENvbnRlbnQ6IG5vb3BmbgogICAgfTsKICAgIGNvbnN0IFBhc3NiYWNrU2xvdCA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIGxldCBwID0gUGFzc2JhY2tTbG90LnByb3RvdHlwZTsKICAgIHAuZGlzcGxheSA9IG5vb3BmbjsKICAgIHAuZ2V0ID0gbm9vcG51bGxmbjsKICAgIHAuc2V0ID0gbm9vcHRoaXNmbjsKICAgIHAuc2V0Q2xpY2tVcmwgPSBub29wdGhpc2ZuOwogICAgcC5zZXRUYWdGb3JDaGlsZERpcmVjdGVkVHJlYXRtZW50ID0gbm9vcHRoaXNmbjsKICAgIHAuc2V0VGFyZ2V0aW5nID0gbm9vcHRoaXNmbjsKICAgIHAudXBkYXRlVGFyZ2V0aW5nRnJvbU1hcCA9IG5vb3B0aGlzZm47CiAgICBjb25zdCBwdWJBZHNTZXJ2aWNlID0gewogICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IG5vb3B0aGlzZm4sCiAgICAgICAgY2xlYXI6IG5vb3BmbiwKICAgICAgICBjbGVhckNhdGVnb3J5RXhjbHVzaW9uczogbm9vcHRoaXNmbiwKICAgICAgICBjbGVhclRhZ0ZvckNoaWxkRGlyZWN0ZWRUcmVhdG1lbnQ6IG5vb3B0aGlzZm4sCiAgICAgICAgY2xlYXJUYXJnZXRpbmc6IG5vb3B0aGlzZm4sCiAgICAgICAgY29sbGFwc2VFbXB0eURpdnM6IG5vb3BmbiwKICAgICAgICBkZWZpbmVPdXRPZlBhZ2VQYXNzYmFjazogZnVuY3Rpb24oKSB7IHJldHVybiBuZXcgUGFzc2JhY2tTbG90KCk7IH0sCiAgICAgICAgZGVmaW5lUGFzc2JhY2s6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbmV3IFBhc3NiYWNrU2xvdCgpOyB9LAogICAgICAgIGRpc2FibGVJbml0aWFsTG9hZDogbm9vcGZuLAogICAgICAgIGRpc3BsYXk6IG5vb3BmbiwKICAgICAgICBlbmFibGVBc3luY1JlbmRlcmluZzogbm9vcGZuLAogICAgICAgIGVuYWJsZVNpbmdsZVJlcXVlc3Q6IG5vb3BmbiwKICAgICAgICBlbmFibGVTeW5jUmVuZGVyaW5nOiBub29wZm4sCiAgICAgICAgZW5hYmxlVmlkZW9BZHM6IG5vb3BmbiwKICAgICAgICBnZXQ6IG5vb3BudWxsZm4sCiAgICAgICAgZ2V0QXR0cmlidXRlS2V5czogbm9vcGFycmF5Zm4sCiAgICAgICAgZ2V0VGFyZ2V0aW5nOiBub29wZm4sCiAgICAgICAgZ2V0VGFyZ2V0aW5nS2V5czogbm9vcGFycmF5Zm4sCiAgICAgICAgZ2V0U2xvdHM6IG5vb3BhcnJheWZuLAogICAgICAgIHJlZnJlc2g6IG5vb3BmbiwKICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyOiBub29wZm4sCiAgICAgICAgc2V0OiBub29wdGhpc2ZuLAogICAgICAgIHNldENhdGVnb3J5RXhjbHVzaW9uOiBub29wdGhpc2ZuLAogICAgICAgIHNldENlbnRlcmluZzogbm9vcGZuLAogICAgICAgIHNldENvb2tpZU9wdGlvbnM6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0Rm9yY2VTYWZlRnJhbWU6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0TG9jYXRpb246IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0UHVibGlzaGVyUHJvdmlkZWRJZDogbm9vcHRoaXNmbiwKICAgICAgICBzZXRQcml2YWN5U2V0dGluZ3M6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0UmVxdWVzdE5vblBlcnNvbmFsaXplZEFkczogbm9vcHRoaXNmbiwKICAgICAgICBzZXRTYWZlRnJhbWVDb25maWc6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0VGFnRm9yQ2hpbGREaXJlY3RlZFRyZWF0bWVudDogbm9vcHRoaXNmbiwKICAgICAgICBzZXRUYXJnZXRpbmc6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0VmlkZW9Db250ZW50OiBub29wdGhpc2ZuLAogICAgICAgIHVwZGF0ZUNvcnJlbGF0b3I6IG5vb3BmbgogICAgfTsKICAgIGNvbnN0IFNpemVNYXBwaW5nQnVpbGRlciA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIHAgPSBTaXplTWFwcGluZ0J1aWxkZXIucHJvdG90eXBlOwogICAgcC5hZGRTaXplID0gbm9vcHRoaXNmbjsKICAgIHAuYnVpbGQgPSBub29wbnVsbGZuOwogICAgY29uc3QgU2xvdCA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIHAgPSBTbG90LnByb3RvdHlwZTsKICAgIHAuYWRkU2VydmljZSA9IG5vb3B0aGlzZm47CiAgICBwLmNsZWFyQ2F0ZWdvcnlFeGNsdXNpb25zID0gbm9vcHRoaXNmbjsKICAgIHAuY2xlYXJUYXJnZXRpbmcgPSBub29wdGhpc2ZuOwogICAgcC5kZWZpbmVTaXplTWFwcGluZyA9IG5vb3B0aGlzZm47CiAgICBwLmdldCA9IG5vb3BudWxsZm47CiAgICBwLmdldEFkVW5pdFBhdGggPSBub29wYXJyYXlmbjsKICAgIHAuZ2V0QXR0cmlidXRlS2V5cyA9IG5vb3BhcnJheWZuOwogICAgcC5nZXRDYXRlZ29yeUV4Y2x1c2lvbnMgPSBub29wYXJyYXlmbjsKICAgIHAuZ2V0RG9tSWQgPSBub29wc3RyZm47CiAgICBwLmdldFJlc3BvbnNlSW5mb3JtYXRpb24gPSBub29wbnVsbGZuOwogICAgcC5nZXRTbG90RWxlbWVudElkID0gbm9vcHN0cmZuOwogICAgcC5nZXRTbG90SWQgPSBub29wdGhpc2ZuOwogICAgcC5nZXRUYXJnZXRpbmcgPSBub29wYXJyYXlmbjsKICAgIHAuZ2V0VGFyZ2V0aW5nS2V5cyA9IG5vb3BhcnJheWZuOwogICAgcC5zZXQgPSBub29wdGhpc2ZuOwogICAgcC5zZXRDYXRlZ29yeUV4Y2x1c2lvbiA9IG5vb3B0aGlzZm47CiAgICBwLnNldENsaWNrVXJsID0gbm9vcHRoaXNmbjsKICAgIHAuc2V0Q29sbGFwc2VFbXB0eURpdiA9IG5vb3B0aGlzZm47CiAgICBwLnNldFRhcmdldGluZyA9IG5vb3B0aGlzZm47CiAgICBwLnVwZGF0ZVRhcmdldGluZ0Zyb21NYXAgPSBub29wdGhpc2ZuOwogICAgLy8KICAgIGNvbnN0IGdwdCA9IHdpbmRvdy5nb29nbGV0YWcgfHwge307CiAgICBjb25zdCBjbWQgPSBncHQuY21kIHx8IFtdOwogICAgZ3B0LmFwaVJlYWR5ID0gdHJ1ZTsKICAgIGdwdC5jbWQgPSBbXTsKICAgIGdwdC5jbWQucHVzaCA9IGZ1bmN0aW9uKGEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBhKCk7CiAgICAgICAgfSBjYXRjaCAoZXgpIHsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9OwogICAgZ3B0LmNvbXBhbmlvbkFkcyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gY29tcGFuaW9uQWRzU2VydmljZTsgfTsKICAgIGdwdC5jb250ZW50ID0gZnVuY3Rpb24oKSB7IHJldHVybiBjb250ZW50U2VydmljZTsgfTsKICAgIGdwdC5kZWZpbmVPdXRPZlBhZ2VTbG90ID0gZnVuY3Rpb24oKSB7IHJldHVybiBuZXcgU2xvdCgpOyB9OwogICAgZ3B0LmRlZmluZVNsb3QgPSBmdW5jdGlvbigpIHsgcmV0dXJuIG5ldyBTbG90KCk7IH07CiAgICBncHQuZGVzdHJveVNsb3RzID0gbm9vcGZuOwogICAgZ3B0LmRpc2FibGVQdWJsaXNoZXJDb25zb2xlID0gbm9vcGZuOwogICAgZ3B0LmRpc3BsYXkgPSBub29wZm47CiAgICBncHQuZW5hYmxlU2VydmljZXMgPSBub29wZm47CiAgICBncHQuZ2V0VmVyc2lvbiA9IG5vb3BzdHJmbjsKICAgIGdwdC5wdWJhZHMgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHB1YkFkc1NlcnZpY2U7IH07CiAgICBncHQucHViYWRzUmVhZHkgPSB0cnVlOwogICAgZ3B0LnNldEFkSWZyYW1lVGl0bGUgPSBub29wZm47CiAgICBncHQuc2l6ZU1hcHBpbmcgPSBmdW5jdGlvbigpIHsgcmV0dXJuIG5ldyBTaXplTWFwcGluZ0J1aWxkZXIoKTsgfTsKICAgIHdpbmRvdy5nb29nbGV0YWcgPSBncHQ7CiAgICB3aGlsZSAoIGNtZC5sZW5ndGggIT09IDAgKSB7CiAgICAgICAgZ3B0LmNtZC5wdXNoKGNtZC5zaGlmdCgpKTsKICAgIH0KfSkoKTsK"); } } diff --git a/tests/matching.rs b/tests/matching.rs index 731967b8..9ef9e905 100644 --- a/tests/matching.rs +++ b/tests/matching.rs @@ -67,8 +67,7 @@ fn check_filter_matching() { let network_filter_res = NetworkFilter::parse(&filter, true, opts); assert!( network_filter_res.is_ok(), - "Could not parse filter {}", - filter + "Could not parse filter {filter}" ); let network_filter = network_filter_res.unwrap(); @@ -111,8 +110,7 @@ fn check_engine_matching() { let network_filter_res = NetworkFilter::parse(&filter, true, opts); assert!( network_filter_res.is_ok(), - "Could not parse filter {}", - filter + "Could not parse filter {filter}" ); let network_filter = network_filter_res.unwrap(); diff --git a/tests/unit/blocker.rs b/tests/unit/blocker.rs index 3b67a1e2..87091e35 100644 --- a/tests/unit/blocker.rs +++ b/tests/unit/blocker.rs @@ -906,7 +906,7 @@ mod blocker_tests { "igshid", ] .iter() - .map(|s| format!("*$removeparam={}", s)) + .map(|s| format!("*$removeparam={s}")) .collect::>(); let (network_filters, _) = parse_filters(&filters, true, Default::default()); @@ -930,8 +930,7 @@ mod blocker_tests { }; assert_eq!( expected, result.rewritten_url, - "Filtering parameters on {} failed", - original + "Filtering parameters on {original} failed" ); } } diff --git a/tests/unit/engine.rs b/tests/unit/engine.rs index ed83ca0d..11e5498f 100644 --- a/tests/unit/engine.rs +++ b/tests/unit/engine.rs @@ -29,7 +29,7 @@ mod tests { let request = Request::new(url, "", "").unwrap(); let matched_rule = engine.check_network_request(&request); if expected_result { - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); } else { assert!( !matched_rule.matched, @@ -63,7 +63,7 @@ mod tests { let request = Request::new(url, "", "").unwrap(); let matched_rule = engine.check_network_request(&request); if expected_result { - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); } else { assert!( !matched_rule.matched, @@ -93,7 +93,7 @@ mod tests { let request = Request::new(url, "", "").unwrap(); let matched_rule = engine.check_network_request(&request); if expected_result { - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); } else { assert!( !matched_rule.matched, @@ -124,7 +124,7 @@ mod tests { let request = Request::new(url, "", "").unwrap(); let matched_rule = engine.check_network_request(&request); if expected_result { - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); } else { assert!( !matched_rule.matched, @@ -162,7 +162,7 @@ mod tests { let request = Request::new(url, "", "").unwrap(); let matched_rule = deserialized_engine.check_network_request(&request); if expected_result { - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); } else { assert!( !matched_rule.matched, @@ -184,7 +184,7 @@ mod tests { let mut engine = Engine::from_rules(["ad-banner"], Default::default()); let data = engine.serialize().unwrap(); const EXPECTED_HASH: u64 = 5723845290597955159; - assert_eq!(hash(&data), EXPECTED_HASH, "{}", HASH_MISMATCH_MSG); + assert_eq!(hash(&data), EXPECTED_HASH, "{HASH_MISMATCH_MSG}"); engine.deserialize(&data).unwrap(); } @@ -194,7 +194,7 @@ mod tests { engine.use_tags(&["abc"]); let data = engine.serialize().unwrap(); const EXPECTED_HASH: u64 = 9626816743810307798; - assert_eq!(hash(&data), EXPECTED_HASH, "{}", HASH_MISMATCH_MSG); + assert_eq!(hash(&data), EXPECTED_HASH, "{HASH_MISMATCH_MSG}"); engine.deserialize(&data).unwrap(); } @@ -208,7 +208,7 @@ mod tests { ]); let serialized = engine.serialize().unwrap(); - println!("Engine serialized: {:?}", serialized); + println!("Engine serialized: {serialized:?}"); engine.deserialize(&serialized).unwrap(); } @@ -224,7 +224,7 @@ mod tests { 4130628479730907288 }; - assert_eq!(hash(&data), expected_hash, "{}", HASH_MISMATCH_MSG); + assert_eq!(hash(&data), expected_hash, "{HASH_MISMATCH_MSG}"); engine.deserialize(&data).unwrap(); } @@ -252,7 +252,7 @@ mod tests { let url = "http://example.com/ad-banner.gif"; let request = Request::new(url, "", "").unwrap(); let matched_rule = engine.check_network_request(&request); - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); assert_eq!( matched_rule.redirect, Some("data:text/plain;base64,".to_owned()), @@ -262,7 +262,7 @@ mod tests { let url = "http://example.com/script.js"; let request = Request::new(url, "", "").unwrap(); let matched_rule = engine.check_network_request(&request); - assert!(matched_rule.matched, "Expected match for {}", url); + assert!(matched_rule.matched, "Expected match for {url}"); assert_eq!( matched_rule.redirect, Some(format!( @@ -778,7 +778,7 @@ mod tests { engine.use_resources(resources); fn wrap_try(scriptlet_content: &str) -> String { - format!("try {{\n{}\n}} catch ( e ) {{ }}\n", scriptlet_content) + format!("try {{\n{scriptlet_content}\n}} catch ( e ) {{ }}\n") } assert_eq!( diff --git a/tests/unit/filters/cosmetic.rs b/tests/unit/filters/cosmetic.rs index b8f3d80b..0dc01be9 100644 --- a/tests/unit/filters/cosmetic.rs +++ b/tests/unit/filters/cosmetic.rs @@ -652,7 +652,7 @@ mod parse_tests { /// tests, but procedural filters cannot be generic. fn check_procedural(raw: &str, expected_selectors: Vec) { check_parse_result( - &format!("example.com##{}", raw), + &format!("example.com##{raw}"), CosmeticFilterBreakdown { selector: SelectorType::Procedural(expected_selectors), hostnames: sort_hash_domains(vec!["example.com"]), diff --git a/tests/unit/filters/network.rs b/tests/unit/filters/network.rs index 11118c2c..7ce2721f 100644 --- a/tests/unit/filters/network.rs +++ b/tests/unit/filters/network.rs @@ -1015,7 +1015,7 @@ mod parse_tests { for option in options { let filter = - NetworkFilter::parse(&format!("||foo.com${}", option), true, Default::default()); + NetworkFilter::parse(&format!("||foo.com${option}"), true, Default::default()); assert!(filter.err().is_some()); } } @@ -1074,12 +1074,9 @@ mod parse_tests { for option in options { // positive { - let filter = NetworkFilter::parse( - &format!("||foo.com${}", option), - true, - Default::default(), - ) - .unwrap(); + let filter = + NetworkFilter::parse(&format!("||foo.com${option}"), true, Default::default()) + .unwrap(); let mut defaults = default_network_filter_breakdown(); defaults.hostname = Some(String::from("foo.com")); defaults.is_hostname_anchor = true; @@ -1092,7 +1089,7 @@ mod parse_tests { { let filter = NetworkFilter::parse( - &format!("||foo.com$object,{}", option), + &format!("||foo.com$object,{option}"), true, Default::default(), ) @@ -1110,7 +1107,7 @@ mod parse_tests { { let filter = NetworkFilter::parse( - &format!("||foo.com$domain=bar.com,{}", option), + &format!("||foo.com$domain=bar.com,{option}"), true, Default::default(), ) @@ -1128,12 +1125,9 @@ mod parse_tests { // negative { - let filter = NetworkFilter::parse( - &format!("||foo.com$~{}", option), - true, - Default::default(), - ) - .unwrap(); + let filter = + NetworkFilter::parse(&format!("||foo.com$~{option}"), true, Default::default()) + .unwrap(); let mut defaults = default_network_filter_breakdown(); defaults.hostname = Some(String::from("foo.com")); defaults.is_hostname_anchor = true; @@ -1146,7 +1140,7 @@ mod parse_tests { { let filter = NetworkFilter::parse( - &format!("||foo.com${},~{}", option, option), + &format!("||foo.com${option},~{option}"), true, Default::default(), ) diff --git a/tests/unit/filters/network_matchers.rs b/tests/unit/filters/network_matchers.rs index 54392eab..cd61b2b0 100644 --- a/tests/unit/filters/network_matchers.rs +++ b/tests/unit/filters/network_matchers.rs @@ -100,11 +100,7 @@ mod match_tests { assert!( network_filter.matches_test(&request) == matching, - "Expected match={} for {} {:?} on {}", - matching, - filter, - network_filter, - url + "Expected match={matching} for {filter} {network_filter:?} on {url}" ); } @@ -114,11 +110,7 @@ mod match_tests { assert!( network_filter.matches_test(&request) == matching, - "Expected match={} for {} {:?} on {}", - matching, - filter, - network_filter, - url + "Expected match={matching} for {filter} {network_filter:?} on {url}" ); } @@ -287,9 +279,7 @@ mod match_tests { .unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } { @@ -304,9 +294,7 @@ mod match_tests { .unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } } @@ -641,9 +629,7 @@ mod match_tests { let request = request::Request::new(url, source, "").unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } { @@ -655,9 +641,7 @@ mod match_tests { let request = request::Request::new(url, source, "xmlhttprequest").unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } // @@ -669,9 +653,7 @@ mod match_tests { let request = request::Request::new(url, source, "stylesheet").unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } } @@ -708,9 +690,7 @@ mod match_tests { let request = request::Request::new(url, source, "script").unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } { @@ -721,9 +701,7 @@ mod match_tests { let request = request::Request::new(url, source, "script").unwrap(); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } } @@ -739,9 +717,7 @@ mod match_tests { assert!(!request.is_third_party); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } { @@ -753,9 +729,7 @@ mod match_tests { assert!(!request.is_third_party); assert!( network_filter.matches_test(&request), - "Expected match for {} on {}", - filter, - url + "Expected match for {filter} on {url}" ); } } diff --git a/tests/unit/optimizer.rs b/tests/unit/optimizer.rs index 28f64afa..a7ad2c45 100644 --- a/tests/unit/optimizer.rs +++ b/tests/unit/optimizer.rs @@ -14,10 +14,7 @@ mod optimization_tests_pattern_group { let is_match = regex.is_match(pattern); assert!( is_match == matches, - "Expected {} match {} = {}", - regex, - pattern, - matches + "Expected {regex} match {pattern} = {matches}" ); } @@ -38,10 +35,7 @@ mod optimization_tests_pattern_group { ); assert!( is_match == matches, - "Expected {} match {} = {}", - filter, - url_path, - matches + "Expected {filter} match {url_path} = {matches}" ); } @@ -342,10 +336,7 @@ mod optimization_tests_pattern_group { let is_match = regex.is_match(pattern); assert!( is_match == matches, - "Expected {} match {} = {}", - regex, - pattern, - matches + "Expected {regex} match {pattern} = {matches}" ); } @@ -366,10 +357,7 @@ mod optimization_tests_pattern_group { ); assert!( is_match == matches, - "Expected {} match {} = {}", - filter, - url_path, - matches + "Expected {filter} match {url_path} = {matches}" ); } diff --git a/tests/unit/resources/resource_assembler.rs b/tests/unit/resources/resource_assembler.rs index ab5c18f5..f4d6c497 100644 --- a/tests/unit/resources/resource_assembler.rs +++ b/tests/unit/resources/resource_assembler.rs @@ -66,8 +66,7 @@ mod tests { false } }), - "{:?}", - name + "{name:?}" ); } @@ -158,8 +157,7 @@ mod tests { _ => false, } }), - "failed to find {}", - name + "failed to find {name}" ); } @@ -254,8 +252,7 @@ mod tests { _ => false, } }), - "failed to find {}", - name + "failed to find {name}" ); } diff --git a/tests/unit/resources/resource_storage.rs b/tests/unit/resources/resource_storage.rs index b2b00054..dc018caa 100644 --- a/tests/unit/resources/resource_storage.rs +++ b/tests/unit/resources/resource_storage.rs @@ -519,12 +519,12 @@ mod scriptlet_storage_tests { if ident.len() > 2 { assert_eq!( resources.get_scriptlet_resources([(*ident, perm)]), - format!("try {{\n{}\n}} catch ( e ) {{ }}\n", ident), + format!("try {{\n{ident}\n}} catch ( e ) {{ }}\n"), ); } else { assert_eq!( resources.get_scriptlet_resources([(*ident, perm)]), - format!("try {{\nperm{}\n}} catch ( e ) {{ }}\n", ident), + format!("try {{\nperm{ident}\n}} catch ( e ) {{ }}\n"), ); } }