Skip to content
Snippets Groups Projects
Commit d762c35a authored by Nikita Hovratov's avatar Nikita Hovratov
Browse files

[TASK] Improve invalidArguments tests for ImageViewHelper

- Remove duplicate test case for src="" and image="null"
- Avoid instantiating ImageViewHelper with "new" -> use TemplateView
- Add missing scenarios for possible exceptions

Resolves: #102220
Releases: main, 12.4
Change-Id: I18b5cdbe7471a53ebb57bbe5521fecc051a24d26
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81461


Reviewed-by: default avatarNikita Hovratov <nikita.h@live.de>
Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarNikita Hovratov <nikita.h@live.de>
parent 43da9cd7
Branches
Tags
No related merge requests found
......@@ -18,21 +18,37 @@ declare(strict_types=1);
namespace TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers;
use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextFactory;
use TYPO3\CMS\Fluid\ViewHelpers\ImageViewHelper;
use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
use TYPO3Fluid\Fluid\View\TemplateView;
final class ImageViewHelperTest extends FunctionalTestCase
{
protected array $additionalFoldersToCreate = [
'/fileadmin/user_upload',
];
protected array $pathsToProvideInTestInstance = [
'typo3/sysext/fluid/Tests/Functional/Fixtures/ViewHelpers/Link/FileViewHelper/Folders/fileadmin/user_upload/typo3_image2.jpg' => 'fileadmin/user_upload/typo3_image2.jpg',
];
public function setUp(): void
{
parent::setUp();
$this->importCSVDataSet(__DIR__ . '/../Fixtures/ViewHelpers/Link/FileViewHelper/DatabaseImport.csv');
$this->importCSVDataSet(__DIR__ . '/../Fixtures/be_users.csv');
$this->setUpBackendUser(1);
}
public static function invalidArgumentsDataProvider(): array
{
return [
[['src' => '', 'image' => null], 1382284106],
[['src' => null, 'image' => null], 1382284106],
[['src' => '', 'image' => null], 1382284106],
[['src' => 'something', 'image' => 'something'], 1382284106],
[['src' => 'something', 'image' => null, 'fileExtension' => 'dummy'], 1618989190],
['<f:image />', 1382284106],
['<f:image src="" />', 1382284106],
['<f:image src="something" />', 1509741911],
['<f:image src="EXT:fluid/Tests/Functional/Fixtures/ViewHelpers/" />', 1509741914],
['<f:image src="fileadmin/user_upload/" />', 1509741912],
['<f:image src="something" fileExtension="dummy" />', 1618989190],
];
}
......@@ -40,14 +56,14 @@ final class ImageViewHelperTest extends FunctionalTestCase
* @test
* @dataProvider invalidArgumentsDataProvider
*/
public function renderThrowsExceptionOnInvalidArguments(array $arguments, int $expectedExceptionCode): void
public function renderThrowsExceptionOnInvalidArguments(string $template, int $expectedExceptionCode): void
{
$this->expectException(Exception::class);
$this->expectExceptionCode($expectedExceptionCode);
$viewHelper = new ImageViewHelper();
$viewHelper->setArguments($arguments);
$viewHelper->render();
$context = $this->get(RenderingContextFactory::class)->create();
$context->getTemplatePaths()->setTemplateSource($template);
(new TemplateView($context))->render();
}
public static function renderReturnsExpectedMarkupDataProvider(): array
......@@ -78,8 +94,6 @@ final class ImageViewHelperTest extends FunctionalTestCase
*/
public function renderReturnsExpectedMarkup(string $template, string $expected): void
{
$this->importCSVDataSet(__DIR__ . '/../Fixtures/be_users.csv');
$this->setUpBackendUser(1);
$context = $this->get(RenderingContextFactory::class)->create();
$context->getTemplatePaths()->setTemplateSource($template);
self::assertMatchesRegularExpression($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