mirror of
https://gh.wpcy.net/https://github.com/rilustrisimo/freescout-support.git
synced 2026-04-29 14:32:36 +08:00
354 lines
7.9 KiB
PHP
354 lines
7.9 KiB
PHP
<?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\PhpRenderer;
|
|
|
|
/**
|
|
* Test class of PhpRenderer
|
|
*
|
|
* @since 2.0
|
|
*/
|
|
class PhpRendererTest extends AbstractDomTestCase
|
|
{
|
|
/**
|
|
* Test instance.
|
|
*
|
|
* @var PhpRenderer
|
|
*/
|
|
protected $instance;
|
|
|
|
/**
|
|
* Property path.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected static $path;
|
|
|
|
/**
|
|
* 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/php');
|
|
|
|
if (!static::$path) {
|
|
throw new \RuntimeException('Path not exists');
|
|
}
|
|
|
|
$this->instance = new PhpRenderer(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\PhpRenderer::render
|
|
*/
|
|
public function testRender()
|
|
{
|
|
$html = $this->instance->render('default');
|
|
|
|
$expect = <<<HTML
|
|
<div id="default">
|
|
Default
|
|
</div>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* Method to test findFile().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\PhpRenderer::findFile
|
|
*/
|
|
public function testFindFile()
|
|
{
|
|
$file = $this->instance->findFile('flower');
|
|
|
|
$this->assertEquals(realpath(static::$path . '/flower.php'), $file);
|
|
|
|
$file = $this->instance->findFile('foo/bar');
|
|
|
|
$this->assertEquals(realpath(static::$path . '/foo/bar.php'), $file);
|
|
}
|
|
|
|
/**
|
|
* Method to test extend().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\PhpRenderer::extend
|
|
*/
|
|
public function testRenderTopLevelBlock()
|
|
{
|
|
$html = $this->instance->render('extend1');
|
|
|
|
$expect = <<<HTML
|
|
<p>
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eleifend, ante vitae vestibulum tempus
|
|
</p>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* Method to test extend().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\PhpRenderer::extend
|
|
*/
|
|
public function testExtend()
|
|
{
|
|
$html = $this->instance->render('foo/extend2');
|
|
|
|
$expect = <<<HTML
|
|
<p>
|
|
Lorem ipsum dolor sit amet,
|
|
<span>Vivamus tincidunt consectetur finibus.</span>
|
|
Curabitur eleifend, ante vitae vestibulum tempus
|
|
</p>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
|
|
$this->instance->reset();
|
|
|
|
// Render twice
|
|
$html = $this->instance->render('foo/extend3');
|
|
|
|
$expect = <<<HTML
|
|
<p>
|
|
Lorem ipsum dolor sit amet,
|
|
<span>Sed tempor urna quis varius luctus.</span>
|
|
Curabitur eleifend, ante vitae vestibulum tempus
|
|
</p>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* testExtendMultiLevels
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testExtendMultiLevels()
|
|
{
|
|
$html = $this->instance->render('foo/extend3');
|
|
|
|
$expect = <<<HTML
|
|
<p>
|
|
Lorem ipsum dolor sit amet,
|
|
<span>Sed tempor urna quis varius luctus.</span>
|
|
Curabitur eleifend, ante vitae vestibulum tempus
|
|
</p>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* testExtendWithParent
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testExtendWithParent()
|
|
{
|
|
$html = $this->instance->render('foo/extend-with-parent');
|
|
|
|
$expect = <<<HTML
|
|
<p>
|
|
Lorem ipsum dolor sit amet,
|
|
<span>Vivamus tincidunt consectetur finibus.</span>
|
|
<span>Sed tempor urna quis varius luctus.</span>
|
|
Curabitur eleifend, ante vitae vestibulum tempus
|
|
</p>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* testLoad
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testLoad()
|
|
{
|
|
$html = $this->instance->render('include1');
|
|
|
|
$expect = <<<HTML
|
|
<div id="flower">
|
|
<h1>BAR</h1>
|
|
<p>Quisque egestas posuere enim non dapibus.</p>
|
|
</div>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* testLoadWithData
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testLoadWithData()
|
|
{
|
|
$data = [
|
|
'class' => 'flower',
|
|
'title' => 'Sakura',
|
|
'content' => 'Nulla sollicitudin vel augue quis aliquet.',
|
|
];
|
|
|
|
$html = $this->instance->render('data1', $data);
|
|
|
|
$expect = <<<HTML
|
|
<div id="data" class="flower">
|
|
<h1>Sakura</h1>
|
|
<p>Morbi suscipit ante massa</p>
|
|
</div>
|
|
HTML;
|
|
|
|
$this->assertDomStringEqualsDomString($expect, $html);
|
|
}
|
|
|
|
/**
|
|
* Method to test escape().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\AbstractRenderer::escape
|
|
*/
|
|
public function testEscape()
|
|
{
|
|
$html = '<div id="data" class="flower" onclick="jQuery(\'#data .gota\').distroy();"></div>';
|
|
|
|
$this->assertEquals(
|
|
'<div id="data" class="flower" onclick="jQuery(\'#data .gota\').distroy();"></div>',
|
|
$this->instance->escape($html)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method to test getPaths().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\AbstractRenderer::getPaths
|
|
* @TODO Implement testGetPaths().
|
|
*/
|
|
public function testGetPaths()
|
|
{
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method to test setPaths().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\AbstractRenderer::setPaths
|
|
* @TODO Implement testSetPaths().
|
|
*/
|
|
public function testSetPaths()
|
|
{
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method to test addPath().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\AbstractRenderer::addPath
|
|
* @TODO Implement testAddPath().
|
|
*/
|
|
public function testAddPath()
|
|
{
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method to test getBlock().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\PhpRenderer::getBlock
|
|
* @TODO Implement testGetBlock().
|
|
*/
|
|
public function testGetBlock()
|
|
{
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method to test setBlock().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\PhpRenderer::setBlock
|
|
* @TODO Implement testSetBlock().
|
|
*/
|
|
public function testSetBlock()
|
|
{
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method to test getBlockQueue().
|
|
*
|
|
* @return void
|
|
*
|
|
* @covers \Windwalker\Renderer\PhpRenderer::getBlockQueue
|
|
* @TODO Implement testGetBlockQueue().
|
|
*/
|
|
public function testGetBlockQueue()
|
|
{
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
}
|