‪TYPO3CMS  ‪main
FileSizeValidatorTest.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 
20 use PHPUnit\Framework\Attributes\Test;
29 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
30 
31 final class ‪FileSizeValidatorTest extends FunctionalTestCase
32 {
33  protected function ‪setUp(): void
34  {
35  parent::setUp();
36  ‪$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default');
37  $request = (new ‪ServerRequest())->withAttribute('applicationType', ‪SystemEnvironmentBuilder::REQUESTTYPE_BE);
38  ‪$GLOBALS['TYPO3_REQUEST'] = $request;
39  }
40 
41  #[Test]
43  {
44  $this->expectException(InvalidValidationOptionsException::class);
45  $this->expectExceptionCode(1505304205);
46  $options = ['minimum' => '0', 'maximum' => '1B'];
48  ‪$validator->setOptions($options);
49  ‪$validator->validate(true);
50  }
51 
52  #[Test]
54  {
55  $this->expectException(InvalidValidationOptionsException::class);
56  $this->expectExceptionCode(1505304206);
57  $options = ['minimum' => '0B', 'maximum' => '1'];
59  ‪$validator->setOptions($options);
60  ‪$validator->validate(true);
61  }
62 
63  #[Test]
65  {
66  $options = ['minimum' => '1M', 'maximum' => '10M'];
68  ‪$validator->setOptions($options);
69  $mockedStorage = $this->getMockBuilder(ResourceStorage::class)->disableOriginalConstructor()->getMock();
70  $file = new ‪File(['identifier' => '/foo', 'name' => 'bar.txt', 'size' => '1'], $mockedStorage);
71  self::assertTrue(‪$validator->validate($file)->hasErrors());
72  }
73 
74  #[Test]
76  {
77  $options = ['minimum' => '1M', 'maximum' => '1M'];
79  ‪$validator->setOptions($options);
80  $mockedStorage = $this->getMockBuilder(ResourceStorage::class)->disableOriginalConstructor()->getMock();
81  $file = new ‪File(['identifier' => '/foo', 'name' => 'bar.txt', 'size' => '1048577'], $mockedStorage);
82  self::assertTrue(‪$validator->validate($file)->hasErrors());
83  }
84 
85  #[Test]
87  {
88  $options = ['minimum' => '0B', 'maximum' => '1M'];
90  ‪$validator->setOptions($options);
91  self::assertFalse(‪$validator->validate('')->hasErrors());
92  }
93 
94  #[Test]
96  {
97  $options = ['minimum' => '0B', 'maximum' => '1M'];
99  ‪$validator->setOptions($options);
100  self::assertTrue(‪$validator->validate('string')->hasErrors());
101  }
102 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation
Definition: CountValidatorTest.php:18
‪TYPO3\CMS\Form\Mvc\Validation\Exception\InvalidValidationOptionsException
Definition: InvalidValidationOptionsException.php:22
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\FileSizeValidatorHasErrorsIfFileResourceSizeIsToBig
‪FileSizeValidatorHasErrorsIfFileResourceSizeIsToBig()
Definition: FileSizeValidatorTest.php:75
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
Definition: SystemEnvironmentBuilder.php:41
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder\REQUESTTYPE_BE
‪const REQUESTTYPE_BE
Definition: SystemEnvironmentBuilder.php:45
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\FileSizeValidatorHasErrorsIfFileResourceSizeIsToSmall
‪FileSizeValidatorHasErrorsIfFileResourceSizeIsToSmall()
Definition: FileSizeValidatorTest.php:64
‪TYPO3\CMS\Form\Mvc\Validation\FileSizeValidator
Definition: FileSizeValidator.php:34
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\setUp
‪setUp()
Definition: FileSizeValidatorTest.php:33
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\FileSizeValidatorThrowsExceptionIfMinimumOptionIsInvalid
‪FileSizeValidatorThrowsExceptionIfMinimumOptionIsInvalid()
Definition: FileSizeValidatorTest.php:42
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\FileSizeValidatorHasNoErrorsIfInputIsEmptyString
‪FileSizeValidatorHasNoErrorsIfInputIsEmptyString()
Definition: FileSizeValidatorTest.php:86
‪$validator
‪if(isset($args['d'])) $validator
Definition: validateRstFiles.php:262
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:39
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest
Definition: FileSizeValidatorTest.php:32
‪TYPO3\CMS\Core\Resource\ResourceStorage
Definition: ResourceStorage.php:129
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\FileSizeValidatorHasErrorsIfInputIsNoFileResource
‪FileSizeValidatorHasErrorsIfInputIsNoFileResource()
Definition: FileSizeValidatorTest.php:95
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\FileSizeValidatorTest\FileSizeValidatorThrowsExceptionIfMaximumOptionIsInvalid
‪FileSizeValidatorThrowsExceptionIfMaximumOptionIsInvalid()
Definition: FileSizeValidatorTest.php:53