fenom/tests/cases/AspectTest.php

98 lines
4.3 KiB
PHP
Raw Normal View History

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() {
$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")));
}
/**
* @group add_functions
*/
2013-01-25 18:36:16 +04:00
public function testSetFunctions() {
2013-02-22 00:05:20 +04:00
$this->aspect->setOptions(Aspect::FORCE_COMPILE);
$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);
$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()));
}
}
?>