config->version = 2; ?>';
private $baseurl;
public function _before()
{
$this->baseurl = '/' . basename(dirname(dirname(dirname(dirname(__DIR__))))) . '/';
}
public function testVersion()
{
// Extension is .html and config is explicitly declared
$source = '' . "\n" . '
{{ RX_VERSION|noescape }}
';
$target = '';
$this->assertEquals("\n" . $target, $this->_parse($source), false);
$source = '@version(2)' . "\n" . '@php func_get_args(); @endphp
';
$target = '';
$this->assertEquals("\n" . $target, $this->_parse($source), false);
// Extension is .blade.php and config is not declared
$source = '';
$target = ' disabled="disabled">';
$this->assertEquals($target, $this->_parse($source));
// Extension is .blade.php but version is incorrectly declared: will be parsed as v1
$source = '@version(1)' . "\n" . '';
$target = '';
$this->assertStringContainsString($target, $this->_parse($source));
}
public function testClassAliases()
{
// XE-style
$source = '' . "\n" . '{@ $foo = TemplateHandler::getInstance()}';
$target = "\n" . 'foo = Rhymix\Framework\Template::getInstance() ?>';
$this->assertEquals($target, $this->_parse($source));
// Blade-style
$source = "@use('Rhymix\Framework\Template', 'TemplateHandler')" . "\n" . '{@ $foo = new TemplateHandler()}';
$target = "\n" . 'foo = new Rhymix\Framework\Template() ?>';
$this->assertEquals($target, $this->_parse($source));
}
public function testInclude()
{
// Basic usage
$source = '';
$target = 'relative_dirname, "foobar", "blade.php"); echo $__tpl->compile(); ?>';
$this->assertEquals($target, $this->_parse($source));
// Legacy 'target' attribute
$source = '';
$target = 'relative_dirname, "subdir/foobar", "blade.php"); echo $__tpl->compile(); ?>';
$this->assertEquals($target, $this->_parse($source));
// Conditional include
$source = '';
$target = 'relative_dirname, "../up/foobar", "blade.php"); echo $__tpl->compile(); ?>';
$this->assertEquals($target, $this->_parse($source));
// Conditional include with legacy 'cond' attribute
$source = '';
$target = 'relative_dirname, "legacy/cond.statement.html", "blade.php"); echo $__tpl->compile(); ?>';
$this->assertEquals($target, $this->_parse($source));
// Path relative to Rhymix installation directory
$source = '';
$target = 'compile(); ?>';
$this->assertEquals($target, $this->_parse($source));
// Unless
$source = '';
$target = 'compile(); ?>';
$this->assertEquals($target, $this->_parse($source));
}
public function testAssetLoading()
{
}
public function testEchoStatements()
{
}
public function testOutputFilters()
{
}
public function testPathConversion()
{
}
public function testBlockConditions()
{
}
public function testInlineConditions()
{
}
public function testMiscDirectives()
{
}
public function testComments()
{
}
public function testVerbatim()
{
}
public function testRawPhpCode()
{
}
public function testAutoEscape()
{
}
public function testCurlyBracesAndVars()
{
}
public function testCompile()
{
}
public function _parse($source, $force_v2 = true)
{
$filename = $force_v2 ? 'v2example.blade.php' : 'empty.html';
$tmpl = new \Rhymix\Framework\Template('./tests/_data/template', $filename);
$result = $tmpl->parse($source);
if (str_starts_with($result, $this->prefix))
{
$result = substr($result, strlen($this->prefix));
}
return $result;
}
}