2013-02-23 02:03:05 +04:00
|
|
|
<?php
|
|
|
|
namespace Aspect;
|
|
|
|
|
|
|
|
class MacrosTest extends TestCase {
|
|
|
|
|
2013-02-23 13:29:20 +04:00
|
|
|
public function setUp() {
|
|
|
|
parent::setUp();
|
|
|
|
$this->tpl("math.tpl", '
|
2013-02-23 02:03:05 +04:00
|
|
|
{macro plus(x, y)}
|
|
|
|
x + y = {$x + $y}
|
|
|
|
{/macro}
|
|
|
|
|
2013-02-23 13:29:20 +04:00
|
|
|
{macro minus(x, y, z=0)}
|
|
|
|
x - y - z = {$x - $y - $z}
|
|
|
|
{/macro}
|
|
|
|
|
|
|
|
Math: {macro.plus x=2 y=3}, {macro.minus x=10 y=4}
|
|
|
|
');
|
|
|
|
|
|
|
|
$this->tpl("import.tpl", '
|
|
|
|
{import "math.tpl"}
|
|
|
|
{import "math.tpl" as math}
|
|
|
|
|
|
|
|
Imp: {macro.plus x=1 y=2}, {math.minus x=6 y=2 z=1}
|
2013-02-23 02:03:05 +04:00
|
|
|
');
|
2013-02-23 13:29:20 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testMacros() {
|
|
|
|
$tpl = $this->aspect->compile('math.tpl');
|
2013-02-23 02:03:05 +04:00
|
|
|
|
|
|
|
$this->assertStringStartsWith('x + y = ', trim($tpl->macros["plus"]["body"]));
|
2013-02-23 13:29:20 +04:00
|
|
|
$this->assertSame('Math: x + y = 5 , x - y - z = 6', Modifier::strip($tpl->fetch(array()), true));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testImport() {
|
|
|
|
$tpl = $this->aspect->compile('import.tpl');
|
|
|
|
|
|
|
|
$this->assertSame('Imp: x + y = 3 , x - y - z = 3', Modifier::strip($tpl->fetch(array()), true));
|
2013-02-23 02:03:05 +04:00
|
|
|
}
|
|
|
|
}
|