| OLD | NEW | 
| (Empty) |  | 
 |    1 /* | 
 |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
 |    3  * Copyright (C) 2006-2016 Eyeo GmbH | 
 |    4  * | 
 |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |    6  * it under the terms of the GNU General Public License version 3 as | 
 |    7  * published by the Free Software Foundation. | 
 |    8  * | 
 |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |   12  * GNU General Public License for more details. | 
 |   13  * | 
 |   14  * You should have received a copy of the GNU General Public License | 
 |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |   16  */ | 
 |   17  | 
 |   18 "use strict"; | 
 |   19  | 
 |   20 let {createSandbox} = require("common"); | 
 |   21 let sandboxedRequire = createSandbox(); | 
 |   22  | 
 |   23 let {Filter} = sandboxedRequire("filterClasses"); | 
 |   24  | 
 |   25 function testActive(test, text, domain, expectedActive, expectedOnlyDomain) | 
 |   26 { | 
 |   27   let filter = Filter.fromText(text); | 
 |   28   test.equal(filter.isActiveOnDomain(domain), expectedActive, | 
 |   29              text + " active on " + domain); | 
 |   30   test.equal(filter.isActiveOnlyOnDomain(domain), expectedOnlyDomain, | 
 |   31              text + " only active on " + domain); | 
 |   32 } | 
 |   33  | 
 |   34 exports.testUnrestrictedBlockingFilters = function(test) | 
 |   35 { | 
 |   36   testActive(test, "foo", null, true, false); | 
 |   37   testActive(test, "foo", "com", true, false); | 
 |   38   testActive(test, "foo", "example.com", true, false); | 
 |   39   testActive(test, "foo", "example.com.", true, false); | 
 |   40   testActive(test, "foo", "foo.example.com", true, false); | 
 |   41   testActive(test, "foo", "mple.com", true, false); | 
 |   42  | 
 |   43   test.done(); | 
 |   44 }; | 
 |   45  | 
 |   46 exports.testUnrestrictedHidingRules = function(test) | 
 |   47 { | 
 |   48   testActive(test,"#foo", null, true, false); | 
 |   49   testActive(test, "#foo", "com", true, false); | 
 |   50   testActive(test, "#foo", "example.com", true, false); | 
 |   51   testActive(test, "#foo", "example.com.", true, false); | 
 |   52   testActive(test, "#foo", "foo.example.com", true, false); | 
 |   53   testActive(test, "#foo", "mple.com", true, false); | 
 |   54  | 
 |   55   test.done(); | 
 |   56 }; | 
 |   57  | 
 |   58 exports.testDomainRestrictedBlockingFilters = function(test) | 
 |   59 { | 
 |   60   testActive(test, "foo$domain=example.com", null, false, false); | 
 |   61   testActive(test, "foo$domain=example.com", "com", false, true); | 
 |   62   testActive(test, "foo$domain=example.com", "example.com", true, true); | 
 |   63   testActive(test, "foo$domain=example.com", "example.com.", true, true); | 
 |   64   testActive(test, "foo$domain=example.com.", "example.com", true, true); | 
 |   65   testActive(test, "foo$domain=example.com.", "example.com.", true, true); | 
 |   66   testActive(test, "foo$domain=example.com", "foo.example.com", true, false); | 
 |   67   testActive(test, "foo$domain=example.com", "mple.com", false, false); | 
 |   68  | 
 |   69   test.done(); | 
 |   70 }; | 
 |   71  | 
 |   72 exports.testDomainRestrictedHidingRules = function(test) | 
 |   73 { | 
 |   74   testActive(test, "example.com#foo", null, false, false); | 
 |   75   testActive(test, "example.com#foo", "com", false, true); | 
 |   76   testActive(test, "example.com#foo", "example.com", true, true); | 
 |   77   testActive(test, "example.com#foo", "example.com.", false, false); | 
 |   78   testActive(test, "example.com.#foo", "example.com", false, false); | 
 |   79   testActive(test, "example.com.#foo", "example.com.", true, true); | 
 |   80   testActive(test, "example.com#foo", "foo.example.com", true, false); | 
 |   81   testActive(test, "example.com#foo", "mple.com", false, false); | 
 |   82  | 
 |   83   test.done(); | 
 |   84 }; | 
 |   85  | 
 |   86 exports.testBlockingFiltersRestrictedToDomainAndItsSubdomain = function(test) | 
 |   87 { | 
 |   88   testActive(test, "foo$domain=example.com|foo.example.com", null, false, false)
     ; | 
 |   89   testActive(test, "foo$domain=example.com|foo.example.com", "com", false, true)
     ; | 
 |   90   testActive(test, "foo$domain=example.com|foo.example.com", "example.com", true
     , true); | 
 |   91   testActive(test, "foo$domain=example.com|foo.example.com", "example.com.", tru
     e, true); | 
 |   92   testActive(test, "foo$domain=example.com|foo.example.com", "foo.example.com", 
     true, false); | 
 |   93   testActive(test, "foo$domain=example.com|foo.example.com", "mple.com", false, 
     false); | 
 |   94  | 
 |   95   test.done(); | 
 |   96 }; | 
 |   97  | 
 |   98 exports.testHidingRulesRestrictedToDomainAndItsSubdomain = function(test) | 
 |   99 { | 
 |  100   testActive(test, "example.com,foo.example.com#foo", null, false, false); | 
 |  101   testActive(test, "example.com,foo.example.com#foo", "com", false, true); | 
 |  102   testActive(test, "example.com,foo.example.com#foo", "example.com", true, true)
     ; | 
 |  103   testActive(test, "example.com,foo.example.com#foo", "example.com.", false, fal
     se); | 
 |  104   testActive(test, "example.com,foo.example.com#foo", "foo.example.com", true, f
     alse); | 
 |  105   testActive(test, "example.com,foo.example.com#foo", "mple.com", false, false); | 
 |  106  | 
 |  107   test.done(); | 
 |  108 }; | 
 |  109  | 
 |  110 exports.testBlockingFiltersWithExceptionForASubdomain = function(test) | 
 |  111 { | 
 |  112   testActive(test, "foo$domain=~foo.example.com", null, true, false); | 
 |  113   testActive(test, "foo$domain=~foo.example.com", "com", true, false); | 
 |  114   testActive(test, "foo$domain=~foo.example.com", "example.com", true, false); | 
 |  115   testActive(test, "foo$domain=~foo.example.com", "example.com.", true, false); | 
 |  116   testActive(test, "foo$domain=~foo.example.com", "foo.example.com", false, fals
     e); | 
 |  117   testActive(test, "foo$domain=~foo.example.com", "mple.com", true, false); | 
 |  118  | 
 |  119   test.done(); | 
 |  120 }; | 
 |  121  | 
 |  122 exports.testHidingRulesWithExceptionForASubdomain = function(test) | 
 |  123 { | 
 |  124   testActive(test, "~foo.example.com#foo", null, true, false); | 
 |  125   testActive(test, "~foo.example.com#foo", "com", true, false); | 
 |  126   testActive(test, "~foo.example.com#foo", "example.com", true, false); | 
 |  127   testActive(test, "~foo.example.com#foo", "example.com.", true, false); | 
 |  128   testActive(test, "~foo.example.com#foo", "foo.example.com", false, false); | 
 |  129   testActive(test, "~foo.example.com#foo", "mple.com", true, false); | 
 |  130  | 
 |  131   test.done(); | 
 |  132 }; | 
 |  133  | 
 |  134 exports.testBlockingFiltersForDomainButNotItsSubdomain = function(test) | 
 |  135 { | 
 |  136   testActive(test, "foo$domain=example.com|~foo.example.com", null, false, false
     ); | 
 |  137   testActive(test, "foo$domain=example.com|~foo.example.com", "com", false, true
     ); | 
 |  138   testActive(test, "foo$domain=example.com|~foo.example.com", "example.com", tru
     e, true); | 
 |  139   testActive(test, "foo$domain=example.com|~foo.example.com", "example.com.", tr
     ue, true); | 
 |  140   testActive(test, "foo$domain=example.com|~foo.example.com", "foo.example.com",
      false, false); | 
 |  141   testActive(test, "foo$domain=example.com|~foo.example.com", "mple.com", false,
      false); | 
 |  142  | 
 |  143   test.done(); | 
 |  144 }; | 
 |  145  | 
 |  146 exports.testHidingRulesForDomainButNotItsSubdomain = function(test) | 
 |  147 { | 
 |  148   testActive(test, "example.com,~foo.example.com#foo", null, false, false); | 
 |  149   testActive(test, "example.com,~foo.example.com#foo", "com", false, true); | 
 |  150   testActive(test, "example.com,~foo.example.com#foo", "example.com", true, true
     ); | 
 |  151   testActive(test, "example.com,~foo.example.com#foo", "example.com.", false, fa
     lse); | 
 |  152   testActive(test, "example.com,~foo.example.com#foo", "foo.example.com", false,
      false); | 
 |  153   testActive(test, "example.com,~foo.example.com#foo", "mple.com", false, false)
     ; | 
 |  154  | 
 |  155   test.done(); | 
 |  156 }; | 
 |  157  | 
 |  158 exports.testBlockingFiltersForDomainButNotItsTLD = function(test) | 
 |  159 { | 
 |  160   testActive(test, "foo$domain=example.com|~com", null, false, false); | 
 |  161   testActive(test, "foo$domain=example.com|~com", "com", false, true); | 
 |  162   testActive(test, "foo$domain=example.com|~com", "example.com", true, true); | 
 |  163   testActive(test, "foo$domain=example.com|~com", "example.com.", true, true); | 
 |  164   testActive(test, "foo$domain=example.com|~com", "foo.example.com", true, false
     ); | 
 |  165   testActive(test, "foo$domain=example.com|~com", "mple.com", false, false); | 
 |  166  | 
 |  167   test.done(); | 
 |  168 }; | 
 |  169  | 
 |  170 exports.testHidingRulesForDomainButNotItsTLD = function(test) | 
 |  171 { | 
 |  172   testActive(test, "example.com,~com#foo", null, false, false); | 
 |  173   testActive(test, "example.com,~com#foo", "com", false, true); | 
 |  174   testActive(test, "example.com,~com#foo", "example.com", true, true); | 
 |  175   testActive(test, "example.com,~com#foo", "example.com.", false, false); | 
 |  176   testActive(test, "example.com,~com#foo", "foo.example.com", true, false); | 
 |  177   testActive(test, "example.com,~com#foo", "mple.com", false, false); | 
 |  178  | 
 |  179   test.done(); | 
 |  180 }; | 
 |  181  | 
 |  182 exports.testBlockingFiltersRestrictedToAnUnrelatedDomain = function(test) | 
 |  183 { | 
 |  184   testActive(test, "foo$domain=nnnnnnn.nnn", null, false, false); | 
 |  185   testActive(test, "foo$domain=nnnnnnn.nnn", "com", false, false); | 
 |  186   testActive(test, "foo$domain=nnnnnnn.nnn", "example.com", false, false); | 
 |  187   testActive(test, "foo$domain=nnnnnnn.nnn", "example.com.", false, false); | 
 |  188   testActive(test, "foo$domain=nnnnnnn.nnn", "foo.example.com", false, false); | 
 |  189   testActive(test, "foo$domain=nnnnnnn.nnn", "mple.com", false, false); | 
 |  190  | 
 |  191   test.done(); | 
 |  192 }; | 
 |  193  | 
 |  194 exports.testHidingRulesRestrictedToAnUnrelatedDomain = function(test) | 
 |  195 { | 
 |  196   testActive(test, "nnnnnnn.nnn#foo", null, false, false); | 
 |  197   testActive(test, "nnnnnnn.nnn#foo", "com", false, false); | 
 |  198   testActive(test, "nnnnnnn.nnn#foo", "example.com", false, false); | 
 |  199   testActive(test, "nnnnnnn.nnn#foo", "example.com.", false, false); | 
 |  200   testActive(test, "nnnnnnn.nnn#foo", "foo.example.com", false, false); | 
 |  201   testActive(test, "nnnnnnn.nnn#foo", "mple.com", false, false); | 
 |  202  | 
 |  203   test.done(); | 
 |  204 }; | 
 |  205  | 
| OLD | NEW |