@@ -776,40 +776,32 @@ final class ContentBlockerConverterTests: XCTestCase {
776
776
777
777
func testTldWildcardRules( ) {
778
778
var result = converter. convertArray ( rules: [ " surge.*,testcases.adguard.*###case-5-wildcard-for-tld > .test-banner " ] ) ;
779
- XCTAssertEqual ( result. convertedCount, 2 ) ;
779
+ XCTAssertEqual ( result. convertedCount, 1 ) ;
780
780
781
781
var decoded = try ! parseJsonString ( json: result. converted) ;
782
- XCTAssertEqual ( decoded. count, 2 ) ;
782
+ XCTAssertEqual ( decoded. count, 1 ) ;
783
783
XCTAssertEqual ( decoded [ 0 ] . trigger. urlFilter, URL_FILTER_CSS_RULES) ;
784
784
XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain ? [ 0 ] , " *surge.com " ) ;
785
785
XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain ? [ 1 ] , " *surge.ru " ) ;
786
786
XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain ? [ 2 ] , " *surge.net " ) ;
787
- XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain? . count, 250 ) ;
788
-
789
- XCTAssertEqual ( decoded [ 1 ] . trigger. urlFilter, URL_FILTER_CSS_RULES) ;
790
- XCTAssertNotNil ( decoded [ 1 ] . trigger. ifDomain ? [ 0 ] ) ;
791
- XCTAssertEqual ( decoded [ 1 ] . trigger. ifDomain? . count, 150 ) ;
787
+ XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain? . count, 400 ) ;
792
788
793
789
794
790
result = converter. convertArray ( rules: [ " ||*/test-files/adguard.png$domain=surge.*|testcases.adguard.* " ] ) ;
795
- XCTAssertEqual ( result. convertedCount, 2 ) ;
791
+ XCTAssertEqual ( result. convertedCount, 1 ) ;
796
792
797
793
decoded = try ! parseJsonString ( json: result. converted) ;
798
- XCTAssertEqual ( decoded. count, 2 ) ;
794
+ XCTAssertEqual ( decoded. count, 1 ) ;
799
795
XCTAssertEqual ( decoded [ 0 ] . trigger. urlFilter, START_URL_UNESCAPED + " .* \\ /test-files \\ /adguard \\ .png " ) ;
800
796
XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain ? [ 0 ] , " *surge.com " ) ;
801
797
XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain ? [ 1 ] , " *surge.ru " ) ;
802
798
XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain ? [ 2 ] , " *surge.net " ) ;
803
- XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain? . count, 250 ) ;
799
+ XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain? . count, 400 ) ;
804
800
805
801
var regex = try ! NSRegularExpression ( pattern: decoded [ 0 ] . trigger. urlFilter!) ;
806
802
XCTAssertTrue ( SimpleRegex . isMatch ( regex: regex, target: " https://test.com/test-files/adguard.png " ) ) ;
807
803
808
- XCTAssertEqual ( decoded [ 1 ] . trigger. urlFilter, START_URL_UNESCAPED + " .* \\ /test-files \\ /adguard \\ .png " ) ;
809
- XCTAssertNotNil ( decoded [ 1 ] . trigger. ifDomain ? [ 0 ] ) ;
810
- XCTAssertEqual ( decoded [ 1 ] . trigger. ifDomain? . count, 150 ) ;
811
-
812
- regex = try ! NSRegularExpression ( pattern: decoded [ 1 ] . trigger. urlFilter!) ;
804
+ regex = try ! NSRegularExpression ( pattern: decoded [ 0 ] . trigger. urlFilter!) ;
813
805
XCTAssertTrue ( SimpleRegex . isMatch ( regex: regex, target: " https://test.com/test-files/adguard.png " ) ) ;
814
806
815
807
result = converter. convertArray ( rules: [ " |http$script,domain=forbes.* " ] ) ;
@@ -2474,6 +2466,28 @@ final class ContentBlockerConverterTests: XCTestCase {
2474
2466
XCTAssertEqual ( decoded [ 0 ] . action. type, " script " )
2475
2467
XCTAssertEqual ( decoded [ 0 ] . action. script, " window.adv_id = null; " )
2476
2468
}
2469
+
2470
+ func testExcludingRulesWithRegex( ) {
2471
+ var rules = [ " ||example.org$domain=/test \\ .com/ " ]
2472
+
2473
+ var result = converter. convertArray ( rules: rules, safariVersion: . safari15)
2474
+ XCTAssertEqual ( result. converted, ConversionResult . EMPTY_RESULT_JSON) ;
2475
+
2476
+ rules = [
2477
+ " /example1 \\ .org/#%#alert('1'); " ,
2478
+ " ||example2.org$domain=/test2 \\ .com/ " ,
2479
+ " ||example3.org$domain=test3.com/ " ,
2480
+ " /example4 \\ .org/##.adv "
2481
+ ]
2482
+
2483
+ result = converter. convertArray ( rules: rules, safariVersion: . safari15)
2484
+ let decoded = try ! parseJsonString ( json: result. converted)
2485
+ XCTAssertEqual ( decoded. count, 1 )
2486
+
2487
+ XCTAssertEqual ( decoded [ 0 ] . trigger. ifDomain, [ " *test3.com/ " ] )
2488
+ XCTAssertEqual ( decoded [ 0 ] . trigger. urlFilter, " ^[htpsw]+: \\ / \\ /([a-z0-9-]+ \\ .)?example3 \\ .org " )
2489
+ XCTAssertEqual ( decoded [ 0 ] . action. type, " block " )
2490
+ }
2477
2491
2478
2492
static var allTests = [
2479
2493
( " testEmpty " , testEmpty) ,
@@ -2538,5 +2552,6 @@ final class ContentBlockerConverterTests: XCTestCase {
2538
2552
( " testXpathRules " , testXpathRules) ,
2539
2553
( " testApplyMultidomainCosmeticExclusions " , testApplyMultidomainCosmeticExclusions) ,
2540
2554
( " testApplyMultidomainAdvancedExclusions " , testApplyMultidomainAdvancedExclusions) ,
2555
+ ( " testExcludingRulesWithRegex " , testExcludingRulesWithRegex) ,
2541
2556
]
2542
2557
}
0 commit comments