"a", "b" => "b" ); $this->tpl('template1.tpl', 'Template 1 a'); $this->tpl('template2.tpl', 'Template 2 b'); $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'))); } public function testStorage() { $this->tpl('custom.tpl', 'Custom template'); $this->assertSame("Custom template", $this->fenom->fetch('custom.tpl', array())); //$this->fenom->clearCompiledTemplate('custom.tpl', false); //$this->assertSame("Custom template", $this->fenom->fetch('custom.tpl', array())); $this->tpl('custom.tpl', 'Custom template 2'); $this->assertSame("Custom template", $this->fenom->fetch('custom.tpl', array())); } public function testCheckMTime() { $this->fenom->setOptions(Fenom::FORCE_COMPILE); $this->tpl('custom.tpl', 'Custom template'); $this->assertSame("Custom template", $this->fenom->fetch('custom.tpl', array())); sleep(1); $this->tpl('custom.tpl', 'Custom template (new)'); $this->assertSame("Custom template (new)", $this->fenom->fetch('custom.tpl', array())); } public function testForceCompile() { $this->fenom->setOptions(Fenom::FORCE_COMPILE); $this->tpl('custom.tpl', 'Custom template'); $this->assertSame("Custom template", $this->fenom->fetch('custom.tpl', array())); $this->tpl('custom.tpl', 'Custom template (new)'); $this->assertSame("Custom template (new)", $this->fenom->fetch('custom.tpl', array())); } public function testSetModifier() { $this->fenom->addModifier("mymod", "myMod"); $this->tpl('custom.tpl', 'Custom modifier {$a|mymod}'); $this->assertSame("Custom modifier (myMod)Custom(/myMod)", $this->fenom->fetch('custom.tpl', array("a" => "Custom"))); } /** * @group add_functions */ public function testSetFunctions() { $this->fenom->setOptions(Fenom::FORCE_COMPILE); $this->fenom->addFunction("myfunc", "myFunc"); $this->fenom->addBlockFunction("myblockfunc", "myBlockFunc"); $this->tpl('custom.tpl', 'Custom function {myfunc name="foo"}'); $this->assertSame("Custom function MyFunc:foo", $this->fenom->fetch('custom.tpl', array())); $this->tpl('custom.tpl', 'Custom function {myblockfunc name="foo"} this block1 {/myblockfunc}'); $this->assertSame("Custom function Block:foo:this block1:Block", $this->fenom->fetch('custom.tpl', array())); } public function testSetCompilers() { $this->fenom->setOptions(Fenom::FORCE_COMPILE); $this->fenom->addCompiler("mycompiler", 'myCompiler'); $this->fenom->addBlockCompiler("myblockcompiler", 'myBlockCompilerOpen', 'myBlockCompilerClose', array( 'tag' => 'myBlockCompilerTag' )); $this->tpl('custom.tpl', 'Custom compiler {mycompiler name="bar"}'); $this->assertSame("Custom compiler PHP_VERSION: ".PHP_VERSION." (for bar)", $this->fenom->fetch('custom.tpl', array())); $this->tpl('custom.tpl', 'Custom compiler {myblockcompiler name="bar"} block1 {tag name="baz"} block2 {/myblockcompiler}'); $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())); } } ?>