Select Git revision
TestWpThemeResolver.php
TestWpThemeResolver.php 1.98 KiB
<?php
use WPDesk\View\Resolver\Exception\CanNotResolve;
class TestThemeResolver extends \PHPUnit\Framework\TestCase
{
const TEMPLATE_NAME = 'some_template.php';
const TEMPLATE_FILE = 'some_template.php';
const TEMPLATE_SUBDIR = 'templates';
public function setUp()
{
\WP_Mock::setUp();
\WP_Mock::userFunction('locate_template', [
'return' => function ($template_names, $load = false, $require_once = true) {
$located = '';
foreach ((array)$template_names as $template_name) {
if ( ! $template_name) {
continue;
}
if (file_exists(STYLESHEETPATH . '/' . $template_name)) {
$located = STYLESHEETPATH . '/' . $template_name;
break;
}
}
return $located;
}
]);
\WP_Mock::userFunction('trailingslashit', [
'return' => function ($string) {
return untrailingslashit($string) . '/';
}
]);
\WP_Mock::userFunction('untrailingslashit', [
'return' => function ($string) {
return rtrim($string, '/\\');
}
]);
}
public function tearDown()
{
\WP_Mock::tearDown();
}
public function testCanFindInStyleSheetPath()
{
define('STYLESHEETPATH', __DIR__);
$template_base_path = self::TEMPLATE_SUBDIR;
$resolver = new \WPDesk\View\Resolver\WPThemeResolver($template_base_path);
$this->assertStringEndsWith(self::TEMPLATE_FILE, $resolver->resolve(self::TEMPLATE_NAME),
'Template should be found in stylesheetpath');
}
public function testThrowExceptionWhenCannotFind()
{
$this->expectException(CanNotResolve::class);
$resolver = new \WPDesk\View\Resolver\WPThemeResolver('whatever');
$resolver->resolve('whatever2');
}
}