%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/zordius/lightncandy/tests/ |
| Current File : /www/varak.net/wiki.varak.net/vendor/zordius/lightncandy/tests/mustacheSpecTest.php |
<?php
require_once('src/lightncandy.php');
$tmpdir = sys_get_temp_dir();
class MustacheSpecTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider jsonSpecProvider
*/
public function testSpecs($spec)
{
global $tmpdir;
$flag = LightnCandy::FLAG_MUSTACHE | LightnCandy::FLAG_ERROR_EXCEPTION | LightnCandy::FLAG_RUNTIMEPARTIAL;
foreach (Array($flag, $flag | LightnCandy::FLAG_STANDALONE) as $f) {
$php = LightnCandy::compile($spec['template'], Array(
'flags' => $f,
'partials' => isset($spec['partials']) ? $spec['partials'] : null,
'basedir' => $tmpdir,
));
$renderer = LightnCandy::prepare($php);
$this->assertEquals($spec['expected'], $renderer($spec['data']), "[{$spec['file']}.{$spec['name']}]#{$spec['no']}:{$spec['desc']} PHP CODE: $php");
}
}
public function jsonSpecProvider()
{
$ret = Array();
foreach (glob('specs/mustache/specs/*.json') as $file) {
// Skip lambda extension
if (preg_match('/lambdas\\.json$/', $file)) {
continue;
}
$i=0;
$json = json_decode(file_get_contents($file), true);
$ret = array_merge($ret, array_map(function ($d) use ($file, &$i) {
$d['file'] = $file;
$d['no'] = ++$i;
return Array($d);
}, $json['tests']));
}
return $ret;
}
}
?>