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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 [["f\ud83d\ude42\ud83d\ude42", "b\ud83d\ude02r"]]); | 181 [["f\ud83d\ude42\ud83d\ude42", "b\ud83d\ude02r"]]); |
182 checkParsedScript("Script with no-op commands", "foo; ;;; ; ; bar 1", | 182 checkParsedScript("Script with no-op commands", "foo; ;;; ; ; bar 1", |
183 [["foo"], ["bar", "1"]]); | 183 [["foo"], ["bar", "1"]]); |
184 checkParsedScript("Script with blank argument in the middle", "foo '' Hello", | 184 checkParsedScript("Script with blank argument in the middle", "foo '' Hello", |
185 [["foo", "", "Hello"]]); | 185 [["foo", "", "Hello"]]); |
186 checkParsedScript("Script with blank argument at the end", "foo Hello ''", | 186 checkParsedScript("Script with blank argument at the end", "foo Hello ''", |
187 [["foo", "Hello", ""]]); | 187 [["foo", "Hello", ""]]); |
188 checkParsedScript("Script with consecutive blank arguments", "foo '' ''", | 188 checkParsedScript("Script with consecutive blank arguments", "foo '' ''", |
189 [["foo", "", ""]]); | 189 [["foo", "", ""]]); |
190 | 190 |
| 191 // Undocumented quirks (#6853). |
| 192 checkParsedScript("Script with quotes within an argument", "foo Hello''world", |
| 193 [["foo", "Helloworld"]]); |
| 194 checkParsedScript("Script with quotes within an argument containing whitespace
", |
| 195 "foo Hello' 'world", |
| 196 [["foo", "Hello world"]]); |
| 197 checkParsedScript("Script with quotes within an argument containing non-whites
pace", |
| 198 "foo Hello','world", |
| 199 [["foo", "Hello,world"]]); |
| 200 checkParsedScript("Script with quotes within an argument containing whitespace
and non-whitespace", |
| 201 "foo Hello', 'world", |
| 202 [["foo", "Hello, world"]]); |
| 203 checkParsedScript("Script with opening quote at the beginning of an argument", |
| 204 "foo 'Hello, 'world", |
| 205 [["foo", "Hello, world"]]); |
| 206 checkParsedScript("Script with closing quote at the end of an argument", |
| 207 "foo Hello,' world'", |
| 208 [["foo", "Hello, world"]]); |
| 209 |
| 210 checkParsedScript("Script with closing quote missing", "foo 'Hello, world", |
| 211 []); |
| 212 checkParsedScript("Script with closing quote missing in last command", |
| 213 "foo Hello; bar 'How are you?", |
| 214 [["foo", "Hello"]]); |
| 215 checkParsedScript("Script ending with a backslash", |
| 216 "foo Hello; bar 'How are you?' \\", |
| 217 [["foo", "Hello"]]); |
| 218 |
191 test.done(); | 219 test.done(); |
192 }; | 220 }; |
193 | 221 |
194 exports.testScriptCompilation = function(test) | 222 exports.testScriptCompilation = function(test) |
195 { | 223 { |
196 let libraries = [ | 224 let libraries = [ |
197 ` | 225 ` |
198 let foo = 0; | 226 let foo = 0; |
199 | 227 |
200 exports.setFoo = function(value) | 228 exports.setFoo = function(value) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 // between executions. In the example below, assertFoo does not find 456 but | 281 // between executions. In the example below, assertFoo does not find 456 but |
254 // it doesn't find 123 either. It's the initial value 0. | 282 // it doesn't find 123 either. It's the initial value 0. |
255 new Function( | 283 new Function( |
256 compileScript("setFoo 456; assertFoo 0", [ | 284 compileScript("setFoo 456; assertFoo 0", [ |
257 ...libraries, "let foo = 1; exports.setFoo = value => { foo = value; };" | 285 ...libraries, "let foo = 1; exports.setFoo = value => { foo = value; };" |
258 ]) | 286 ]) |
259 )(); | 287 )(); |
260 | 288 |
261 test.done(); | 289 test.done(); |
262 }; | 290 }; |
OLD | NEW |