| Index: test/elemHideEmulation.js |
| =================================================================== |
| --- a/test/elemHideEmulation.js |
| +++ b/test/elemHideEmulation.js |
| @@ -93,16 +93,33 @@ |
| ElemHide.remove(filter3); |
| selectors = ElemHide.getSelectorsForDomain("example.com", 0); |
| test.equal(selectors.selectorCount, 2); |
| test.done(); |
| }; |
| +exports.testSyntaxConversion = function(test) |
| +{ |
| + function checkConvertedFilter(old, converted) |
| + { |
| + let filter = Filter.fromText(old); |
| + |
| + test.equal(filter.text, converted); |
| + } |
| + |
| + checkConvertedFilter("example.com#?#foo[-abp-properties='something']bar", "example.com#?#foo:-abp-properties(something)bar"); |
| + checkConvertedFilter("example.com#@#foo[-abp-properties='something']bar", "example.com#@#foo:-abp-properties(something)bar"); |
| + checkConvertedFilter("example.com#?#[-abp-properties=\"something\"]", "example.com#?#:-abp-properties(something)"); |
| + checkConvertedFilter("example.com#?#[-abp-properties=(something)]", "example.com#?#:-abp-properties((something))"); |
| + |
| + test.done(); |
| +}; |
| + |
| exports.testDomainRestrictions = function(test) |
| { |
| function testSelectorMatches(description, filters, domain, expectedMatches) |
| { |
| for (let text of filters) |
| { |
| let filter = Filter.fromText(text); |
| if (filter instanceof ElemHideEmulationFilter) |
| @@ -119,57 +136,57 @@ |
| ElemHideEmulation.clear(); |
| ElemHide.clear(); |
| } |
| testSelectorMatches( |
| "Ignore generic filters", |
| [ |
| - "##[-abp-properties='foo']", "example.com##[-abp-properties='foo']", |
| - "~example.com##[-abp-properties='foo']" |
| + "#?#:-abp-properties(foo)", "example.com#?#:-abp-properties(foo)", |
| + "~example.com##:-abp-properties(foo)" |
| ], |
| "example.com", |
| - ["example.com##[-abp-properties='foo']"] |
| + ["example.com#?#:-abp-properties(foo)"] |
| ); |
| testSelectorMatches( |
| "Ignore selectors with exceptions", |
| [ |
| - "example.com##[-abp-properties='foo']", |
| - "example.com##[-abp-properties='bar']", |
| - "example.com#@#[-abp-properties='foo']" |
| + "example.com#?#:-abp-properties(foo)", |
| + "example.com#?#:-abp-properties(bar)", |
| + "example.com#@#:-abp-properties(foo)" |
| ], |
| "example.com", |
| - ["example.com##[-abp-properties='bar']"] |
| + ["example.com#?#:-abp-properties(bar)"] |
| ); |
| testSelectorMatches( |
| "Ignore filters that include parent domain but exclude subdomain", |
| [ |
| - "~www.example.com,example.com##[-abp-properties='foo']" |
| + "~www.example.com,example.com#?#:-abp-properties(foo)" |
| ], |
| "www.example.com", |
| [] |
| ); |
| testSelectorMatches( |
| "Ignore filters with parent domain if exception matches subdomain", |
| [ |
| - "www.example.com#@#[-abp-properties='foo']", |
| - "example.com##[-abp-properties='foo']" |
| + "www.example.com#@#:-abp-properties(foo)", |
| + "example.com#?#:-abp-properties(foo)" |
| ], |
| "www.example.com", |
| [] |
| ); |
| testSelectorMatches( |
| "Ignore filters for other subdomain", |
| [ |
| - "www.example.com##[-abp-properties='foo']", |
| - "other.example.com##[-abp-properties='foo']" |
| + "www.example.com#?#:-abp-properties(foo)", |
| + "other.example.com#?#:-abp-properties(foo)" |
| ], |
| "other.example.com", |
| - ["other.example.com##[-abp-properties='foo']"] |
| + ["other.example.com#?#:-abp-properties(foo)"] |
| ); |
| test.done(); |
| }; |
| exports.testElemHideEmulationFiltersContainer = function(test) |
| { |
| function compareRules(description, domain, expectedMatches) |