‪TYPO3CMS  11.5
UploadViewHelperTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
27 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
28 
29 class ‪UploadViewHelperTest extends FunctionalTestCase
30 {
34  public function ‪renderCorrectlySetsTagName(): void
35  {
36  $view = new ‪StandaloneView();
37  $view->setTemplateSource('<f:form.upload />');
38  self::assertSame('<input type="file" name="" />', $view->render());
39  }
40 
45  {
46  $view = new ‪StandaloneView();
47  $view->setTemplateSource('<f:form.upload name="someName" />');
48  self::assertSame('<input type="file" name="someName" />', $view->render());
49  }
50 
55  {
56  $view = new ‪StandaloneView();
57  $view->setTemplateSource('<f:form.upload multiple="multiple" name="someName" />');
58  self::assertSame('<input multiple="multiple" type="file" name="someName[]" />', $view->render());
59  }
60 
64  public function ‪renderCallsSetErrorClassAttribute(): void
65  {
66  // Create an extbase request that contains mapping results of the form object property we're working with.
67  $mappingResult = new ‪Result();
68  $objectResult = $mappingResult->forProperty('myObjectName');
69  $propertyResult = $objectResult->forProperty('someProperty');
70  $propertyResult->addError(new ‪Error('invalidProperty', 2));
71  $extbaseRequestParameters = new ‪ExtbaseRequestParameters();
72  $extbaseRequestParameters->setOriginalRequestMappingResults($mappingResult);
73  $psr7Request = (new ‪ServerRequest())->withAttribute('extbase', $extbaseRequestParameters);
74  $extbaseRequest = new ‪Request($psr7Request);
75  GeneralUtility::addInstance(Request::class, $extbaseRequest);
76 
77  $formObject = new \stdClass();
78  $view = new ‪StandaloneView();
79  $view->assign('formObject', $formObject);
80  $view->setTemplateSource('<f:form object="{formObject}" fieldNamePrefix="myFieldPrefix" objectName="myObjectName"><f:form.upload property="someProperty" errorClass="myError" /></f:form>');
81  // The point is that 'class="myError"' is added since the form had mapping errors for this property.
82  self::assertStringContainsString('<input type="file" name="myFieldPrefix[myObjectName][someProperty]" class="myError" />', $view->render());
83  }
84 }
‪TYPO3\CMS\Extbase\Error\Result
Definition: Result.php:24
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Form\UploadViewHelperTest\renderCorrectlySetsTypeNameAttributes
‪renderCorrectlySetsTypeNameAttributes()
Definition: UploadViewHelperTest.php:44
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Form
Definition: ButtonViewHelperTest.php:18
‪TYPO3\CMS\Extbase\Error\Error
Definition: Error.php:25
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:37
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Form\UploadViewHelperTest
Definition: UploadViewHelperTest.php:30
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters
Definition: ExtbaseRequestParameters.php:33
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Extbase\Mvc\Request
Definition: Request.php:39
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Form\UploadViewHelperTest\renderCorrectlySetsTagName
‪renderCorrectlySetsTagName()
Definition: UploadViewHelperTest.php:34
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Form\UploadViewHelperTest\renderSetsAttributeNameAsArrayIfMultipleIsGiven
‪renderSetsAttributeNameAsArrayIfMultipleIsGiven()
Definition: UploadViewHelperTest.php:54
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Form\UploadViewHelperTest\renderCallsSetErrorClassAttribute
‪renderCallsSetErrorClassAttribute()
Definition: UploadViewHelperTest.php:64