| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-present eyeo GmbH | 3  * Copyright (C) 2006-present eyeo GmbH | 
| 4  * | 4  * | 
| 5  * Adblock Plus is free software: you can redistribute it and/or modify | 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 | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 290   test.equal( | 290   test.equal( | 
| 291     createStyleSheet([ | 291     createStyleSheet([ | 
| 292       "html", "#foo", ".bar", "#foo .bar", "#foo > .bar", | 292       "html", "#foo", ".bar", "#foo .bar", "#foo > .bar", | 
| 293       "#foo[data-bar='bar']" | 293       "#foo[data-bar='bar']" | 
| 294     ]), | 294     ]), | 
| 295     "html, #foo, .bar, #foo .bar, #foo > .bar, #foo[data-bar='bar'] " + | 295     "html, #foo, .bar, #foo .bar, #foo > .bar, #foo[data-bar='bar'] " + | 
| 296     "{display: none !important;}\n", | 296     "{display: none !important;}\n", | 
| 297     "Style sheet creation should work" | 297     "Style sheet creation should work" | 
| 298   ); | 298   ); | 
| 299 | 299 | 
| 300   let selectors = new Array(50000).map((element, index) => ".s" + index); | 300   let selectors = new Array(50000).fill().map((element, index) => ".s" + index); | 
| 301 | 301 | 
| 302   test.equal((createStyleSheet(selectors).match(/\n/g) || []).length, | 302   test.equal((createStyleSheet(selectors).match(/\n/g) || []).length, | 
| 303              Math.ceil(50000 / selectorGroupSize), | 303              Math.ceil(50000 / selectorGroupSize), | 
| 304              "Style sheet should be split up into rules with at most " + | 304              "Style sheet should be split up into rules with at most " + | 
| 305              selectorGroupSize + " selectors each"); | 305              selectorGroupSize + " selectors each"); | 
| 306 | 306 | 
|  | 307   test.equal( | 
|  | 308     createStyleSheet([ | 
|  | 309       "html", "#foo", ".bar", "#foo .bar", "#foo > .bar", | 
|  | 310       "#foo[data-bar='{foo: 1}']" | 
|  | 311     ]), | 
|  | 312     "html, #foo, .bar, #foo .bar, #foo > .bar, " + | 
|  | 313     "#foo[data-bar='\\7B foo: 1\\7D '] {display: none !important;}\n", | 
|  | 314     "Braces should be escaped" | 
|  | 315   ); | 
|  | 316 | 
| 307   test.done(); | 317   test.done(); | 
| 308 }; | 318 }; | 
| 309 | 319 | 
| 310 exports.testRulesFromStyleSheet = function(test) | 320 exports.testRulesFromStyleSheet = function(test) | 
| 311 { | 321 { | 
| 312   // Note: The rulesFromStyleSheet function assumes that each rule will be | 322   // Note: The rulesFromStyleSheet function assumes that each rule will be | 
| 313   // terminated with a newline character, including the last rule. If this is | 323   // terminated with a newline character, including the last rule. If this is | 
| 314   // not the case, the function goes into an infinite loop. It should only be | 324   // not the case, the function goes into an infinite loop. It should only be | 
| 315   // used with the return value of the createStyleSheet function. | 325   // used with the return value of the createStyleSheet function. | 
| 316 | 326 | 
| 317   test.deepEqual([...rulesFromStyleSheet("")], []); | 327   test.deepEqual([...rulesFromStyleSheet("")], []); | 
| 318   test.deepEqual([...rulesFromStyleSheet("#foo {}\n")], ["#foo {}"]); | 328   test.deepEqual([...rulesFromStyleSheet("#foo {}\n")], ["#foo {}"]); | 
| 319   test.deepEqual([...rulesFromStyleSheet("#foo {}\n#bar {}\n")], | 329   test.deepEqual([...rulesFromStyleSheet("#foo {}\n#bar {}\n")], | 
| 320                  ["#foo {}", "#bar {}"]); | 330                  ["#foo {}", "#bar {}"]); | 
| 321 | 331 | 
| 322   test.done(); | 332   test.done(); | 
| 323 }; | 333 }; | 
| OLD | NEW | 
|---|