]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - vendor/zordius/lightncandy/tests/LightnCandyTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / zordius / lightncandy / tests / LightnCandyTest.php
1 <?php
2 /**
3  * Generated by build/gen_test
4  */
5 require_once('src/lightncandy.php');
6
7 class LightnCandyTest extends PHPUnit_Framework_TestCase
8 {
9     /**
10      * @covers LightnCandy::stripExtendedComments
11      */
12     public function testOn_stripExtendedComments() {
13         $method = new ReflectionMethod('LightnCandy', 'stripExtendedComments');
14         $method->setAccessible(true);
15         $this->assertEquals('abc', $method->invokeArgs(null,array(
16             'abc'
17 )        ));
18         $this->assertEquals('abc{{!}}cde', $method->invokeArgs(null,array(
19             'abc{{!}}cde'
20 )        ));
21         $this->assertEquals('abc{{! }}cde', $method->invokeArgs(null,array(
22             'abc{{!----}}cde'
23 )        ));
24     }
25     /**
26      * @covers LightnCandy::escapeTemplate
27      */
28     public function testOn_escapeTemplate() {
29         $method = new ReflectionMethod('LightnCandy', 'escapeTemplate');
30         $method->setAccessible(true);
31         $this->assertEquals('abc', $method->invokeArgs(null,array(
32             'abc'
33 )        ));
34         $this->assertEquals('a\\\\bc', $method->invokeArgs(null,array(
35             'a\bc'
36 )        ));
37         $this->assertEquals('a\\\'bc', $method->invokeArgs(null,array(
38             'a\'bc'
39 )        ));
40     }
41     /**
42      * @covers LightnCandy::buildHelperTable
43      */
44     public function testOn_buildHelperTable() {
45         $method = new ReflectionMethod('LightnCandy', 'buildHelperTable');
46         $method->setAccessible(true);
47         $this->assertEquals(array(), $method->invokeArgs(null,array(
48             array(), array()
49 )        ));
50         $this->assertEquals(array('flags' => array('exhlp' => 1)), $method->invokeArgs(null,array(
51             array('flags' => array('exhlp' => 1)), array('helpers' => array('abc'))
52 )        ));
53         $this->assertEquals(array('error' => array('Can not find custom helper function defination abc() !'), 'flags' => array('exhlp' => 0)), $method->invokeArgs(null,array(
54             array('error' => array(), 'flags' => array('exhlp' => 0)), array('helpers' => array('abc'))
55 )        ));
56         $this->assertEquals(array('flags' => array('exhlp' => 1), 'helpers' => array('LCRun3::raw' => 'LCRun3::raw')), $method->invokeArgs(null,array(
57             array('flags' => array('exhlp' => 1), 'helpers' => array()), array('helpers' => array('LCRun3::raw'))
58 )        ));
59         $this->assertEquals(array('flags' => array('exhlp' => 1), 'helpers' => array('test' => 'LCRun3::raw')), $method->invokeArgs(null,array(
60             array('flags' => array('exhlp' => 1), 'helpers' => array()), array('helpers' => array('test' => 'LCRun3::raw'))
61 )        ));
62     }
63     /**
64      * @covers LightnCandy::prePartial
65      */
66     public function testOn_prePartial() {
67         $method = new ReflectionMethod('LightnCandy', 'prePartial');
68         $method->setAccessible(true);
69         $this->assertEquals('hey', $method->invokeArgs(null,array(
70             'hey', 'haha', Array('prepartial' => false)
71 )        ));
72         $this->assertEquals('haha-hoho', $method->invokeArgs(null,array(
73             'hoho', 'haha', Array('prepartial' => function ($tmpl, $name) {return "$name-$tmpl";})
74 )        ));
75     }
76     /**
77      * @covers LightnCandy::buildCXFileext
78      */
79     public function testOn_buildCXFileext() {
80         $method = new ReflectionMethod('LightnCandy', 'buildCXFileext');
81         $method->setAccessible(true);
82         $this->assertEquals(array('.tmpl'), $method->invokeArgs(null,array(
83             array()
84 )        ));
85         $this->assertEquals(array('test'), $method->invokeArgs(null,array(
86             array('fileext' => 'test')
87 )        ));
88         $this->assertEquals(array('test1'), $method->invokeArgs(null,array(
89             array('fileext' => array('test1'))
90 )        ));
91         $this->assertEquals(array('test2', 'test3'), $method->invokeArgs(null,array(
92             array('fileext' => array('test2', 'test3'))
93 )        ));
94     }
95     /**
96      * @covers LightnCandy::buildCXBasedir
97      */
98     public function testOn_buildCXBasedir() {
99         $method = new ReflectionMethod('LightnCandy', 'buildCXBasedir');
100         $method->setAccessible(true);
101         $this->assertEquals(array(), $method->invokeArgs(null,array(
102             array()
103 )        ));
104         $this->assertEquals(array(), $method->invokeArgs(null,array(
105             array('basedir' => array())
106 )        ));
107         $this->assertEquals(array('src'), $method->invokeArgs(null,array(
108             array('basedir' => array('src'))
109 )        ));
110         $this->assertEquals(array('src'), $method->invokeArgs(null,array(
111             array('basedir' => array('src', 'dir_not_found'))
112 )        ));
113         $this->assertEquals(array('src', 'tests'), $method->invokeArgs(null,array(
114             array('basedir' => array('src', 'tests'))
115 )        ));
116     }
117     /**
118      * @covers LightnCandy::getPHPCode
119      */
120     public function testOn_getPHPCode() {
121         $method = new ReflectionMethod('LightnCandy', 'getPHPCode');
122         $method->setAccessible(true);
123         $this->assertEquals('function($a) {return;}', $method->invokeArgs(null,array(
124             function ($a) {return;}
125 )        ));
126         $this->assertEquals('function($a) {return;}', $method->invokeArgs(null,array(
127                function ($a) {return;}
128 )        ));
129     }
130     /**
131      * @covers LightnCandy::handleError
132      */
133     public function testOn_handleError() {
134         $method = new ReflectionMethod('LightnCandy', 'handleError');
135         $method->setAccessible(true);
136         $this->assertEquals(true, $method->invokeArgs(null,array(
137             array('level' => 1, 'stack' => array('X'), 'flags' => array('errorlog' => 0, 'exception' => 0), 'error' => array(), 'rawblock' => 0)
138 )        ));
139         $this->assertEquals(false, $method->invokeArgs(null,array(
140             array('level' => 0, 'error' => array())
141 )        ));
142         $this->assertEquals(true, $method->invokeArgs(null,array(
143             array('level' => 0, 'error' => array('some error'), 'flags' => array('errorlog' => 0, 'exception' => 0))
144 )        ));
145     }
146     /**
147      * @covers LightnCandy::getBoolStr
148      */
149     public function testOn_getBoolStr() {
150         $method = new ReflectionMethod('LightnCandy', 'getBoolStr');
151         $method->setAccessible(true);
152         $this->assertEquals('true', $method->invokeArgs(null,array(
153             1
154 )        ));
155         $this->assertEquals('true', $method->invokeArgs(null,array(
156             999
157 )        ));
158         $this->assertEquals('false', $method->invokeArgs(null,array(
159             0
160 )        ));
161         $this->assertEquals('false', $method->invokeArgs(null,array(
162             -1
163 )        ));
164     }
165     /**
166      * @covers LightnCandy::getFuncName
167      */
168     public function testOn_getFuncName() {
169         $method = new ReflectionMethod('LightnCandy', 'getFuncName');
170         $method->setAccessible(true);
171         $this->assertEquals('LCRun3::test(', $method->invokeArgs(null,array(
172             array('flags' => array('standalone' => 0, 'debug' => 0), 'lcrun' => 'LCRun3'), 'test', ''
173 )        ));
174         $this->assertEquals('LCRun3::test2(', $method->invokeArgs(null,array(
175             array('flags' => array('standalone' => 0, 'debug' => 0), 'lcrun' => 'LCRun3'), 'test2', ''
176 )        ));
177         $this->assertEquals("\$cx['funcs']['test3'](", $method->invokeArgs(null,array(
178             array('flags' => array('standalone' => 1, 'debug' => 0), 'lcrun' => 'LCRun3'), 'test3', ''
179 )        ));
180         $this->assertEquals('LCRun3::debug(\'abc\', \'test\', ', $method->invokeArgs(null,array(
181             array('flags' => array('standalone' => 0, 'debug' => 1), 'lcrun' => 'LCRun3'), 'test', 'abc'
182 )        ));
183     }
184     /**
185      * @covers LightnCandy::getArrayStr
186      */
187     public function testOn_getArrayStr() {
188         $method = new ReflectionMethod('LightnCandy', 'getArrayStr');
189         $method->setAccessible(true);
190         $this->assertEquals('', $method->invokeArgs(null,array(
191             array()
192 )        ));
193         $this->assertEquals('[a]', $method->invokeArgs(null,array(
194             array('a')
195 )        ));
196         $this->assertEquals('[a][b][c]', $method->invokeArgs(null,array(
197             array('a', 'b', 'c')
198 )        ));
199     }
200     /**
201      * @covers LightnCandy::getArrayCode
202      */
203     public function testOn_getArrayCode() {
204         $method = new ReflectionMethod('LightnCandy', 'getArrayCode');
205         $method->setAccessible(true);
206         $this->assertEquals('', $method->invokeArgs(null,array(
207             array()
208 )        ));
209         $this->assertEquals("['a']", $method->invokeArgs(null,array(
210             array('a')
211 )        ));
212         $this->assertEquals("['a']['b']['c']", $method->invokeArgs(null,array(
213             array('a', 'b', 'c')
214 )        ));
215     }
216     /**
217      * @covers LightnCandy::getVariableNames
218      */
219     public function testOn_getVariableNames() {
220         $method = new ReflectionMethod('LightnCandy', 'getVariableNames');
221         $method->setAccessible(true);
222         $this->assertEquals(array('array(array($in),array())', array('this')), $method->invokeArgs(null,array(
223             array(null), array('flags'=>array('spvar'=>true))
224 )        ));
225         $this->assertEquals(array('array(array($in,$in),array())', array('this', 'this')), $method->invokeArgs(null,array(
226             array(null, null), array('flags'=>array('spvar'=>true))
227 )        ));
228         $this->assertEquals(array('array(array(),array(\'a\'=>$in))', array('this')), $method->invokeArgs(null,array(
229             array('a' => null), array('flags'=>array('spvar'=>true))
230 )        ));
231     }
232     /**
233      * @covers LightnCandy::getVariableName
234      */
235     public function testOn_getVariableName() {
236         $method = new ReflectionMethod('LightnCandy', 'getVariableName');
237         $method->setAccessible(true);
238         $this->assertEquals(array('$in', 'this'), $method->invokeArgs(null,array(
239             array(null), array('flags'=>array('spvar'=>true,'debug'=>0))
240 )        ));
241         $this->assertEquals(array('((isset($in[\'true\']) && is_array($in)) ? $in[\'true\'] : null)', '[true]'), $method->invokeArgs(null,array(
242             array('true'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
243 )        ));
244         $this->assertEquals(array('((isset($in[\'false\']) && is_array($in)) ? $in[\'false\'] : null)', '[false]'), $method->invokeArgs(null,array(
245             array('false'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
246 )        ));
247         $this->assertEquals(array('true', 'true'), $method->invokeArgs(null,array(
248             array(0, 'true'), array('flags'=>array('spvar'=>true,'debug'=>0))
249 )        ));
250         $this->assertEquals(array('false', 'false'), $method->invokeArgs(null,array(
251             array(0, 'false'), array('flags'=>array('spvar'=>true,'debug'=>0))
252 )        ));
253         $this->assertEquals(array('((isset($in[\'2\']) && is_array($in)) ? $in[\'2\'] : null)', '[2]'), $method->invokeArgs(null,array(
254             array('2'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
255 )        ));
256         $this->assertEquals(array('2', '2'), $method->invokeArgs(null,array(
257             array(0, '2'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0))
258 )        ));
259         $this->assertEquals(array('((isset($in[\'@index\']) && is_array($in)) ? $in[\'@index\'] : null)', '[@index]'), $method->invokeArgs(null,array(
260             array('@index'), array('flags'=>array('spvar'=>false,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
261 )        ));
262         $this->assertEquals(array("((isset(\$cx['sp_vars']['index']) && is_array(\$cx['sp_vars'])) ? \$cx['sp_vars']['index'] : null)", '@[index]'), $method->invokeArgs(null,array(
263             array('@index'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
264 )        ));
265         $this->assertEquals(array("((isset(\$cx['sp_vars']['key']) && is_array(\$cx['sp_vars'])) ? \$cx['sp_vars']['key'] : null)", '@[key]'), $method->invokeArgs(null,array(
266             array('@key'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
267 )        ));
268         $this->assertEquals(array("((isset(\$cx['sp_vars']['first']) && is_array(\$cx['sp_vars'])) ? \$cx['sp_vars']['first'] : null)", '@[first]'), $method->invokeArgs(null,array(
269             array('@first'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
270 )        ));
271         $this->assertEquals(array("((isset(\$cx['sp_vars']['last']) && is_array(\$cx['sp_vars'])) ? \$cx['sp_vars']['last'] : null)", '@[last]'), $method->invokeArgs(null,array(
272             array('@last'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
273 )        ));
274         $this->assertEquals(array('((isset($in[\'"a"\']) && is_array($in)) ? $in[\'"a"\'] : null)', '["a"]'), $method->invokeArgs(null,array(
275             array('"a"'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
276 )        ));
277         $this->assertEquals(array('"a"', '"a"'), $method->invokeArgs(null,array(
278             array(0, '"a"'), array('flags'=>array('spvar'=>true,'debug'=>0))
279 )        ));
280         $this->assertEquals(array('((isset($in[\'a\']) && is_array($in)) ? $in[\'a\'] : null)', '[a]'), $method->invokeArgs(null,array(
281             array('a'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
282 )        ));
283         $this->assertEquals(array('((isset($cx[\'scopes\'][count($cx[\'scopes\'])-1][\'a\']) && is_array($cx[\'scopes\'][count($cx[\'scopes\'])-1])) ? $cx[\'scopes\'][count($cx[\'scopes\'])-1][\'a\'] : null)', '../[a]'), $method->invokeArgs(null,array(
284             array(1,'a'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
285 )        ));
286         $this->assertEquals(array('((isset($cx[\'scopes\'][count($cx[\'scopes\'])-3][\'a\']) && is_array($cx[\'scopes\'][count($cx[\'scopes\'])-3])) ? $cx[\'scopes\'][count($cx[\'scopes\'])-3][\'a\'] : null)', '../../../[a]'), $method->invokeArgs(null,array(
287             array(3,'a'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
288 )        ));
289         $this->assertEquals(array('((isset($in[\'id\']) && is_array($in)) ? $in[\'id\'] : null)', 'this.[id]'), $method->invokeArgs(null,array(
290             array(null, 'id'), array('flags'=>array('spvar'=>true,'debug'=>0,'prop'=>0,'method'=>0,'mustlok'=>0))
291 )        ));
292         $this->assertEquals(array('LCRun3::v($cx, $in, array(\'id\'))', 'this.[id]'), $method->invokeArgs(null,array(
293             array(null, 'id'), array('flags'=>array('prop'=>true,'spvar'=>true,'debug'=>0,'method'=>0,'mustlok'=>0,'standalone'=>0), 'lcrun' => 'LCRun3')
294 )        ));
295     }
296     /**
297      * @covers LightnCandy::getExpression
298      */
299     public function testOn_getExpression() {
300         $method = new ReflectionMethod('LightnCandy', 'getExpression');
301         $method->setAccessible(true);
302         $this->assertEquals('[a].[b]', $method->invokeArgs(null,array(
303             0, false, array('a', 'b')
304 )        ));
305         $this->assertEquals('@[root]', $method->invokeArgs(null,array(
306             0, true, array('root')
307 )        ));
308         $this->assertEquals('this', $method->invokeArgs(null,array(
309             0, false, null
310 )        ));
311         $this->assertEquals('this.[id]', $method->invokeArgs(null,array(
312             0, false, array(null, 'id')
313 )        ));
314         $this->assertEquals('@[root].[a].[b]', $method->invokeArgs(null,array(
315             0, true, array('root', 'a', 'b')
316 )        ));
317         $this->assertEquals('../../[a].[b]', $method->invokeArgs(null,array(
318             2, false, array('a', 'b')
319 )        ));
320         $this->assertEquals('../[a\'b]', $method->invokeArgs(null,array(
321             1, false, array('a\'b')
322 )        ));
323     }
324     /**
325      * @covers LightnCandy::fixVariable
326      */
327     public function testOn_fixVariable() {
328         $method = new ReflectionMethod('LightnCandy', 'fixVariable');
329         $method->setAccessible(true);
330         $this->assertEquals(array('this'), $method->invokeArgs(null,array(
331             'this', array('flags' => array('advar' => 0, 'this' => 0))
332 )        ));
333         $this->assertEquals(array(), $method->invokeArgs(null,array(
334             'this', array('flags' => array('advar' => 0, 'this' => 1))
335 )        ));
336         $this->assertEquals(array(1), $method->invokeArgs(null,array(
337             '../', array('flags' => array('advar' => 0, 'this' => 1, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
338 )        ));
339         $this->assertEquals(array(1), $method->invokeArgs(null,array(
340             '../.', array('flags' => array('advar' => 0, 'this' => 1, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
341 )        ));
342         $this->assertEquals(array(1), $method->invokeArgs(null,array(
343             '../this', array('flags' => array('advar' => 0, 'this' => 1, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
344 )        ));
345         $this->assertEquals(array(1, 'a'), $method->invokeArgs(null,array(
346             '../a', array('flags' => array('advar' => 0, 'this' => 1, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
347 )        ));
348         $this->assertEquals(array(2, 'a', 'b'), $method->invokeArgs(null,array(
349             '../../a.b', array('flags' => array('advar' => 0, 'this' => 0, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
350 )        ));
351         $this->assertEquals(array(2, '[a]', 'b'), $method->invokeArgs(null,array(
352             '../../[a].b', array('flags' => array('advar' => 0, 'this' => 0, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
353 )        ));
354         $this->assertEquals(array(2, 'a', 'b'), $method->invokeArgs(null,array(
355             '../../[a].b', array('flags' => array('advar' => 1, 'this' => 0, 'parent' => 1), 'usedFeature' => array('parent' => 0), 'scan' => true)
356 )        ));
357         $this->assertEquals(array('id'), $method->invokeArgs(null,array(
358             'this.id', array('flags' => array('advar' => 1, 'this' => 1, 'parent' => 1), 'usedFeature' => array('parent' => 0))
359 )        ));
360         $this->assertEquals(array(0, '\'a.b\''), $method->invokeArgs(null,array(
361             '"a.b"', array('flags' => array('advar' => 1, 'this' => 0, 'parent' => 1), 'usedFeature' => array('parent' => 0))
362 )        ));
363         $this->assertEquals(array(0, '123'), $method->invokeArgs(null,array(
364             '123', array('flags' => array('advar' => 1, 'this' => 0, 'parent' => 1), 'usedFeature' => array('parent' => 0))
365 )        ));
366         $this->assertEquals(array(0, 'null'), $method->invokeArgs(null,array(
367             'null', array('flags' => array('advar' => 1, 'this' => 0, 'parent' => 1), 'usedFeature' => array('parent' => 0))
368 )        ));
369     }
370     /**
371      * @covers LightnCandy::parseTokenArgs
372      */
373     public function testOn_parseTokenArgs() {
374         $method = new ReflectionMethod('LightnCandy', 'parseTokenArgs');
375         $method->setAccessible(true);
376         $this->assertEquals(array(false, array(array())), $method->invokeArgs(null,array(
377             array(0,0,0,0,0,0,''), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
378 )        ));
379         $this->assertEquals(array(true, array(array())), $method->invokeArgs(null,array(
380             array(0,0,0,'{{{',0,0,''), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
381 )        ));
382         $this->assertEquals(array(true, array(array())), $method->invokeArgs(null,array(
383             array(0,0,0,0,0,0,''), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 1), 'scan' => false, 'rawblock' => false)
384 )        ));
385         $this->assertEquals(array(false, array(array('a'))), $method->invokeArgs(null,array(
386             array(0,0,0,0,0,0,'a'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
387 )        ));
388         $this->assertEquals(array(false, array(array('a'), array('b'))), $method->invokeArgs(null,array(
389             array(0,0,0,0,0,0,'a  b'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
390 )        ));
391         $this->assertEquals(array(false, array(array('a'), array('"b'), array('c"'))), $method->invokeArgs(null,array(
392             array(0,0,0,0,0,0,'a "b c"'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
393 )        ));
394         $this->assertEquals(array(false, array(array('a'), array(0, '\'b c\''))), $method->invokeArgs(null,array(
395             array(0,0,0,0,0,0,'a "b c"'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
396 )        ));
397         $this->assertEquals(array(false, array(array('a'), array('[b'), array('c]'))), $method->invokeArgs(null,array(
398             array(0,0,0,0,0,0,'a [b c]'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
399 )        ));
400         $this->assertEquals(array(false, array(array('a'), array('[b'), array('c]'))), $method->invokeArgs(null,array(
401             array(0,0,0,0,0,0,'a [b c]'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
402 )        ));
403         $this->assertEquals(array(false, array(array('a'), array('b c'))), $method->invokeArgs(null,array(
404             array(0,0,0,0,0,0,'a [b c]'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
405 )        ));
406         $this->assertEquals(array(false, array(array('a'), array('b c'))), $method->invokeArgs(null,array(
407             array(0,0,0,0,0,0,'a [b c]'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
408 )        ));
409         $this->assertEquals(array(false, array(array('a'), 'q' => array('b c'))), $method->invokeArgs(null,array(
410             array(0,0,0,0,0,0,'a q=[b c]'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
411 )        ));
412         $this->assertEquals(array(false, array(array('a'), array('q=[b c'))), $method->invokeArgs(null,array(
413             array(0,0,0,0,0,0,'a [q=[b c]'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
414 )        ));
415         $this->assertEquals(array(false, array(array('a'), 'q' => array('[b'), array('c]'))), $method->invokeArgs(null,array(
416             array(0,0,0,0,0,0,'a q=[b c]'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
417 )        ));
418         $this->assertEquals(array(false, array(array('a'), 'q' => array('b'), array('c'))), $method->invokeArgs(null,array(
419             array(0,0,0,0,0,0,'a [q]=b c'), array('flags' => array('advar' => 0, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
420 )        ));
421         $this->assertEquals(array(false, array(array('a'), 'q' => array(0, '\'b c\''))), $method->invokeArgs(null,array(
422             array(0,0,0,0,0,0,'a q="b c"'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
423 )        ));
424         $this->assertEquals(array(false, array(array('(foo bar)'))), $method->invokeArgs(null,array(
425             array(0,0,0,0,0,0,'(foo bar)'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0, 'exhlp' => 1), 'ops' => array('seperator' => ''), 'usedFeature' => array('subexp' => 0), 'scan' => false, 'rawblock' => false)
426 )        ));
427         $this->assertEquals(array(false, array(array('foo'), array("'=='"), array('bar'))), $method->invokeArgs(null,array(
428             array(0,0,0,0,0,0,"foo '==' bar"), array('flags' => array('advar' => 1, 'namev' => 1, 'noesc' => 0, 'this' => 0), 'scan' => false, 'rawblock' => false)
429 )        ));
430         $this->assertEquals(array(false, array(array('( foo bar)'))), $method->invokeArgs(null,array(
431             array(0,0,0,0,0,0,'( foo bar)'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0, 'exhlp' => 1), 'ops' => array('seperator' => ''), 'usedFeature' => array('subexp' => 0), 'scan' => false, 'rawblock' => false)
432 )        ));
433         $this->assertEquals(array(false, array(array('a'), array(0, '\' b c\''))), $method->invokeArgs(null,array(
434             array(0,0,0,0,0,0,'a " b c"'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 0, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
435 )        ));
436         $this->assertEquals(array(false, array(array('a'), 'q' => array(0, '\' b c\''))), $method->invokeArgs(null,array(
437             array(0,0,0,0,0,0,'a q=" b c"'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
438 )        ));
439         $this->assertEquals(array(false, array(array('foo'), array(0, "' =='"), array('bar'))), $method->invokeArgs(null,array(
440             array(0,0,0,0,0,0,"foo \' ==\' bar"), array('flags' => array('advar' => 1, 'namev' => 1, 'noesc' => 0, 'this' => 0), 'scan' => false, 'rawblock' => false)
441 )        ));
442         $this->assertEquals(array(false, array(array('a'), array(' b c'))), $method->invokeArgs(null,array(
443             array(0,0,0,0,0,0,'a [ b c]'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
444 )        ));
445         $this->assertEquals(array(false, array(array('a'), 'q' => array(0, "' d e'"))), $method->invokeArgs(null,array(
446             array(0,0,0,0,0,0,"a q=\' d e\'"), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0), 'scan' => false, 'rawblock' => false)
447 )        ));
448         $this->assertEquals(array(false, array('q' => array('( foo bar)'))), $method->invokeArgs(null,array(
449             array(0,0,0,0,0,0,'q=( foo bar)'), array('flags' => array('advar' => 1, 'this' => 1, 'namev' => 1, 'noesc' => 0, 'exhlp' => 0), 'scan' => false, 'usedFeature' => array(), 'ops' => array('seperator' => 0), 'rawblock' => false)
450 )        ));
451     }
452     /**
453      * @covers LightnCandy::tokenString
454      */
455     public function testOn_tokenString() {
456         $method = new ReflectionMethod('LightnCandy', 'tokenString');
457         $method->setAccessible(true);
458         $this->assertEquals('b', $method->invokeArgs(null,array(
459             array(0, 'a', 'b', 'c'), 1
460 )        ));
461         $this->assertEquals('c', $method->invokeArgs(null,array(
462             array(0, 'a', 'b', 'c', 'd', 'e')
463 )        ));
464     }
465     /**
466      * @covers LightnCandy::validateStartEnd
467      */
468     public function testOn_validateStartEnd() {
469         $method = new ReflectionMethod('LightnCandy', 'validateStartEnd');
470         $method->setAccessible(true);
471         $this->assertEquals(null, $method->invokeArgs(null,array(
472             array_fill(0, 9, ''), array()
473 )        ));
474         $this->assertEquals(null, $method->invokeArgs(null,array(
475             array_fill(0, 9, '}}'), array()
476 )        ));
477         $this->assertEquals(true, $method->invokeArgs(null,array(
478             array_fill(0, 9, '{{{'), array()
479 )        ));
480     }
481     /**
482      * @covers LightnCandy::validateOperations
483      */
484     public function testOn_validateOperations() {
485         $method = new ReflectionMethod('LightnCandy', 'validateOperations');
486         $method->setAccessible(true);
487         $this->assertEquals(null, $method->invokeArgs(null,array(
488             array(0, 0, 0, 0, 0, ''), array(), array()
489 )        ));
490         $this->assertEquals(2, $method->invokeArgs(null,array(
491             array(0, 0, 0, 0, 0, '^', '...'), array('usedFeature' => array('isec' => 1), 'level' => 0), array(array('foo'))
492 )        ));
493         $this->assertEquals(3, $method->invokeArgs(null,array(
494             array(0, 0, 0, 0, 0, '!', '...'), array('usedFeature' => array('comment' => 2)), array()
495 )        ));
496         $this->assertEquals(true, $method->invokeArgs(null,array(
497             array(0, 0, 0, 0, 0, '/'), array('stack' => array(1), 'level' => 1), array()
498 )        ));
499         $this->assertEquals(4, $method->invokeArgs(null,array(
500             array(0, 0, 0, 0, 0, '#', '...'), array('usedFeature' => array('sec' => 3), 'level' => 0), array(array('x'))
501 )        ));
502         $this->assertEquals(5, $method->invokeArgs(null,array(
503             array(0, 0, 0, 0, 0, '#', '...'), array('usedFeature' => array('if' => 4), 'level' => 0), array(array('if'))
504 )        ));
505         $this->assertEquals(6, $method->invokeArgs(null,array(
506             array(0, 0, 0, 0, 0, '#', '...'), array('usedFeature' => array('with' => 5), 'level' => 0, 'flags' => array('with' => 1)), array(array('with'))
507 )        ));
508         $this->assertEquals(7, $method->invokeArgs(null,array(
509             array(0, 0, 0, 0, 0, '#', '...'), array('usedFeature' => array('each' => 6), 'level' => 0), array(array('each'))
510 )        ));
511         $this->assertEquals(8, $method->invokeArgs(null,array(
512             array(0, 0, 0, 0, 0, '#', '...'), array('usedFeature' => array('unless' => 7), 'level' => 0), array(array('unless'))
513 )        ));
514         $this->assertEquals(9, $method->invokeArgs(null,array(
515             array(0, 0, 0, 0, 0, '#', '...'), array('blockhelpers' => array('abc' => ''), 'usedFeature' => array('bhelper' => 8), 'level' => 0), array(array('abc'))
516 )        ));
517         $this->assertEquals(10, $method->invokeArgs(null,array(
518             array(0, 0, 0, 0, 0, ' ', '...'), array('usedFeature' => array('delimiter' => 9), 'level' => 0), array()
519 )        ));
520         $this->assertEquals(11, $method->invokeArgs(null,array(
521             array(0, 0, 0, 0, 0, '#', '...'), array('hbhelpers' => array('abc' => ''), 'usedFeature' => array('hbhelper' => 10), 'level' => 0), array(array('abc'))
522 )        ));
523         $this->assertEquals(true, $method->invokeArgs(null,array(
524             array(0, 0, 0, 0, 0, '>', '...'), array('basedir' => array('.'), 'fileext' => array('.tmpl'), 'usedFeature' => array('unless' => 7, 'partial' => 7), 'level' => 0, 'flags' => array('skippartial' => 0)), array('test')
525 )        ));
526     }
527     /**
528      * @covers LightnCandy::addUsageCount
529      */
530     public function testOn_addUsageCount() {
531         $method = new ReflectionMethod('LightnCandy', 'addUsageCount');
532         $method->setAccessible(true);
533         $this->assertEquals(1, $method->invokeArgs(null,array(
534             array('usedCount' => array('test' => array())), 'test', 'testname'
535 )        ));
536         $this->assertEquals(3, $method->invokeArgs(null,array(
537             array('usedCount' => array('test' => array('testname' => 2))), 'test', 'testname'
538 )        ));
539         $this->assertEquals(5, $method->invokeArgs(null,array(
540             array('usedCount' => array('test' => array('testname' => 2))), 'test', 'testname', 3
541 )        ));
542     }
543 }
544 ?>