2013-01-25 18:36:16 +04:00
< ? php
2013-06-28 11:53:53 +04:00
use Fenom\Render ,
Fenom\Provider as FS ;
2013-01-25 18:36:16 +04:00
2013-06-28 11:53:53 +04:00
class FenomTest extends \Fenom\TestCase {
2013-01-25 18:36:16 +04:00
public function testAddRender () {
$test = $this ;
2013-06-28 11:53:53 +04:00
$this -> fenom -> addTemplate ( new Render ( $this -> fenom , function ( $tpl ) use ( $test ) {
2013-01-25 18:36:16 +04:00
/** @var \PHPUnit_Framework_TestCase $test */
2013-06-28 11:53:53 +04:00
$test -> assertInstanceOf ( 'Fenom\Render' , $tpl );
2013-01-25 18:36:16 +04:00
echo " Inline render " ;
2013-02-13 20:51:27 +04:00
}, array (
2013-02-22 00:05:20 +04:00
" name " => 'render.tpl' ,
" scm " => false
2013-02-13 20:51:27 +04:00
)));
2013-01-25 18:36:16 +04:00
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Inline render " , $this -> fenom -> fetch ( 'render.tpl' , array ()));
2013-01-25 18:36:16 +04:00
}
public function testCompileFile () {
$a = array (
" a " => " a " ,
" b " => " b "
);
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'template1.tpl' , 'Template 1 a' );
$this -> tpl ( 'template2.tpl' , 'Template 2 b' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Template 1 a " , $this -> fenom -> fetch ( 'template1.tpl' , $a ));
$this -> assertSame ( " Template 2 b " , $this -> fenom -> fetch ( 'template2.tpl' , $a ));
$this -> assertInstanceOf ( 'Fenom\Render' , $this -> fenom -> getTemplate ( 'template1.tpl' ));
$this -> assertInstanceOf ( 'Fenom\Render' , $this -> fenom -> getTemplate ( 'template2.tpl' ));
$this -> assertSame ( 3 , iterator_count ( new FilesystemIterator ( FENOM_RESOURCES . '/compile' )));
2013-01-25 18:36:16 +04:00
}
public function testStorage () {
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom template " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
//$this->fenom->clearCompiledTemplate('custom.tpl', false);
2013-01-25 18:36:16 +04:00
2013-06-28 11:53:53 +04:00
//$this->assertSame("Custom template", $this->fenom->fetch('custom.tpl', array()));
2013-01-25 18:36:16 +04:00
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template 2' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom template " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-01-25 18:36:16 +04:00
}
public function testCheckMTime () {
2013-06-28 11:53:53 +04:00
$this -> fenom -> setOptions ( Fenom :: FORCE_COMPILE );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom template " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-01-25 18:36:16 +04:00
sleep ( 1 );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template (new)' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom template (new) " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-01-25 18:36:16 +04:00
}
public function testForceCompile () {
2013-06-28 11:53:53 +04:00
$this -> fenom -> setOptions ( Fenom :: FORCE_COMPILE );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom template " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template (new)' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom template (new) " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-01-25 18:36:16 +04:00
}
public function testSetModifier () {
2013-06-28 11:53:53 +04:00
$this -> fenom -> addModifier ( " mymod " , " myMod " );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom modifier {$a|mymod}' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom modifier (myMod)Custom(/myMod) " , $this -> fenom -> fetch ( 'custom.tpl' , array ( " a " => " Custom " )));
2013-01-25 18:36:16 +04:00
}
2013-03-14 21:45:00 +04:00
/**
* @ group add_functions
*/
2013-01-25 18:36:16 +04:00
public function testSetFunctions () {
2013-06-28 11:53:53 +04:00
$this -> fenom -> setOptions ( Fenom :: FORCE_COMPILE );
$this -> fenom -> addFunction ( " myfunc " , " myFunc " );
$this -> fenom -> addBlockFunction ( " myblockfunc " , " myBlockFunc " );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom function {myfunc name="foo"}' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom function MyFunc:foo " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom function {myblockfunc name="foo"} this block1 {/myblockfunc}' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom function Block:foo:this block1:Block " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-01-25 18:36:16 +04:00
}
public function testSetCompilers () {
2013-06-28 11:53:53 +04:00
$this -> fenom -> setOptions ( Fenom :: FORCE_COMPILE );
$this -> fenom -> addCompiler ( " mycompiler " , 'myCompiler' );
$this -> fenom -> addBlockCompiler ( " myblockcompiler " , 'myBlockCompilerOpen' , 'myBlockCompilerClose' , array (
2013-01-25 18:36:16 +04:00
'tag' => 'myBlockCompilerTag'
));
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom compiler {mycompiler name="bar"}' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom compiler PHP_VERSION: " . PHP_VERSION . " (for bar) " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom compiler {myblockcompiler name="bar"} block1 {tag name="baz"} block2 {/myblockcompiler}' );
2013-06-28 11:53:53 +04:00
$this -> assertSame ( " Custom compiler PHP_VERSION: " . PHP_VERSION . " (for bar) block1 Tag baz of compiler block2 End of compiler " , $this -> fenom -> fetch ( 'custom.tpl' , array ()));
2013-01-25 18:36:16 +04:00
}
}
?>