64 lines
1.3 KiB
PHP
64 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Jasny\Twig;
|
|
|
|
/**
|
|
* Helper methods for unit tests
|
|
*/
|
|
trait TestHelper
|
|
{
|
|
/**
|
|
* Get the tested extension
|
|
*
|
|
* @return \Twig_Extension
|
|
*/
|
|
abstract protected function getExtension();
|
|
|
|
/**
|
|
* Build the Twig environment for the template
|
|
*
|
|
* @param string $template
|
|
* @return \Twig_Environment
|
|
*/
|
|
protected function buildEnv($template)
|
|
{
|
|
$loader = new \Twig_Loader_Array([
|
|
'template' => $template,
|
|
]);
|
|
$twig = new \Twig_Environment($loader);
|
|
|
|
$twig->addExtension($this->getExtension());
|
|
|
|
return $twig;
|
|
}
|
|
|
|
/**
|
|
* Render template
|
|
*
|
|
* @param string $template
|
|
* @param array $data
|
|
* @return string
|
|
*/
|
|
protected function render($template, array $data = [])
|
|
{
|
|
$twig = $this->buildEnv($template);
|
|
$result = $twig->render('template', $data);
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Render template and assert equals
|
|
*
|
|
* @param string $expected
|
|
* @param string $template
|
|
* @param array $data
|
|
*/
|
|
protected function assertRender($expected, $template, array $data = [])
|
|
{
|
|
$result = $this->render($template, $data);
|
|
|
|
$this->assertEquals($expected, (string)$result);
|
|
}
|
|
}
|