From a1789ddde42033f1b05cc4929491214ee6e79383 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 17 Dec 2015 09:15:42 +0100 Subject: Update to MediaWiki 1.26.0 --- .../zordius/lightncandy/tests/regressionTest.php | 609 +++++++++++++++++++++ 1 file changed, 609 insertions(+) (limited to 'vendor/zordius/lightncandy/tests/regressionTest.php') diff --git a/vendor/zordius/lightncandy/tests/regressionTest.php b/vendor/zordius/lightncandy/tests/regressionTest.php index bf591536..d7b6b96d 100644 --- a/vendor/zordius/lightncandy/tests/regressionTest.php +++ b/vendor/zordius/lightncandy/tests/regressionTest.php @@ -281,6 +281,612 @@ class regressionTest extends PHPUnit_Framework_TestCase 'expected' => 'NOT GOODNOT GOODNOT GOODNOT GOOD', ), + Array( + 'id' => 114, + 'template' => '{{^myeach .}}OK:{{.}},{{else}}NOT GOOD{{/myeach}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_BESTPERFORMANCE, + 'blockhelpers' => Array( + 'myeach' => function ($input) { + return $input; + } + ), + ), + 'data' => Array(1, 'foo', 3, 'bar'), + 'expected' => 'NOT GOOD', + ), + + Array( + 'id' => 114, + 'template' => '{{^myeach .}}OK:{{.}},{{else}}NOT GOOD{{/myeach}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_BESTPERFORMANCE, + 'blockhelpers' => Array( + 'myeach' => function ($input) { + return; + } + ), + ), + 'data' => Array(1, 'foo', 3, 'bar'), + 'expected' => 'OK:,', + ), + + Array( + 'id' => 124, + 'template' => '{{list foo bar abc=(lt 10 3) def=(lt 3 10)}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'lt' => function ($a, $b) { + return ($a > $b) ? Array("$a>$b", 'raw') : ''; + }, + 'list' => function () { + $out = 'List:'; + $args = func_get_args(); + $opts = array_pop($args); + + foreach ($args as $v) { + if ($v) { + $out .= ")$v , "; + } + } + + foreach ($opts['hash'] as $k => $v) { + if ($v) { + $out .= "]$k=$v , "; + } + } + return array($out, 'raw'); + } + ), + ), + 'data' => Array('foo' => 'OK!', 'bar' => 'OK2', 'abc' => false, 'def' => 123), + 'expected' => 'List:)OK! , )OK2 , ]abc=10>3 , ', + ), + + Array( + 'id' => 124, + 'template' => '{{#if (equal \'OK\' cde)}}YES!{{/if}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array('cde' => 'OK'), + 'expected' => 'YES!' + ), + + Array( + 'id' => 124, + 'template' => '{{#if (equal true (equal \'OK\' cde))}}YES!{{/if}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array('cde' => 'OK'), + 'expected' => 'YES!' + ), + + Array( + 'id' => 125, + 'template' => '{{#if (equal true ( equal \'OK\' cde))}}YES!{{/if}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array('cde' => 'OK'), + 'expected' => 'YES!' + ), + + Array( + 'id' => 125, + 'template' => '{{#if (equal true (equal \' OK\' cde))}}YES!{{/if}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array('cde' => ' OK'), + 'expected' => 'YES!' + ), + + Array( + 'id' => 125, + 'template' => '{{#if (equal true (equal \' ==\' cde))}}YES!{{/if}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array('cde' => ' =='), + 'expected' => 'YES!' + ), + + Array( + 'id' => 125, + 'template' => '{{#if (equal true (equal " ==" cde))}}YES!{{/if}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array('cde' => ' =='), + 'expected' => 'YES!' + ), + + Array( + 'id' => 125, + 'template' => '{{[ abc]}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'equal' => function ($a, $b) { + return $a === $b; + } + ), + ), + 'data' => Array(' abc' => 'YES!'), + 'expected' => 'YES!' + ), + + Array( + 'id' => 125, + 'template' => '{{list [ abc] " xyz" \' def\' "==" \'==\' "OK"}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'list' => function ($a, $b) { + $out = 'List:'; + $args = func_get_args(); + $opts = array_pop($args); + foreach ($args as $v) { + if ($v) { + $out .= ")$v , "; + } + } + return $out; + } + ), + ), + 'data' => Array(' abc' => 'YES!'), + 'expected' => 'List:)YES! , ) xyz , ) def , )== , )== , )OK , ' + ), + + Array( + 'id' => 127, + 'template' => '{{#each array}}#{{#if true}}{{name}}-{{../name}}-{{../../name}}-{{../../../name}}{{/if}}##{{#myif true}}{{name}}={{../name}}={{../../name}}={{../../../name}}{{/myif}}###{{#mywith true}}{{name}}~{{../name}}~{{../../name}}~{{../../../name}}{{/mywith}}{{/each}}', + 'data' => Array('name' => 'john', 'array' => Array(1,2,3)), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array('myif', 'mywith'), + ), + 'expected' => '#--john-##==john=###~~john~#--john-##==john=###~~john~#--john-##==john=###~~john~', + ), + + Array( + 'id' => 128, + 'template' => 'foo: {{foo}} , parent foo: {{../foo}}', + 'data' => Array('foo' => 'OK'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + ), + 'expected' => 'foo: OK , parent foo: ', + ), + + Array( + 'id' => 132, + 'template' => '{{list (keys .)}}', + 'data' => Array('foo' => 'bar', 'test' => 'ok'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'keys' => function($arg) { + return Array(array_keys($arg[0]), 'asis'); + }, + 'list' => function($arg) { + return join(',', $arg[0]); + } + ), + ), + 'expected' => 'foo,test', + ), + + Array( + 'id' => 133, + 'template' => "{{list (keys\n .\n ) \n}}", + 'data' => Array('foo' => 'bar', 'test' => 'ok'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'keys' => function($arg) { + return Array(array_keys($arg[0]), 'asis'); + }, + 'list' => function($arg) { + return join(',', $arg[0]); + } + ), + ), + 'expected' => 'foo,test', + ), + + Array( + 'id' => 133, + 'template' => "{{list\n .\n \n \n}}", + 'data' => Array('foo', 'bar', 'test'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'list' => function($arg) { + return join(',', $arg[0]); + } + ), + ), + 'expected' => 'foo,bar,test', + ), + + Array( + 'id' => 134, + 'template' => "{{#if 1}}{{list (keys ../names)}}{{/if}}", + 'data' => Array('names' => Array('foo' => 'bar', 'test' => 'ok')), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'keys' => function($arg) { + return Array(array_keys($arg[0]), 'asis'); + }, + 'list' => function($arg) { + return join(',', $arg[0]); + } + ), + ), + 'expected' => 'foo,test', + ), + + Array( + 'id' => 138, + 'template' => "{{#each (keys .)}}={{.}}{{/each}}", + 'data' => Array('foo' => 'bar', 'test' => 'ok', 'Haha'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'keys' => function($arg) { + return Array(array_keys($arg[0]), 'asis'); + } + ), + ), + 'expected' => '=foo=test=0', + ), + + Array( + 'id' => 140, + 'template' => "{{[a.good.helper] .}}", + 'data' => Array('ha', 'hey', 'ho'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'a.good.helper' => function($arg) { + return join(',', $arg[0]); + } + ), + ), + 'expected' => 'ha,hey,ho', + ), + + Array( + 'id' => 141, + 'template' => "{{#with foo}}{{#getThis bar}}{{/getThis}}{{/with}}", + 'data' => Array('foo' => Array('bar' => 'Good!')), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'getThis' => function($input, $options) { + return $input . '-' . $options['_this']['bar']; + } + ), + ), + 'expected' => 'Good!-Good!', + ), + + Array( + 'id' => 141, + 'template' => "{{#with foo}}{{getThis bar}}{{/with}}", + 'data' => Array('foo' => Array('bar' => 'Good!')), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'getThis' => function($input, $options) { + return $input . '-' . $options['_this']['bar']; + } + ), + ), + 'expected' => 'Good!-Good!', + ), + + Array( + 'id' => 143, + 'template' => "{{testString foo bar=\" \"}}", + 'data' => Array('foo' => 'good!'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'testString' => function($args, $named) { + return $args[0] . '-' . $named['bar']; + } + ), + ), + 'expected' => 'good!- ', + ), + + Array( + 'id' => 143, + 'template' => "{{testString foo bar=\"\"}}", + 'data' => Array('foo' => 'good!'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'testString' => function($args, $named) { + return $args[0] . '-' . $named['bar']; + } + ), + ), + 'expected' => 'good!-', + ), + + Array( + 'id' => 143, + 'template' => "{{testString foo bar=' '}}", + 'data' => Array('foo' => 'good!'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'testString' => function($args, $named) { + return $args[0] . '-' . $named['bar']; + } + ), + ), + 'expected' => 'good!- ', + ), + + Array( + 'id' => 143, + 'template' => "{{testString foo bar=''}}", + 'data' => Array('foo' => 'good!'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'testString' => function($args, $named) { + return $args[0] . '-' . $named['bar']; + } + ), + ), + 'expected' => 'good!-', + ), + + Array( + 'id' => 143, + 'template' => "{{testString foo bar=\" \"}}", + 'data' => Array('foo' => 'good!'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'testString' => function($arg1, $options) { + return $arg1 . '-' . $options['hash']['bar']; + } + ), + ), + 'expected' => 'good!- ', + ), + + Array( + 'id' => 147, + 'template' => '{{> test/test3 foo="bar"}}', + 'data' => Array('test' => 'OK!', 'foo' => 'error'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_RUNTIMEPARTIAL, + 'partials' => Array('test/test3' => '{{test}}, {{foo}}'), + ), + 'expected' => 'OK!, bar' + ), + + Array( + 'id' => 147, + 'template' => '{{> test/test3 foo="bar"}}', + 'data' => new foo(), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_RUNTIMEPARTIAL | LightnCandy::FLAG_INSTANCE, + 'partials' => Array('test/test3' => '{{bar}}, {{foo}}'), + ), + 'expected' => 'OK!, bar' + ), + + Array( + 'id' => 150, + 'template' => '{{{.}}}', + 'data' => Array('hello' => 'world'), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'lcrun' => 'MyLCRunClass', + ), + 'expected' => "[[DEBUG:raw()=>array (\n 'hello' => 'world',\n)]]", + ), + + Array( + 'id' => 153, + 'template' => '{{echo "test[]"}}', + 'data' => null, + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'echo' => function ($in) { + return "-$in[0]-"; + } + ) + ), + 'expected' => "-test[]-", + ), + + Array( + 'id' => 153, + 'template' => '{{echo \'test[]\'}}', + 'data' => null, + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'helpers' => Array( + 'echo' => function ($in) { + return "-$in[0]-"; + } + ) + ), + 'expected' => "-test[]-", + ), + + Array( + 'id' => 154, + 'template' => 'O{{! this is comment ! ... }}K!', + 'data' => null, + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + ), + 'expected' => "OK!" + ), + + Array( + 'template' => '{{testNull null undefined 1}}', + 'data' => 'test', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'testNull' => function($arg1, $arg2) { + return (($arg1 === null) && ($arg2 === null)) ? 'YES!' : 'no'; + } + ) + ), + 'expected' => 'YES!' + ), + + Array( + 'template' => '{{> (pname foo) bar}}', + 'data' => Array('bar' => 'OK! SUBEXP+PARTIAL!', 'foo' => Array('test/test3')), + 'options' => Array( + 'helpers' => Array( + 'pname' => function($arg) { + return $arg[0]; + } + ), + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_RUNTIMEPARTIAL, + 'partials' => Array('test/test3' => '{{.}}'), + ), + 'expected' => 'OK! SUBEXP+PARTIAL!' + ), + + Array( + 'template' => '{{> testpartial newcontext mixed=foo}}', + 'data' => Array('foo' => 'OK!', 'newcontext' => Array('bar' => 'test')), + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_RUNTIMEPARTIAL, + 'partials' => Array('testpartial' => '{{bar}}-{{mixed}}'), + ), + 'expected' => 'test-OK!' + ), + + Array( + 'template' => '{{[helper]}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'helper' => function () { + return 'DEF'; + } + ) + ), + 'data' => Array(), + 'expected' => 'DEF' + ), + + Array( + 'template' => '{{#[helper3]}}ABC{{/[helper3]}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'hbhelpers' => Array( + 'helper3' => function () { + return 'DEF'; + } + ) + ), + 'data' => Array(), + 'expected' => 'DEF' + ), + + Array( + 'template' => '{{#[helper3]}}ABC{{/[helper3]}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS, + 'blockhelpers' => Array( + 'helper3' => function () { + return Array('a', 'b', 'c'); + } + ) + ), + 'data' => Array(), + 'expected' => 'ABC' + ), + + Array( + 'template' => '{{hash abc=["def=123"]}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_BESTPERFORMANCE, + 'hbhelpers' => Array( + 'hash' => function ($options) { + $ret = ''; + foreach ($options['hash'] as $k => $v) { + $ret .= "$k : $v,"; + } + return $ret; + } + ), + ), + 'data' => Array('"def=123"' => 'La!'), + 'expected' => 'abc : La!,', + ), + + Array( + 'template' => '{{hash abc=[\'def=123\']}}', + 'options' => Array( + 'flags' => LightnCandy::FLAG_HANDLEBARSJS | LightnCandy::FLAG_BESTPERFORMANCE, + 'hbhelpers' => Array( + 'hash' => function ($options) { + $ret = ''; + foreach ($options['hash'] as $k => $v) { + $ret .= "$k : $v,"; + } + return $ret; + } + ), + ), + 'data' => Array("'def=123'" => 'La!'), + 'expected' => 'abc : La!,', + ), + Array( 'template' => 'ABC{{#block "YES!"}}DEF{{foo}}GHI{{else}}NO~{{/block}}JKL', 'options' => Array( @@ -558,6 +1164,9 @@ VAREND 'he' => 'helper1', 'h2' => 'myClass::helper2', 'link' => function ($arg) { + if (is_array($arg)) { + $arg = 'Array'; + } return "click here"; }, 'alink', -- cgit v1.2.3-54-g00ecf