Skip to content

Commit 4dd7c81

Browse files
author
tvinzz
committed
Merge branch 'master' into fix/AG-8223
2 parents 930eebc + 3ba0599 commit 4dd7c81

File tree

1 file changed

+67
-16
lines changed

1 file changed

+67
-16
lines changed

Tests/ContentBlockerConverterTests/ContentBlockerConverterTests.swift

+67-16
Original file line numberDiff line numberDiff line change
@@ -1605,7 +1605,7 @@ final class ContentBlockerConverterTests: XCTestCase {
16051605
XCTAssertEqual(decoded[0].action.type, "scriptlet");
16061606
XCTAssertEqual(decoded[0].action.scriptlet, "abort-on-property-read");
16071607
}
1608-
1608+
16091609
func testOptimizeRules() {
16101610
var result = converter.convertArray(rules: [
16111611
"example.org##.banner1",
@@ -1614,66 +1614,66 @@ final class ContentBlockerConverterTests: XCTestCase {
16141614
"example.org##.banner4",
16151615
"example.org##.banner5",
16161616
], safariVersion: SafariVersion.safari14, optimize: true, advancedBlocking: false);
1617-
1617+
16181618
// 5 cosmetic rules with same domain optimized in 1 rule
16191619
XCTAssertEqual(result.convertedCount, 1);
1620-
1620+
16211621
result = converter.convertArray(rules: [
16221622
"example.org##.banner",
16231623
"example.org##.banner",
16241624
"example.org##.banner",
16251625
"example.org##.banner",
16261626
"example.org##.banner",
16271627
], safariVersion: SafariVersion.safari14, optimize: true, advancedBlocking: false);
1628-
1628+
16291629
// 5 similar cosmetic rules domain optimized in 1 rule (removed duplicates)
16301630
XCTAssertEqual(result.convertedCount, 1);
1631-
1631+
16321632
result = converter.convertArray(rules: [
16331633
"example1.org##.banner",
16341634
"example2.org##.banner",
16351635
"example3.org##.banner",
16361636
"example4.org##.banner",
16371637
"example5.org##.banner",
16381638
], safariVersion: SafariVersion.safari14, optimize: true, advancedBlocking: false);
1639-
1639+
16401640
// cosmetic rules with different domain but same selector didn't optimized
16411641
XCTAssertEqual(result.convertedCount, 5);
1642-
1642+
16431643
result = converter.convertArray(rules: [
16441644
"||example1.org",
16451645
"||example2.org",
16461646
"||example3.org",
16471647
"||example4.org",
16481648
"||example5.org",
16491649
], safariVersion: SafariVersion.safari14, optimize: true, advancedBlocking: false);
1650-
1650+
16511651
// blocking rules didn't optimized
16521652
XCTAssertEqual(result.convertedCount, 5);
1653-
1653+
16541654
result = converter.convertArray(rules: [
16551655
"||example.org",
16561656
"||example.org",
16571657
"||example.org",
16581658
"||example.org",
16591659
"||example.org",
16601660
], safariVersion: SafariVersion.safari14, optimize: true, advancedBlocking: false);
1661-
1661+
16621662
// similar blocking rules didn't optimized
16631663
XCTAssertEqual(result.convertedCount, 5);
1664-
1664+
16651665
result = converter.convertArray(rules: [
16661666
"@@||*$document,domain=~example.org",
16671667
"@@||*$document,domain=~example.org",
16681668
"@@||*$document,domain=~example.org",
16691669
"@@||*$document,domain=~example.org",
16701670
"@@||*$document,domain=~example.org",
16711671
], safariVersion: SafariVersion.safari14, optimize: true, advancedBlocking: false);
1672-
1672+
16731673
// similar inverted allowlist rules didn't optimized
16741674
XCTAssertEqual(result.convertedCount, 5);
16751675
}
1676-
1676+
16771677
func testLoadContext() {
16781678
var rules = ["||test.com^$subdocument,domain=example.com"];
16791679
var result = converter.convertArray(rules: rules, safariVersion: .safari15);
@@ -1682,7 +1682,7 @@ final class ContentBlockerConverterTests: XCTestCase {
16821682
var decoded = try! parseJsonString(json: result.converted);
16831683
XCTAssertEqual(decoded.count, 1);
16841684
XCTAssertEqual(decoded[0].trigger.loadContext, ["child-frame"]);
1685-
1685+
16861686
result = converter.convertArray(rules: rules, safariVersion: .safari14);
16871687
XCTAssertEqual(result.convertedCount, 1);
16881688

@@ -1698,14 +1698,14 @@ final class ContentBlockerConverterTests: XCTestCase {
16981698
decoded = try! parseJsonString(json: result.converted);
16991699
XCTAssertEqual(decoded.count, 1);
17001700
XCTAssertEqual(decoded[0].trigger.loadContext, ["top-frame"]);
1701-
1701+
17021702
result = converter.convertArray(rules: rules, safariVersion: .safari14);
17031703
XCTAssertEqual(result.convertedCount, 1);
17041704

17051705
decoded = try! parseJsonString(json: result.converted);
17061706
XCTAssertEqual(decoded.count, 1);
17071707
XCTAssertNil(decoded[0].trigger.loadContext);
1708-
1708+
17091709
rules = ["@@||test.com^$subdocument,domain=example.com"];
17101710
result = converter.convertArray(rules: rules, safariVersion: .safari15);
17111711
XCTAssertEqual(result.convertedCount, 1);
@@ -1715,6 +1715,56 @@ final class ContentBlockerConverterTests: XCTestCase {
17151715
XCTAssertEqual(decoded[0].trigger.loadContext, ["child-frame"]);
17161716
}
17171717

1718+
func testResourceTypeForVariousSafariVersions() {
1719+
// Safari 15
1720+
var result = converter.convertArray(rules: ["||miner.pr0gramm.com^$websocket"], safariVersion: .safari15);
1721+
XCTAssertEqual(result.convertedCount, 1);
1722+
1723+
var decoded = try! parseJsonString(json: result.converted);
1724+
XCTAssertEqual(decoded.count, 1);
1725+
XCTAssertEqual(decoded[0].trigger.resourceType, ["websocket"]);
1726+
1727+
// Safari 14
1728+
result = converter.convertArray(rules: ["||miner.pr0gramm.com^$websocket"], safariVersion: .safari14);
1729+
XCTAssertEqual(result.convertedCount, 1);
1730+
1731+
decoded = try! parseJsonString(json: result.converted);
1732+
XCTAssertEqual(decoded.count, 1);
1733+
XCTAssertEqual(decoded[0].trigger.resourceType, ["raw"]);
1734+
1735+
// test default safari version
1736+
result = converter.convertArray(rules: ["||miner.pr0gramm.com^$websocket"]);
1737+
XCTAssertEqual(result.convertedCount, 1);
1738+
1739+
decoded = try! parseJsonString(json: result.converted);
1740+
XCTAssertEqual(decoded.count, 1);
1741+
XCTAssertEqual(decoded[0].trigger.resourceType, ["raw"]);
1742+
1743+
// Safari 15
1744+
result = converter.convertArray(rules: ["||miner.pr0gramm.com^$xmlhttprequest"], safariVersion: .safari15);
1745+
XCTAssertEqual(result.convertedCount, 1);
1746+
1747+
decoded = try! parseJsonString(json: result.converted);
1748+
XCTAssertEqual(decoded.count, 1);
1749+
XCTAssertEqual(decoded[0].trigger.resourceType, ["fetch"]);
1750+
1751+
// Safari 14
1752+
result = converter.convertArray(rules: ["||miner.pr0gramm.com^$xmlhttprequest"], safariVersion: .safari14);
1753+
XCTAssertEqual(result.convertedCount, 1);
1754+
1755+
decoded = try! parseJsonString(json: result.converted);
1756+
XCTAssertEqual(decoded.count, 1);
1757+
XCTAssertEqual(decoded[0].trigger.resourceType, ["raw"]);
1758+
1759+
// test default safari version
1760+
result = converter.convertArray(rules: ["||miner.pr0gramm.com^$xmlhttprequest"]);
1761+
XCTAssertEqual(result.convertedCount, 1);
1762+
1763+
decoded = try! parseJsonString(json: result.converted);
1764+
XCTAssertEqual(decoded.count, 1);
1765+
XCTAssertEqual(decoded[0].trigger.resourceType, ["raw"]);
1766+
}
1767+
17181768
static var allTests = [
17191769
("testEmpty", testEmpty),
17201770
("testConvertComment", testConvertComment),
@@ -1763,5 +1813,6 @@ final class ContentBlockerConverterTests: XCTestCase {
17631813
("testAdvancedBlockingExceptions", testAdvancedBlockingExceptions),
17641814
("testOptimizeRules", testOptimizeRules),
17651815
("testLoadContext", testLoadContext),
1816+
("testResourceTypeForVariousSafariVersions", testResourceTypeForVariousSafariVersions),
17661817
]
17671818
}

0 commit comments

Comments
 (0)