‪TYPO3CMS  9.5
FormFileExtensionUpdateTest.php
Go to the documentation of this file.
1 <?php
2 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 
18 use Doctrine\DBAL\FetchMode;
19 use Symfony\Component\Console\Output\NullOutput;
31 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
32 
33 class ‪FormFileExtensionUpdateTest extends FunctionalTestCase
34 {
38  protected ‪$coreExtensionsToLoad = [
39  'form',
40  ];
41 
45  protected ‪$testExtensionsToLoad = [
46  'typo3/sysext/form/Tests/Functional/Hooks/Fixtures/test_resources',
47  ];
48 
52  private ‪$subject;
53 
57  private ‪$slot;
58 
62  private ‪$flexForm;
63 
68 
72  private ‪$storageFolder;
73 
74  protected function ‪setUp()
75  {
76  parent::setUp();
77 
78  $this->setUpBackendUserFromFixture(1);
80 
81  $folderIdentifier = 'form_definitions';
83 
84  if ($storage->hasFolder($folderIdentifier)) {
85  $storage->‪getFolder($folderIdentifier)->‪delete(true);
86  }
87 
88  ‪$output = new NullOutput();
89  $this->subject = GeneralUtility::makeInstance(FormFileExtensionUpdate::class);
90  $this->subject->setOutput(‪$output);
91  $this->slot = GeneralUtility::makeInstance(FilePersistenceSlot::class);
92  $this->flexForm = GeneralUtility::makeInstance(FlexFormTools::class);
93  $this->referenceIndex = GeneralUtility::makeInstance(ReferenceIndex::class);
94  $this->storageFolder = $storage->createFolder($folderIdentifier);
95  }
96 
97  protected function ‪tearDown()
98  {
99  $this->storageFolder->delete(true);
100  parent::tearDown();
101  }
102 
103  /*
104  * --- CHECK FOR UPDATE ---
105  */
106 
110  private function ‪invokeCheckForUpdate(): bool
111  {
112  return $this->subject->updateNecessary();
113  }
114 
119  {
120  $this->‪createStorageFormDefinition('updated', false);
121  $this->assertFalse($this->‪invokeCheckForUpdate());
122  }
123 
128  {
129  $this->‪createStorageFormDefinition('legacy', true);
130  $this->assertTrue($this->‪invokeCheckForUpdate());
131  }
132 
137  {
138  $this->‪createStorageFormDefinition('updated', false);
139  $this->‪createReference(
140  $this->‪createStorageFileIdentifier('updated.form.yaml'),
141  'updated'
142  );
143  $this->assertFalse($this->‪invokeCheckForUpdate());
144  }
145 
150  ) {
151  $this->‪createStorageFormDefinition('updated', false);
152  $finisherOverrides = [
153  'FirstFinisher' => ‪StringUtility::getUniqueId(),
154  'SecondFinisher' => ‪StringUtility::getUniqueId(),
155  ];
156  $this->‪createReference(
157  $this->‪createStorageFileIdentifier('updated.form.yaml'),
158  'updated',
159  $finisherOverrides
160  );
161  $this->assertFalse($this->‪invokeCheckForUpdate());
162  }
163 
168  {
169  // form definition was renamed already
170  $this->‪createStorageFormDefinition('updated', false);
171  // but references not updated yet
172  $this->‪createReference(
173  $this->‪createStorageFileIdentifier('updated.yaml'),
174  'updated'
175  );
176  $this->assertTrue($this->‪invokeCheckForUpdate());
177  }
178 
183  ) {
184  // form definition was renamed already
185  $this->‪createStorageFormDefinition('updated', false);
186  // but references not updated yet
187  $finisherOverrides = [
188  'FirstFinisher' => ‪StringUtility::getUniqueId(),
189  'SecondFinisher' => ‪StringUtility::getUniqueId(),
190  ];
191  $this->‪createReference(
192  $this->‪createStorageFileIdentifier('updated.yaml'),
193  'updated',
194  $finisherOverrides
195  );
196  $this->assertTrue($this->‪invokeCheckForUpdate());
197  }
198 
203  {
205  $this->assertFalse($this->‪invokeCheckForUpdate());
206  }
207 
212  {
214  $this->‪createReference(
215  $this->‪createExtensionFileIdentifier('updated.form.yaml'),
216  'updated'
217  );
218  $this->assertFalse($this->‪invokeCheckForUpdate());
219  }
220 
225  {
227  $this->‪createReference(
228  $this->‪createExtensionFileIdentifier('updated.yaml'),
229  'updated'
230  );
231  $this->assertTrue($this->‪invokeCheckForUpdate());
232  }
233 
238  ) {
240  $finisherOverrides = [
241  'FirstFinisher' => ‪StringUtility::getUniqueId(),
242  'SecondFinisher' => ‪StringUtility::getUniqueId(),
243  ];
244  $this->‪createReference(
245  $this->‪createExtensionFileIdentifier('updated.yaml'),
246  'updated',
247  $finisherOverrides
248  );
249  $this->assertTrue($this->‪invokeCheckForUpdate());
250  }
251 
252  /*
253  * --- PERFORM UPDATE ---
254  */
255 
256  private function ‪invokePerformUpdate(): bool
257  {
258  return $this->subject->executeUpdate();
259  }
260 
265  {
266  $this->‪createStorageFormDefinition('legacy', true);
267  $this->assertTrue(
268  $this->‪invokePerformUpdate()
269  );
270  $this->assertTrue(
271  $this->storageFolder->hasFile('legacy.form.yaml')
272  );
273  }
274 
279  {
280  // form definition was renamed already
281  $this->‪createStorageFormDefinition('updated', false);
282  // but references not updated yet
283  $this->‪createReference(
284  $this->‪createStorageFileIdentifier('updated.yaml'),
285  'updated'
286  );
287  // having an additional reference
288  $this->‪createReference(
289  $this->‪createStorageFileIdentifier('updated.yaml'),
290  'updated'
291  );
292  $this->assertTrue(
293  $this->‪invokePerformUpdate()
294  );
295  $expectedFileIdentifier = $this->‪createStorageFileIdentifier(
296  'updated.form.yaml'
297  );
298  foreach ($this->‪retrieveAllFlexForms() as ‪$flexForm) {
299  $this->assertSame(
300  $expectedFileIdentifier,
301  ‪$flexForm['data']['sDEF']['lDEF']['settings.persistenceIdentifier']['vDEF']
302  );
303  }
304  }
305 
310  ) {
311  // form definition was renamed already
312  $this->‪createStorageFormDefinition('updated', false);
313  // but references not updated yet
314  $finisherOverrides = [
315  'FirstFinisher' => ‪StringUtility::getUniqueId(),
316  'SecondFinisher' => ‪StringUtility::getUniqueId(),
317  ];
318  $this->‪createReference(
319  $this->‪createStorageFileIdentifier('updated.yaml'),
320  'updated',
321  $finisherOverrides
322  );
323  // having an additional reference
324  $this->‪createReference(
325  $this->‪createStorageFileIdentifier('updated.yaml'),
326  'updated',
327  $finisherOverrides
328  );
329  $this->assertTrue(
330  $this->‪invokePerformUpdate()
331  );
332  $expectedFileIdentifier = $this->‪createStorageFileIdentifier(
333  'updated.form.yaml'
334  );
335  $expectedSheetIdentifiers = $this->‪createFinisherOverridesSheetIdentifiers(
336  $expectedFileIdentifier,
337  'updated',
338  $finisherOverrides
339  );
340  foreach ($this->‪retrieveAllFlexForms() as ‪$flexForm) {
341  $this->assertSame(
342  $expectedFileIdentifier,
343  ‪$flexForm['data']['sDEF']['lDEF']['settings.persistenceIdentifier']['vDEF'] ?? null
344  );
345  foreach ($finisherOverrides as $finisherIdentifier => $finisherValue) {
346  $sheetIdentifier = $expectedSheetIdentifiers[$finisherIdentifier];
347  $propertyName = sprintf(
348  'settings.finishers.%s.value',
349  $finisherIdentifier
350  );
351  $this->assertSame(
352  $finisherValue,
353  ‪$flexForm['data'][$sheetIdentifier]['lDEF'][$propertyName]['vDEF'] ?? null
354  );
355  }
356  }
357  }
358 
363  {
365  $this->‪createReference(
366  $this->‪createExtensionFileIdentifier('updated.yaml'),
367  'updated'
368  );
369  // having an additional reference
370  $this->‪createReference(
371  $this->‪createExtensionFileIdentifier('updated.yaml'),
372  'updated'
373  );
374  $this->assertTrue(
375  $this->‪invokePerformUpdate()
376  );
377  $expectedFileIdentifier = $this->‪createExtensionFileIdentifier(
378  'updated.form.yaml'
379  );
380  foreach ($this->‪retrieveAllFlexForms() as ‪$flexForm) {
381  $this->assertSame(
382  $expectedFileIdentifier,
383  ‪$flexForm['data']['sDEF']['lDEF']['settings.persistenceIdentifier']['vDEF'] ?? null
384  );
385  }
386  }
387 
392  ) {
394  $finisherOverrides = [
395  'FirstFinisher' => ‪StringUtility::getUniqueId(),
396  'SecondFinisher' => ‪StringUtility::getUniqueId(),
397  ];
398  $this->‪createReference(
399  $this->‪createExtensionFileIdentifier('updated.yaml'),
400  'updated',
401  $finisherOverrides
402  );
403  // having an additional reference
404  $this->‪createReference(
405  $this->‪createExtensionFileIdentifier('updated.yaml'),
406  'updated',
407  $finisherOverrides
408  );
409  $this->assertTrue(
410  $this->‪invokePerformUpdate()
411  );
412  }
413 
414  /*
415  * --- HELPER FUNCTIONS ---
416  */
417 
422  private function ‪createStorageFormDefinition(
423  string $name,
424  bool $legacy = false
425  ) {
426  $content = implode(LF, [
427  'type: Form',
428  'identifier: ' . $name,
429  'prototypeName: standard'
430  ]);
431 
432  $fileName = $name . '.' . ($legacy ? 'yaml' : 'form.yaml');
433  $fileIdentifier = $this->‪createStorageFileIdentifier($fileName);
434 
435  if (!$legacy) {
436  $this->slot->allowInvocation(
438  $fileIdentifier
439  );
440  $this->slot->allowInvocation(
442  $fileIdentifier,
443  $this->slot->getContentSignature($content)
444  );
445  }
446 
447  $this->storageFolder->createFile($fileName)->setContents($content);
448  }
449 
455  private function ‪createReference(
456  string $fileIdentifier,
457  string $formIdentifier,
458  array $finisherOverrides = []
459  ) {
460  $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
461  $connection = $connectionPool->getConnectionForTable('tt_content');
462 
463  ‪$flexForm = [
464  'data' => [
465  'sDEF' => [
466  'lDEF' => [
467  'settings.persistenceIdentifier' => [
468  'vDEF' => $fileIdentifier,
469  ],
470  'settings.overrideFinishers' => [
471  'vDEF' => empty($finisherOverrides) ? '0' : '1',
472  ],
473  ]
474  ]
475  ]
476  ];
477 
478  $sheetIdentifiers = $this->‪createFinisherOverridesSheetIdentifiers(
479  $fileIdentifier,
480  $formIdentifier,
481  $finisherOverrides
482  );
483  foreach ($finisherOverrides as $finisherIdentifier => $finisherValue) {
484  $sheetIdentifier = $sheetIdentifiers[$finisherIdentifier];
485  $propertyName = sprintf(
486  'settings.finishers.%s.value',
487  $finisherIdentifier
488  );
489  ‪$flexForm['data'][$sheetIdentifier]['lDEF'] = [
490  $propertyName => [
491  'vDEF' => $finisherValue
492  ],
493  ];
494  }
495 
496  $values = [
497  'pid' => 1,
498  'header' => sprintf(
499  'Form Content Element for "%s"',
500  $formIdentifier
501  ),
502  'CType' => 'form_formframework',
503  'pi_flexform' => $this->flexForm
504  ->flexArray2Xml(‪$flexForm, true)
505  ];
506 
507  $connection->insert('tt_content', $values);
508  $id = $connection->lastInsertId('tt_content');
509  $this->referenceIndex->updateRefIndexTable('tt_content', $id);
510  }
511 
515  private function ‪setUpAllowedExtensionPaths()
516  {
518  module.tx_form.settings.yamlConfigurations {
519  110 = EXT:test_resources/Configuration/Yaml/AllowedExtensionPaths.yaml
520  }
521  plugin.tx_form.settings.yamlConfigurations {
522  110 = EXT:test_resources/Configuration/Yaml/AllowedExtensionPaths.yaml
523  }
524  '));
525  }
526 
530  private function ‪retrieveAllFlexForms(): array
531  {
532  $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
533  $connection = $connectionPool->getConnectionForTable('tt_content');
534 
535  return array_map(
536  function (array $record) {
537  return GeneralUtility::xml2array($record['pi_flexform']);
538  },
539  $connection->select(['pi_flexform'], 'tt_content')
540  ->fetchAll(FetchMode::ASSOCIATIVE)
541  );
542  }
543 
551  string $fileIdentifier,
552  string $formIdentifier,
553  array $finisherOverrides
554  ): array {
555  $sheetIdentifiers = [];
556  foreach (array_keys($finisherOverrides) as $finisherIdentifier) {
557  $sheetIdentifiers[$finisherIdentifier] = md5(
558  $fileIdentifier
559  . 'standard'
560  . $formIdentifier
561  . $finisherIdentifier
562  );
563  }
564  return $sheetIdentifiers;
565  }
566 
571  private function ‪createStorageFileIdentifier(string $fileName): string
572  {
573  return $this->storageFolder->getCombinedIdentifier() . $fileName;
574  }
575 
580  private function ‪createExtensionFileIdentifier(string $fileName): string
581  {
582  return 'EXT:test_resources/Configuration/Form/' . $fileName;
583  }
584 }
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsRequiredHavingOutdatedStorageReferences
‪updateIsRequiredHavingOutdatedStorageReferences()
Definition: FormFileExtensionUpdateTest.php:160
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\performUpdateSucceedsHavingOutdatedExtensionReferencesWithFinisherOverrides
‪performUpdateSucceedsHavingOutdatedExtensionReferencesWithFinisherOverrides()
Definition: FormFileExtensionUpdateTest.php:384
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsNotRequiredHavingUpdatedExtensionReferences
‪updateIsNotRequiredHavingUpdatedExtensionReferences()
Definition: FormFileExtensionUpdateTest.php:204
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\createStorageFileIdentifier
‪string createStorageFileIdentifier(string $fileName)
Definition: FormFileExtensionUpdateTest.php:564
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsNotRequiredHavingUpdatedStorageReferences
‪updateIsNotRequiredHavingUpdatedStorageReferences()
Definition: FormFileExtensionUpdateTest.php:129
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\retrieveAllFlexForms
‪array retrieveAllFlexForms()
Definition: FormFileExtensionUpdateTest.php:523
‪TYPO3\CMS\Core\Resource\Folder\delete
‪bool delete($deleteRecursively=true)
Definition: Folder.php:339
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\addTypoScriptSetup
‪static addTypoScriptSetup($content)
Definition: ExtensionManagementUtility.php:1425
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsNotRequiredHavingUpdatedFormDefinitions
‪updateIsNotRequiredHavingUpdatedFormDefinitions()
Definition: FormFileExtensionUpdateTest.php:111
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$testExtensionsToLoad
‪string[] $testExtensionsToLoad
Definition: FormFileExtensionUpdateTest.php:43
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsRequiredHavingOutdatedExtensionReferences
‪updateIsRequiredHavingOutdatedExtensionReferences()
Definition: FormFileExtensionUpdateTest.php:217
‪TYPO3\CMS\Core\Database\ReferenceIndex
Definition: ReferenceIndex.php:50
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\tearDown
‪tearDown()
Definition: FormFileExtensionUpdateTest.php:90
‪TYPO3\CMS\Core\Resource\ResourceStorage\getFolder
‪Folder InaccessibleFolder getFolder($identifier, $returnInaccessibleFolderObject=false)
Definition: ResourceStorage.php:2462
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$subject
‪FormFileExtensionUpdate $subject
Definition: FormFileExtensionUpdateTest.php:49
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\setUp
‪setUp()
Definition: FormFileExtensionUpdateTest.php:67
‪TYPO3\CMS\Form\Slot\FilePersistenceSlot\COMMAND_FILE_SET_CONTENTS
‪const COMMAND_FILE_SET_CONTENTS
Definition: FilePersistenceSlot.php:35
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\invokeCheckForUpdate
‪bool invokeCheckForUpdate()
Definition: FormFileExtensionUpdateTest.php:103
‪TYPO3\CMS\Core\Resource\ResourceFactory\getInstance
‪static ResourceFactory getInstance()
Definition: ResourceFactory.php:39
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$flexForm
‪FlexFormTools $flexForm
Definition: FormFileExtensionUpdateTest.php:57
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsNotRequiredHavingOutdatedExtensionFormDefinitions
‪updateIsNotRequiredHavingOutdatedExtensionFormDefinitions()
Definition: FormFileExtensionUpdateTest.php:195
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsRequiredHavingOutdatedExtensionReferencesWithFinisherOverrides
‪updateIsRequiredHavingOutdatedExtensionReferencesWithFinisherOverrides()
Definition: FormFileExtensionUpdateTest.php:230
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$storageFolder
‪Folder $storageFolder
Definition: FormFileExtensionUpdateTest.php:65
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$slot
‪FilePersistenceSlot $slot
Definition: FormFileExtensionUpdateTest.php:53
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsRequiredHavingOutdatedStorageReferencesWithFinisherOverrides
‪updateIsRequiredHavingOutdatedStorageReferencesWithFinisherOverrides()
Definition: FormFileExtensionUpdateTest.php:175
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\createExtensionFileIdentifier
‪string createExtensionFileIdentifier(string $fileName)
Definition: FormFileExtensionUpdateTest.php:573
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\performUpdateSucceedsHavingOutdatedStorageFormDefinitions
‪performUpdateSucceedsHavingOutdatedStorageFormDefinitions()
Definition: FormFileExtensionUpdateTest.php:257
‪TYPO3\CMS\Form\Slot\FilePersistenceSlot\COMMAND_FILE_CREATE
‪const COMMAND_FILE_CREATE
Definition: FilePersistenceSlot.php:31
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility
Definition: ExtensionManagementUtility.php:36
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\performUpdateSucceedsHavingOutdatedStorageReferencesWithFinisherOverrides
‪performUpdateSucceedsHavingOutdatedStorageReferencesWithFinisherOverrides()
Definition: FormFileExtensionUpdateTest.php:302
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsRequiredHavingOutdatedStorageFormDefinitions
‪updateIsRequiredHavingOutdatedStorageFormDefinitions()
Definition: FormFileExtensionUpdateTest.php:120
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\createFinisherOverridesSheetIdentifiers
‪array createFinisherOverridesSheetIdentifiers(string $fileIdentifier, string $formIdentifier, array $finisherOverrides)
Definition: FormFileExtensionUpdateTest.php:543
‪TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools
Definition: FlexFormTools.php:36
‪TYPO3\CMS\Core\Resource\Folder
Definition: Folder.php:34
‪TYPO3\CMS\Core\Resource\ResourceFactory
Definition: ResourceFactory.php:33
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\performUpdateSucceedsHavingOutdatedExtensionReferences
‪performUpdateSucceedsHavingOutdatedExtensionReferences()
Definition: FormFileExtensionUpdateTest.php:355
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\createStorageFormDefinition
‪createStorageFormDefinition(string $name, bool $legacy=false)
Definition: FormFileExtensionUpdateTest.php:415
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$coreExtensionsToLoad
‪string[] $coreExtensionsToLoad
Definition: FormFileExtensionUpdateTest.php:37
‪TYPO3\CMS\Form\Slot\FilePersistenceSlot
Definition: FilePersistenceSlot.php:29
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\$referenceIndex
‪ReferenceIndex $referenceIndex
Definition: FormFileExtensionUpdateTest.php:61
‪$output
‪$output
Definition: annotationChecker.php:113
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\performUpdateSucceedsHavingOutdatedStorageReferences
‪performUpdateSucceedsHavingOutdatedStorageReferences()
Definition: FormFileExtensionUpdateTest.php:271
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static string getUniqueId($prefix='')
Definition: StringUtility.php:91
‪TYPO3\CMS\Core\Resource\ResourceFactory\getStorageObject
‪ResourceStorage getStorageObject($uid, array $recordData=[], &$fileIdentifier=null)
Definition: ResourceFactory.php:131
‪TYPO3\CMS\Core\Core\Bootstrap
Definition: Bootstrap.php:50
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\createReference
‪createReference(string $fileIdentifier, string $formIdentifier, array $finisherOverrides=[])
Definition: FormFileExtensionUpdateTest.php:448
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\updateIsNotRequiredHavingUpdatedStorageReferencesWithFinisherOverrides
‪updateIsNotRequiredHavingUpdatedStorageReferencesWithFinisherOverrides()
Definition: FormFileExtensionUpdateTest.php:142
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest
Definition: FormFileExtensionUpdateTest.php:34
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\setUpAllowedExtensionPaths
‪setUpAllowedExtensionPaths()
Definition: FormFileExtensionUpdateTest.php:508
‪TYPO3\CMS\Form\Tests\Functional\Hooks
Definition: FormFileExtensionUpdateTest.php:3
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:44
‪TYPO3\CMS\Form\Hooks\FormFileExtensionUpdate
Definition: FormFileExtensionUpdate.php:44
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:45
‪TYPO3\CMS\Form\Tests\Functional\Hooks\FormFileExtensionUpdateTest\invokePerformUpdate
‪invokePerformUpdate()
Definition: FormFileExtensionUpdateTest.php:249
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:21
‪TYPO3\CMS\Core\Core\Bootstrap\initializeLanguageObject
‪static Bootstrap null initializeLanguageObject()
Definition: Bootstrap.php:986