| 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); |
| 301 for (let index = 0; index < selectors.length; index++) |
| 302 selectors[index] = ".s" + index; |
| 301 | 303 |
| 302 test.equal((createStyleSheet(selectors).match(/\n/g) || []).length, | 304 test.equal((createStyleSheet(selectors).match(/\n/g) || []).length, |
| 303 Math.ceil(50000 / selectorGroupSize), | 305 Math.ceil(50000 / selectorGroupSize), |
| 304 "Style sheet should be split up into rules with at most " + | 306 "Style sheet should be split up into rules with at most " + |
| 305 selectorGroupSize + " selectors each"); | 307 selectorGroupSize + " selectors each"); |
| 306 | 308 |
| 307 test.done(); | 309 test.done(); |
| 308 }; | 310 }; |
| 309 | 311 |
| 310 exports.testRulesFromStyleSheet = function(test) | 312 exports.testRulesFromStyleSheet = function(test) |
| 311 { | 313 { |
| 312 // Note: The rulesFromStyleSheet function assumes that each rule will be | 314 // Note: The rulesFromStyleSheet function assumes that each rule will be |
| 313 // terminated with a newline character, including the last rule. If this is | 315 // 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 | 316 // not the case, the function goes into an infinite loop. It should only be |
| 315 // used with the return value of the createStyleSheet function. | 317 // used with the return value of the createStyleSheet function. |
| 316 | 318 |
| 317 test.deepEqual([...rulesFromStyleSheet("")], []); | 319 test.deepEqual([...rulesFromStyleSheet("")], []); |
| 318 test.deepEqual([...rulesFromStyleSheet("#foo {}\n")], ["#foo {}"]); | 320 test.deepEqual([...rulesFromStyleSheet("#foo {}\n")], ["#foo {}"]); |
| 319 test.deepEqual([...rulesFromStyleSheet("#foo {}\n#bar {}\n")], | 321 test.deepEqual([...rulesFromStyleSheet("#foo {}\n#bar {}\n")], |
| 320 ["#foo {}", "#bar {}"]); | 322 ["#foo {}", "#bar {}"]); |
| 321 | 323 |
| 322 test.done(); | 324 test.done(); |
| 323 }; | 325 }; |
| OLD | NEW |