4f5a31d2 |
<?php declare(strict_types=1);
/**
* Part of Windwalker project Test files. @codingStandardsIgnoreStart
*
* @copyright Copyright (C) 2019 LYRASOFT Taiwan, Inc.
* @license LGPL-2.0-or-later
*/
namespace Windwalker\Renderer\Test;
use Windwalker\Dom\Test\AbstractDomTestCase;
use Windwalker\Renderer\Test\Stub\StubTwigExtension;
use Windwalker\Renderer\TwigRenderer;
/**
* Test class of TwigRenderer
*
* @since 2.0
*/
class TwigRendererTest extends AbstractDomTestCase
{
/**
* Property path.
*
* @var string
*/
protected static $path;
/**
* Test instance.
*
* @var TwigRenderer
*/
protected $instance;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @return void
*/
protected function setUp(): void
{
static::$path = realpath(__DIR__ . '/Tmpl/twig');
if (!static::$path) {
throw new \RuntimeException('Path not exists');
}
$this->instance = new TwigRenderer(static::$path);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*
* @return void
*/
protected function tearDown(): void
{
}
/**
* Method to test render().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::render
*/
public function testRender()
{
$html = $this->instance->render('default');
$expect = <<<HTML
<div id="global">
<p> (_global/global) Lorem ipsum dolor sit amet</p>
<p> (default) Nulla sed libero sem. Praesent ac dignissim risus.</p>
<p> (foo/bar) Phasellus vitae bibendum neque, quis suscipit urna. Fusce eu odio ante.</p>
<p> (_global/global) Suspendisse finibus fermentum massa ut tempus. </p>
</div>
HTML;
$this->assertDomStringEqualsDomString($expect, $html);
}
/**
* Method to test render().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::render
*/
public function testRenderWithDotPath()
{
$this->instance->config->set('path_separator', '.');
$html = $this->instance->render('default_dot');
$expect = <<<HTML
<div id="global">
<p> (_global/global) Lorem ipsum dolor sit amet</p>
<p> (default) Nulla sed libero sem. Praesent ac dignissim risus.</p>
<p> (foo/bar) Phasellus vitae bibendum neque, quis suscipit urna. Fusce eu odio ante.</p>
<p> (_global/global) Suspendisse finibus fermentum massa ut tempus. </p>
</div>
HTML;
$this->assertDomStringEqualsDomString($expect, $html);
}
/**
* Method to test getLoader().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::getLoader
*/
public function testGetLoader()
{
$this->assertInstanceOf('Twig_Loader_Filesystem', $this->instance->getLoader());
}
/**
* Method to test setLoader().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::setLoader
* @TODO Implement testSetLoader().
*/
public function testSetLoader()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
/**
* Method to test addExtension().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::addExtension
*/
public function testAddExtension()
{
$this->instance->addExtension(new StubTwigExtension());
$html = $this->instance->render('ext-test.twig');
$expect = <<<HTML
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Suspendisse finibus fermentum massa ut tempus. Sed in pulvinar dolor.</p>
<ul>
<li>peace</li>
<li>sakura</li>
<li>Iron Man</li>
</ul>
HTML;
$this->assertDomStringEqualsDomString($expect, $html);
}
/**
* Method to test setTwig().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::setTwig
* @TODO Implement testSetTwig().
*/
public function testSetTwig()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
/**
* Method to test getDebugExtension().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::getDebugExtension
*/
public function testGetDebugExtension()
{
$this->assertInstanceOf('Twig_Extension_Debug', $this->instance->getDebugExtension());
}
/**
* Method to test setDebugExtension().
*
* @return void
*
* @covers \Windwalker\Renderer\TwigRenderer::setDebugExtension
* @TODO Implement testSetDebugExtension().
*/
public function testSetDebugExtension()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
}
|