‪TYPO3CMS  ‪main
CleanerFieldProviderTest.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\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
27 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
28 
29 final class ‪CleanerFieldProviderTest extends FunctionalTestCase
30 {
31  protected array ‪$coreExtensionsToLoad = ['scheduler'];
32 
34  {
35  return [
36  ['abc'],
37  [new \stdClass()],
38  [null],
39  [''],
40  [0],
41  ['1234abc'],
42  ];
43  }
44 
45  #[DataProvider('validateAdditionalFieldsLogsPeriodErrorDataProvider')]
46  #[Test]
47  public function ‪validateAdditionalFieldsLogsPeriodError(mixed $period): void
48  {
49  ‪$GLOBALS['LANG'] = $this->get(LanguageServiceFactory::class)->create('default');
50  $submittedData = [
51  'RecyclerCleanerPeriod' => $period,
52  'RecyclerCleanerTCA' => ['pages'],
53  ];
54  $subject = new ‪CleanerFieldProvider();
55  $subject->validateAdditionalFields($submittedData, $this->get(SchedulerModuleController::class));
56  self::assertFalse($this->get(FlashMessageService::class)->getMessageQueueByIdentifier()->isEmpty());
57  }
58 
59  public static function ‪validateAdditionalFieldsDataProvider(): array
60  {
61  return [
62  ['abc'],
63  [new \stdClass()],
64  [null],
65  [123],
66  ];
67  }
68 
69  #[DataProvider('validateAdditionalFieldsDataProvider')]
70  #[Test]
71  public function ‪validateAdditionalFieldsLogsTableError(mixed $table): void
72  {
73  ‪$GLOBALS['LANG'] = $this->get(LanguageServiceFactory::class)->create('default');
74  $submittedData = [
75  'RecyclerCleanerPeriod' => 14,
76  'RecyclerCleanerTCA' => $table,
77  ];
78  $subject = new ‪CleanerFieldProvider();
79  $subject->validateAdditionalFields($submittedData, $this->get(SchedulerModuleController::class));
80  self::assertFalse($this->get(FlashMessageService::class)->getMessageQueueByIdentifier()->isEmpty());
81  }
82 
83  #[Test]
85  {
86  $submittedData = [
87  'RecyclerCleanerPeriod' => 14,
88  'RecyclerCleanerTCA' => ['pages'],
89  ];
90  ‪$GLOBALS['TCA']['pages'] = ['foo' => 'bar'];
91  $subject = new ‪CleanerFieldProvider();
92  self::assertTrue($subject->validateAdditionalFields($submittedData, $this->get(SchedulerModuleController::class)));
93  }
94 
95  #[Test]
96  public function ‪saveAdditionalFieldsSavesFields(): void
97  {
98  $submittedData = [
99  'RecyclerCleanerPeriod' => 14,
100  'RecyclerCleanerTCA' => ['pages'],
101  ];
102  $task = new ‪CleanerTask();
103  $subject = new ‪CleanerFieldProvider();
104  $subject->saveAdditionalFields($submittedData, $task);
105  self::assertSame(14, $task->getPeriod());
106  self::assertSame(['pages'], $task->getTcaTables());
107  }
108 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest
Definition: CleanerFieldProviderTest.php:30
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\$coreExtensionsToLoad
‪array $coreExtensionsToLoad
Definition: CleanerFieldProviderTest.php:31
‪TYPO3\CMS\Recycler\Task\CleanerFieldProvider
Definition: CleanerFieldProvider.php:31
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\saveAdditionalFieldsSavesFields
‪saveAdditionalFieldsSavesFields()
Definition: CleanerFieldProviderTest.php:96
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\validateAdditionalFieldsIsTrueIfValid
‪validateAdditionalFieldsIsTrueIfValid()
Definition: CleanerFieldProviderTest.php:84
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\validateAdditionalFieldsLogsPeriodError
‪validateAdditionalFieldsLogsPeriodError(mixed $period)
Definition: CleanerFieldProviderTest.php:47
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\validateAdditionalFieldsDataProvider
‪static validateAdditionalFieldsDataProvider()
Definition: CleanerFieldProviderTest.php:59
‪TYPO3\CMS\Recycler\Task\CleanerTask
Definition: CleanerTask.php:30
‪TYPO3\CMS\Scheduler\Controller\SchedulerModuleController
Definition: SchedulerModuleController.php:61
‪TYPO3\CMS\Recycler\Tests\Functional\Task
Definition: CleanerFieldProviderTest.php:18
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\validateAdditionalFieldsLogsTableError
‪validateAdditionalFieldsLogsTableError(mixed $table)
Definition: CleanerFieldProviderTest.php:71
‪TYPO3\CMS\Recycler\Tests\Functional\Task\CleanerFieldProviderTest\validateAdditionalFieldsLogsPeriodErrorDataProvider
‪static validateAdditionalFieldsLogsPeriodErrorDataProvider()
Definition: CleanerFieldProviderTest.php:33
‪TYPO3\CMS\Core\Messaging\FlashMessageService
Definition: FlashMessageService.php:27