Skip to content
Snippets Groups Projects
Commit 1166e843 authored by Simon Praetorius's avatar Simon Praetorius Committed by Christian Kuhn
Browse files

[TASK] Convert ViewHelper test to functional

A ViewHelper shouldn't be called directly in a test case because
its behavior is highly dependent on Fluid.

Resolves: #104787
Releases: main
Change-Id: Ib0e98d15231940cca31ff854ba76d21b2b719f8b
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85835


Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
parent 8cc084c7
Branches
Tags
No related merge requests found
......@@ -15,32 +15,39 @@ declare(strict_types=1);
* The TYPO3 project - inspiring people to share!
*/
namespace TYPO3\CMS\Redirects\Tests\Unit\ViewHelpers;
namespace TYPO3\CMS\Redirects\Tests\Functional\ViewHelpers;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Test;
use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext;
use TYPO3\CMS\Redirects\ViewHelpers\TargetPageIdViewHelper;
use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextFactory;
use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
use TYPO3Fluid\Fluid\View\TemplateView;
final class TargetPageIdViewHelperTest extends UnitTestCase
final class TargetPageIdViewHelperTest extends FunctionalTestCase
{
#[Test]
public function nonTypo3TargetInRenderStaticReturnsEmptyString(): void
protected array $coreExtensionsToLoad = ['redirects'];
public static function renderDataProvider(): array
{
$renderingContext = new class () extends RenderingContext {
public function __construct() {}
};
$args = ['target' => 'nope'];
self::assertSame('', TargetPageIdViewHelper::renderStatic($args, static fn() => '', $renderingContext));
return [
'nonTypo3Target' => [
'template' => '<redirects:targetPageId target="nope" />',
'expected' => '',
],
'emptyTarget' => [
'template' => '<redirects:targetPageId target="" />',
'expected' => '',
],
];
}
#[DataProvider('renderDataProvider')]
#[Test]
public function emptyTargetInRenderStaticReturnsEmptyString(): void
public function render(string $template, string $expected): void
{
$renderingContext = new class () extends RenderingContext {
public function __construct() {}
};
$args = [];
self::assertSame('', TargetPageIdViewHelper::renderStatic($args, static fn() => '', $renderingContext));
$context = $this->get(RenderingContextFactory::class)->create();
$context->getViewHelperResolver()->addNamespace('redirects', 'TYPO3\\CMS\\Redirects\\ViewHelpers');
$context->getTemplatePaths()->setTemplateSource($template);
self::assertSame($expected, (new TemplateView($context))->render());
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment