2013-01-25 18:36:16 +04:00
< ? php
use Aspect\Render ,
2013-02-22 00:05:20 +04:00
Aspect\FSProvider as FS ;
2013-01-25 18:36:16 +04:00
2013-02-22 00:05:20 +04:00
class AspectTest extends \Aspect\TestCase {
2013-01-25 18:36:16 +04:00
public function testAddRender () {
$test = $this ;
2013-02-13 20:51:27 +04:00
$this -> aspect -> addTemplate ( new Render ( $this -> aspect , function ( $tpl ) use ( $test ) {
2013-01-25 18:36:16 +04:00
/** @var \PHPUnit_Framework_TestCase $test */
$test -> assertInstanceOf ( 'Aspect\Render' , $tpl );
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
$this -> assertSame ( " Inline render " , $this -> aspect -> fetch ( 'render.tpl' , array ()));
}
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-01-25 18:36:16 +04:00
$this -> assertSame ( " Template 1 a " , $this -> aspect -> fetch ( 'template1.tpl' , $a ));
$this -> assertSame ( " Template 2 b " , $this -> aspect -> fetch ( 'template2.tpl' , $a ));
$this -> assertInstanceOf ( 'Aspect\Render' , $this -> aspect -> getTemplate ( 'template1.tpl' ));
$this -> assertInstanceOf ( 'Aspect\Render' , $this -> aspect -> getTemplate ( 'template2.tpl' ));
2013-02-22 00:05:20 +04:00
$this -> assertSame ( 3 , iterator_count ( new FilesystemIterator ( ASPECT_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-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
2013-02-22 00:05:20 +04:00
$this -> aspect -> clearCompiledTemplate ( 'custom.tpl' , false );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template 2' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
}
public function testCheckMTime () {
2013-02-22 00:05:20 +04:00
$this -> aspect -> setOptions ( Aspect :: FORCE_COMPILE );
$this -> tpl ( 'custom.tpl' , 'Custom template' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
sleep ( 1 );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template (new)' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template (new) " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
}
public function testForceCompile () {
2013-02-22 00:05:20 +04:00
$this -> aspect -> setOptions ( Aspect :: FORCE_COMPILE );
$this -> tpl ( 'custom.tpl' , 'Custom template' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom template (new)' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom template (new) " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
}
public function testSetModifier () {
2013-02-07 17:37:16 +04:00
$this -> aspect -> addModifier ( " mymod " , " myMod " );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom modifier {$a|mymod}' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom modifier (myMod)Custom(/myMod) " , $this -> aspect -> fetch ( 'custom.tpl' , array ( " a " => " Custom " )));
}
public function testSetFunctions () {
2013-02-22 00:05:20 +04:00
$this -> aspect -> setOptions ( Aspect :: FORCE_COMPILE );
2013-02-07 17:37:16 +04:00
$this -> aspect -> addFunction ( " myfunc " , " myFunc " );
$this -> aspect -> addBlockFunction ( " myblockfunc " , " myBlockFunc " );
2013-02-22 00:05:20 +04:00
$this -> tpl ( 'custom.tpl' , 'Custom function {myfunc name="foo"}' );
2013-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom function MyFunc:foo " , $this -> aspect -> 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-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom function Block:foo:this block1:Block " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
}
public function testSetCompilers () {
2013-02-22 00:05:20 +04:00
$this -> aspect -> setOptions ( Aspect :: FORCE_COMPILE );
2013-02-07 17:37:16 +04:00
$this -> aspect -> addCompiler ( " mycompiler " , 'myCompiler' );
$this -> aspect -> 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-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom compiler PHP_VERSION: " . PHP_VERSION . " (for bar) " , $this -> aspect -> 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-01-25 18:36:16 +04:00
$this -> assertSame ( " Custom compiler PHP_VERSION: " . PHP_VERSION . " (for bar) block1 Tag baz of compiler block2 End of compiler " , $this -> aspect -> fetch ( 'custom.tpl' , array ()));
}
}
?>