| Index: test/filterClasses.js |
| diff --git a/test/filterClasses.js b/test/filterClasses.js |
| index 9ca831741b625e69d9337d245494e222fc62d84b..401a9f33f7e1d1191a2b15d4fe4ecfcc56bfccf4 100644 |
| --- a/test/filterClasses.js |
| +++ b/test/filterClasses.js |
| @@ -44,7 +44,7 @@ exports.setUp = function(callback) |
| ElemHideEmulationFilter} = sandboxedRequire("../lib/filterClasses") |
| ); |
| t = RegExpFilter.typeMap; |
| - defaultTypes = 0x7FFFFFFF & ~(t.ELEMHIDE | t.DOCUMENT | t.POPUP | |
| + defaultTypes = 0x7FFFFFFF & ~(t.CSP | t.ELEMHIDE | t.DOCUMENT | t.POPUP | |
| t.GENERICHIDE | t.GENERICBLOCK); |
| callback(); |
| @@ -93,6 +93,7 @@ function serializeFilter(filter) |
| { |
| result.push("type=filterlist"); |
| result.push("collapse=" + filter.collapse); |
| + result.push("csp=" + filter.csp); |
| } |
| else if (filter instanceof WhitelistFilter) |
| result.push("type=whitelist"); |
| @@ -141,9 +142,9 @@ function addDefaults(expected) |
| if (type == "whitelist" || type == "filterlist") |
| { |
| addProperty("contentType", 0x7FFFFFFF & ~( |
| - RegExpFilter.typeMap.DOCUMENT | RegExpFilter.typeMap.ELEMHIDE | |
| - RegExpFilter.typeMap.POPUP | RegExpFilter.typeMap.GENERICHIDE | |
| - RegExpFilter.typeMap.GENERICBLOCK |
| + RegExpFilter.typeMap.CSP | RegExpFilter.typeMap.DOCUMENT | |
| + RegExpFilter.typeMap.ELEMHIDE | RegExpFilter.typeMap.POPUP | |
| + RegExpFilter.typeMap.GENERICHIDE | RegExpFilter.typeMap.GENERICBLOCK |
| )); |
| addProperty("matchCase", "false"); |
| addProperty("thirdParty", "null"); |
| @@ -151,7 +152,10 @@ function addDefaults(expected) |
| addProperty("sitekeys", ""); |
| } |
| if (type == "filterlist") |
| + { |
| addProperty("collapse", "null"); |
| + addProperty("csp", "null"); |
| + } |
| if (type == "elemhide" || type == "elemhideexception" || |
| type == "elemhideemulation") |
| { |
| @@ -284,9 +288,9 @@ exports.testSpecialCharacters = function(test) |
| exports.testFilterOptions = function(test) |
| { |
| - compareFilter(test, "bla$match-case,script,other,third-party,domain=foo.com,sitekey=foo", ["type=filterlist", "text=bla$match-case,script,other,third-party,domain=foo.com,sitekey=foo", "regexp=bla", "matchCase=true", "contentType=" + (t.SCRIPT | t.OTHER), "thirdParty=true", "domains=FOO.COM", "sitekeys=FOO"]); |
| + compareFilter(test, "bla$match-case,script,other,third-party,domain=foo.com,sitekey=foo,csp= c s p ", ["type=filterlist", "text=bla$match-case,script,other,third-party,domain=foo.com,sitekey=foo,csp=c s p", "regexp=bla", "matchCase=true", "contentType=" + (t.SCRIPT | t.OTHER | t.CSP), "thirdParty=true", "domains=FOO.COM", "sitekeys=FOO", "csp=c s p"]); |
| compareFilter(test, "bla$~match-case,~script,~other,~third-party,domain=~bar.com", ["type=filterlist", "text=bla$~match-case,~script,~other,~third-party,domain=~bar.com", "regexp=bla", "contentType=" + (defaultTypes & ~(t.SCRIPT | t.OTHER)), "thirdParty=false", "domains=~BAR.COM"]); |
| - compareFilter(test, "@@bla$match-case,script,other,third-party,domain=foo.com|bar.com|~bar.foo.com|~foo.bar.com,sitekey=foo|bar", ["type=whitelist", "text=@@bla$match-case,script,other,third-party,domain=foo.com|bar.com|~bar.foo.com|~foo.bar.com,sitekey=foo|bar", "regexp=bla", "matchCase=true", "contentType=" + (t.SCRIPT | t.OTHER), "thirdParty=true", "domains=BAR.COM|FOO.COM|~BAR.FOO.COM|~FOO.BAR.COM", "sitekeys=BAR|FOO"]); |
| + compareFilter(test, "@@bla$match-case,script,other,third-party,domain=foo.com|bar.com|~bar.foo.com|~foo.bar.com,csp= c s p ,sitekey=foo|bar", ["type=whitelist", "text=@@bla$match-case,script,other,third-party,domain=foo.com|bar.com|~bar.foo.com|~foo.bar.com,csp=c s p,sitekey=foo|bar", "regexp=bla", "matchCase=true", "contentType=" + (t.SCRIPT | t.OTHER | t.CSP), "thirdParty=true", "domains=BAR.COM|FOO.COM|~BAR.FOO.COM|~FOO.BAR.COM", "sitekeys=BAR|FOO"]); |
| // background and image should be the same for backwards compatibility |
| compareFilter(test, "bla$image", ["type=filterlist", "text=bla$image", "regexp=bla", "contentType=" + (t.IMAGE)]); |
| @@ -311,6 +315,8 @@ exports.testFilterOptions = function(test) |
| compareFilter(test, "@@bla$image,foobar", ["type=invalid", "text=@@bla$image,foobar", "reason=filter_unknown_option"]); |
| compareFilter(test, "@@bla$foobar,image", ["type=invalid", "text=@@bla$foobar,image", "reason=filter_unknown_option"]); |
| + compareFilter(test, "bla$csp=report-uri", ["type=invalid", "text=bla$csp=report-uri", "reason=filter_invalid_csp"]); |
| + |
| test.done(); |
| }; |
| @@ -426,9 +432,23 @@ exports.testFilterNormalisation = function(test) |
| "sitekeys=FOO", |
| "domains=DOMAIN.COM|FOO.COM" |
| ]); |
| - compareFilter(test, Filter.stripJunk(" @@bl a$foo= bar ,domain= ab cd "), [ |
| + compareFilter(test, Filter.stripJunk(" @@bl a$foo= bar ,domain= ab cd ,foo"), [ |
| + "type=invalid", |
| + "text=@@bla$foo=bar,domain=abcd,foo", |
| + "reason=filter_unknown_option" |
| + ]); |
| + |
| + compareFilter(test, "bla$domain= a b ,csp= the c s p ", [ |
| + "type=filterlist", |
| + "contentType=" + t.CSP, |
| + "regexp=bla", |
| + "text=bla$domain=ab,csp=the c s p", |
| + "csp=the c s p", |
| + "domains=AB" |
| + ]); |
| + compareFilter(test, Filter.stripJunk("bla$csp= the c s p ,invalid= f o o "), [ |
| "type=invalid", |
| - "text=@@bla$invalid=foo,domain=abcd", |
| + "text=bla$csp=the c s p,invalid=foo", |
| "reason=filter_unknown_option" |
| ]); |