Index: test/abp2blocklist.js |
=================================================================== |
--- a/test/abp2blocklist.js |
+++ b/test/abp2blocklist.js |
@@ -57,19 +57,21 @@ |
// (4) exceptions for all rules. |
testRules(test, [ |
"##.whatever", |
"test.com###something", |
"@@||special.test.com^$elemhide", |
"@@||test.com^$generichide" |
], [ |
["^https?://", "css-display-none"], |
- ["^https?://([^/]+\\.)?test\\.com", "ignore-previous-rules"], |
+ ["^https?://([^/]+\\.)?test\\.com([^-_.%a-z0-9].*)?$", |
+ "ignore-previous-rules"], |
["^https?://([^/:]*\\.)?test\\.com[/:]", "css-display-none"], |
- ["^https?://([^/]+\\.)?special\\.test\\.com", "ignore-previous-rules"] |
+ ["^https?://([^/]+\\.)?special\\.test\\.com([^-_.%a-z0-9].*)?$", |
+ "ignore-previous-rules"] |
], rules => rules.map(rule => [rule.trigger["url-filter"], |
rule.action.type])); |
testRules(test, ["#@#whatever"], []); |
testRules(test, ["test.com#@#whatever"], []); |
testRules(test, ["~test.com#@#whatever"], []); |
// We currently completely ignore any element hiding filters that have the |
@@ -79,34 +81,62 @@ |
testRules(test, ["test.com#@#whatever", "##whatever"], []); |
testRules(test, ["~test.com##whatever"], []); |
test.done(); |
}, |
testRequestFilters: function(test) |
{ |
- testRules(test, ["/foo", "||test.com", "http://example.com/foo"], [ |
- {trigger: {"url-filter": "^https?://.*/foo", |
- "resource-type": ["image", "style-sheet", "script", "font", |
- "media", "raw", "document"], |
- "unless-top-url": ["^https?://.*/foo"]}, |
- action: {type: "block"}}, |
- {trigger: {"url-filter": "^https?://([^/]+\\.)?test\\.com", |
- "url-filter-is-case-sensitive": true, |
- "resource-type": ["image", "style-sheet", "script", "font", |
- "media", "raw", "document"], |
- "unless-top-url": ["^https?://([^/]+\\.)?test\\.com"], |
- "top-url-filter-is-case-sensitive": true}, |
- action: {type: "block"}}, |
- {trigger: {"url-filter": "http://example\\.com/foo", |
- "resource-type": ["image", "style-sheet", "script", "font", |
- "media", "raw", "document"], |
- "unless-top-url": ["http://example\\.com/foo"]}, |
- action: {type: "block"}} |
+ testRules(test, [ |
+ "/foo", "||test.com^", "http://example.com/foo", "^foo^" |
+ ], [ |
+ { |
+ trigger: { |
+ "url-filter": "^https?://.*/foo", |
+ "resource-type": ["image", "style-sheet", "script", "font", |
+ "media", "raw", "document"], |
+ "unless-top-url": ["^https?://.*/foo"] |
+ }, |
+ action: {type: "block"} |
+ }, |
+ { |
+ trigger: { |
+ "url-filter": "^https?://([^/]+\\.)?test\\.com([^-_.%a-z0-9].*)?$", |
+ "url-filter-is-case-sensitive": true, |
+ "resource-type": ["image", "style-sheet", "script", "font", |
+ "media", "raw", "document"], |
+ "unless-top-url": [ |
+ "^https?://([^/]+\\.)?test\\.com([^-_.%a-z0-9].*)?$" |
+ ], |
+ "top-url-filter-is-case-sensitive": true |
+ }, |
+ action: {type: "block"} |
+ }, |
+ { |
+ trigger: { |
+ "url-filter": "http://example\\.com/foo", |
+ "resource-type": ["image", "style-sheet", "script", "font", |
+ "media", "raw", "document"], |
+ "unless-top-url": ["http://example\\.com/foo"] |
+ }, |
+ action: {type: "block"} |
+ }, |
+ { |
+ trigger: { |
+ "url-filter": |
+ "^https?://(.*[^-_.%A-Za-z0-9])?foo([^-_.%A-Za-z0-9].*)?$", |
+ "resource-type": ["image", "style-sheet", "script", "font", |
+ "media", "raw", "document"], |
+ "unless-top-url": [ |
+ "^https?://(.*[^-_.%A-Za-z0-9])?foo([^-_.%A-Za-z0-9].*)?$" |
+ ] |
+ }, |
+ action: {type: "block"} |
+ } |
]); |
testRules(test, ["||example.com"], [ |
{trigger: {"url-filter": "^https?://([^/]+\\.)?example\\.com", |
"url-filter-is-case-sensitive": true, |
"resource-type": ["image", "style-sheet", "script", "font", |
"media", "raw", "document"], |
"unless-top-url": ["^https?://([^/]+\\.)?example\\.com"], |
@@ -149,33 +179,50 @@ |
rules => rules.map(rule => rule.action.selector)); |
test.done(); |
}, |
testDomainWhitelisting: function(test) |
{ |
testRules(test, ["@@||example.com^$document"], [ |
- {trigger: {"url-filter": ".*", |
- "if-domain": ["*example.com"]}, |
- action: {type: "ignore-previous-rules"}} |
+ { |
+ trigger: { |
+ "url-filter": ".*", |
+ "if-domain": ["*example.com"] |
+ }, |
+ action: {type: "ignore-previous-rules"} |
+ } |
]); |
testRules(test, ["@@||example.com^$document,image"], [ |
- {trigger: {"url-filter": ".*", |
- "if-domain": ["*example.com"]}, |
- action: {type: "ignore-previous-rules"}}, |
- {trigger: {"url-filter": "^https?://([^/]+\\.)?example\\.com", |
- "url-filter-is-case-sensitive": true, |
- "resource-type": ["image"]}, |
- action: {type: "ignore-previous-rules"}} |
+ { |
+ trigger: { |
+ "url-filter": ".*", |
+ "if-domain": ["*example.com"] |
+ }, |
+ action: {type: "ignore-previous-rules"} |
+ }, |
+ { |
+ trigger: { |
+ "url-filter": "^https?://([^/]+\\.)?example\\.com([^-_.%a-z0-9].*)?$", |
+ "url-filter-is-case-sensitive": true, |
+ "resource-type": ["image"] |
+ }, |
+ action: {type: "ignore-previous-rules"} |
+ } |
]); |
testRules(test, ["@@||example.com/path^$font,document"], [ |
- {trigger: {"url-filter": "^https?://([^/]+\\.)?example\\.com/path", |
- "resource-type": ["font"]}, |
- action: {type: "ignore-previous-rules"}} |
+ { |
+ trigger: { |
+ "url-filter": |
+ "^https?://([^/]+\\.)?example\\.com/path([^-_.%A-Za-z0-9].*)?$", |
+ "resource-type": ["font"] |
+ }, |
+ action: {type: "ignore-previous-rules"} |
+ } |
]); |
test.done(); |
}, |
testGenericblockExceptions: function(test) |
{ |
testRules(test, ["^ad.jpg|", "@@||example.com^$genericblock"], |