| Index: test/filterClasses.js |
| =================================================================== |
| --- a/test/filterClasses.js |
| +++ b/test/filterClasses.js |
| @@ -348,29 +348,33 @@ |
| compareFilter(test, "foo,~baz,bar#@ddd", ["type=elemhideexception", "text=foo,~baz,bar#@ddd", "selectorDomain=foo,bar", "selector=ddd", "domains=BAR|FOO|~BAZ"]); |
| test.done(); |
| }; |
| exports.testElemHideEmulationFilters = function(test) |
| { |
| // Check valid domain combinations |
| - compareFilter(test, "foo.com##[-abp-properties='abc']", ["type=elemhideemulation", "text=foo.com##[-abp-properties='abc']", "selectorDomain=foo.com", "selector=[-abp-properties='abc']", "domains=FOO.COM"]); |
| - compareFilter(test, "foo.com,~bar.com##[-abp-properties='abc']", ["type=elemhideemulation", "text=foo.com,~bar.com##[-abp-properties='abc']", "selectorDomain=foo.com", "selector=[-abp-properties='abc']", "domains=FOO.COM|~BAR.COM"]); |
| - compareFilter(test, "foo.com,~bar##[-abp-properties='abc']", ["type=elemhideemulation", "text=foo.com,~bar##[-abp-properties='abc']", "selectorDomain=foo.com", "selector=[-abp-properties='abc']", "domains=FOO.COM|~BAR"]); |
| - compareFilter(test, "~foo.com,bar.com##[-abp-properties='abc']", ["type=elemhideemulation", "text=~foo.com,bar.com##[-abp-properties='abc']", "selectorDomain=bar.com", "selector=[-abp-properties='abc']", "domains=BAR.COM|~FOO.COM"]); |
| + compareFilter(test, "foo.com##[-abp-properties='abc']", ["type=elemhideemulation", "text=foo.com##[-abp-properties='abc']", "selectorDomain=foo.com", "selector=:-abp-properties('abc')", "domains=FOO.COM"]); |
| + compareFilter(test, "foo.com,~bar.com##[-abp-properties='abc']", ["type=elemhideemulation", "text=foo.com,~bar.com##[-abp-properties='abc']", "selectorDomain=foo.com", "selector=:-abp-properties('abc')", "domains=FOO.COM|~BAR.COM"]); |
| + compareFilter(test, "foo.com,~bar##[-abp-properties='abc']", ["type=elemhideemulation", "text=foo.com,~bar##[-abp-properties='abc']", "selectorDomain=foo.com", "selector=:-abp-properties('abc')", "domains=FOO.COM|~BAR"]); |
| + compareFilter(test, "~foo.com,bar.com##[-abp-properties='abc']", ["type=elemhideemulation", "text=~foo.com,bar.com##[-abp-properties='abc']", "selectorDomain=bar.com", "selector=:-abp-properties('abc')", "domains=BAR.COM|~FOO.COM"]); |
| compareFilter(test, "##[-abp-properties='']", ["type=invalid", "text=##[-abp-properties='']", "reason=filter_elemhideemulation_nodomain"]); |
| - compareFilter(test, "foo.com#@#[-abp-properties='abc']", ["type=elemhideexception", "text=foo.com#@#[-abp-properties='abc']", "selectorDomain=foo.com", "selector=[-abp-properties='abc']", "domains=FOO.COM"]); |
| - compareFilter(test, "foo.com##aaa [-abp-properties='abc'] bbb", ["type=elemhideemulation", "text=foo.com##aaa [-abp-properties='abc'] bbb", "selectorDomain=foo.com", "selector=aaa [-abp-properties='abc'] bbb", "domains=FOO.COM"]); |
| - compareFilter(test, "foo.com##[-abp-properties='|background-image: url(data:*)']", ["type=elemhideemulation", "text=foo.com##[-abp-properties='|background-image: url(data:*)']", "selectorDomain=foo.com", "selector=[-abp-properties='|background-image: url(data:*)']", "domains=FOO.COM"]); |
| + compareFilter(test, "foo.com#@#[-abp-properties='abc']", ["type=elemhideexception", "text=foo.com#@#[-abp-properties='abc']", "selectorDomain=foo.com", "selector=:-abp-properties('abc')", "domains=FOO.COM"]); |
| + compareFilter(test, "foo.com##aaa [-abp-properties='abc'] bbb", ["type=elemhideemulation", "text=foo.com##aaa [-abp-properties='abc'] bbb", "selectorDomain=foo.com", "selector=aaa :-abp-properties('abc') bbb", "domains=FOO.COM"]); |
| + compareFilter(test, "foo.com##[-abp-properties='|background-image: url(data:*)']", ["type=elemhideemulation", "text=foo.com##[-abp-properties='|background-image: url(data:*)']", "selectorDomain=foo.com", "selector=:-abp-properties('|background-image: url(data:*)')", "domains=FOO.COM"]); |
| // test matching -abp-properties= (https://issues.adblockplus.org/ticket/5037). |
| compareFilter(test, "foo.com##[-abp-properties-bogus='abc']", ["type=elemhide", "text=foo.com##[-abp-properties-bogus='abc']", "selectorDomain=foo.com", "selector=[-abp-properties-bogus='abc']", "domains=FOO.COM"]); |
| + // Check extended CSS filter |
| + compareFilter(test, "~foo.com,bar.com##[-abp-selector=':-abp-has(div > span)']", ["type=elemhideemulation", "text=~foo.com,bar.com##[-abp-selector=':-abp-has(div > span)']", "selectorDomain=bar.com", "selector=:-abp-has(div > span)", "domains=BAR.COM|~FOO.COM"]); |
| + compareFilter(test, "##[-abp-selector=':-abp-has(div > span)']", ["type=invalid", "text=##[-abp-selector=':-abp-has(div > span)']", "reason=filter_elemhideemulation_nodomain"]); |
| + |
| test.done(); |
| }; |
| exports.testEmptyElemHideDomains = function(test) |
| { |
| let emptyDomainFilters = [ |
| ",##selector", ",,,##selector", "~,foo.com##selector", "foo.com,##selector", |
| ",foo.com##selector", "foo.com,~##selector", |
| @@ -398,14 +402,14 @@ |
| "domains=" |
| ] |
| ); |
| compareFilter( |
| test, "foo.com##[-abp-properties='/margin: [3-4]{2}/']", [ |
| "type=elemhideemulation", |
| "text=foo.com##[-abp-properties='/margin: [3-4]{2}/']", |
| "selectorDomain=foo.com", |
| - "selector=[-abp-properties='/margin: [3-4]\\x7B 2\\x7D /']", |
| + "selector=:-abp-properties('/margin: [3-4]\\x7B 2\\x7D /')", |
| "domains=FOO.COM" |
| ] |
| ); |
| test.done(); |
| }; |