‪TYPO3CMS  ‪main
SilentConfigurationUpgradeServiceTest.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;
25 use TYPO3\CMS\Core\Configuration\ConfigurationManager;
30 use TYPO3\CMS\Fluid\Core\Cache\FluidTemplateCache;
33 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
34 
35 final class ‪SilentConfigurationUpgradeServiceTest extends FunctionalTestCase
36 {
37  protected array ‪$coreExtensionsToLoad = ['install'];
38 
39  protected bool ‪$initializeDatabase = false;
40 
42 
43  protected function ‪setUp(): void
44  {
45  parent::setUp();
46  $this->localConfigurationBackup = $this->get(ConfigurationManager::class)->getLocalConfiguration();
47  }
48 
49  protected function ‪tearDown(): void
50  {
51  $this->get(ConfigurationManager::class)->writeLocalConfiguration($this->localConfigurationBackup);
52  parent::tearDown();
53  }
54 
55  #[Test]
56  public function ‪defaultCreatedConfigurationIsClean(): void
57  {
58  $subject = $this->get(SilentConfigurationUpgradeService::class);
59  $subject->execute();
60  }
61 
62  #[Test]
64  {
65  $testConfig = [
66  'BE' => [
67  'spriteIconGenerator_handler' => 'shouldBeRemoved',
68  ],
69  ];
70  $configurationManager = $this->get(ConfigurationManager::class);
71  $configurationManager->updateLocalConfiguration($testConfig);
72 
73  $subject = $this->get(SilentConfigurationUpgradeService::class);
74  $exceptionCaught = false;
75  try {
76  $subject->execute();
78  $exceptionCaught = true;
79  } finally {
80  self::assertTrue($exceptionCaught);
81  $settings = $configurationManager->getLocalConfiguration();
82  self::assertArrayNotHasKey('spriteIconGenerator_handler', $settings['BE']);
83  }
84  }
85 
86  #[Test]
88  {
89  $testConfig = [
90  'BE' => [
91  'spriteIconGenerator_handlerKeep' => 'shouldBeKept',
92  ],
93  ];
94  $configurationManager = $this->get(ConfigurationManager::class);
95  $configurationManager->updateLocalConfiguration($testConfig);
96 
97  $subject = $this->get(SilentConfigurationUpgradeService::class);
98  $exceptionCaught = false;
99  try {
100  $subject->execute();
102  $exceptionCaught = true;
103  } finally {
104  self::assertFalse($exceptionCaught);
105  self::assertSame('shouldBeKept', $configurationManager->getLocalConfigurationValueByPath('BE/spriteIconGenerator_handlerKeep'));
106  }
107  }
108 
109  #[Test]
111  {
112  $testConfig = [
113  'SYS' => [
114  'encryptionKey' => 'EnCrYpTiOnKeY',
115  ],
116  ];
117  $configurationManager = $this->get(ConfigurationManager::class);
118  $configurationManager->updateLocalConfiguration($testConfig);
119 
120  $subject = $this->get(SilentConfigurationUpgradeService::class);
121  $exceptionCaught = false;
122  try {
123  $subject->execute();
125  $exceptionCaught = true;
126  } finally {
127  self::assertFalse($exceptionCaught);
128  self::assertSame('EnCrYpTiOnKeY', $configurationManager->getLocalConfigurationValueByPath('SYS/encryptionKey'));
129  }
130  }
131 
132  #[Test]
133  public function ‪generateEncryptionKeyIfNotExists(): void
134  {
135  $configurationManager = $this->get(ConfigurationManager::class);
136  $configurationManager->removeLocalConfigurationKeysByPath(['SYS/encryptionKey']);
137 
138  $subject = $this->get(SilentConfigurationUpgradeService::class);
139  $exceptionCaught = false;
140  try {
141  $subject->execute();
143  $exceptionCaught = true;
144  } finally {
145  self::assertTrue($exceptionCaught);
146  self::assertIsString($configurationManager->getLocalConfigurationValueByPath('SYS/encryptionKey'));
147  self::assertNotEmpty($configurationManager->getLocalConfigurationValueByPath('SYS/encryptionKey'));
148  }
149  }
150 
151  public static function ‪transferHttpSettingsIfSetDataProvider(): array
152  {
153  return [
154  'No changes overridden in Local Configuration' => [
155  ['timeout' => 100],
156  ['HTTP/timeout' => 100],
157  false,
158  ],
159  'Old and unused settings removed' => [
160  ['adapter' => 'curl'],
161  [],
162  true,
163  ],
164  'Old and used settings changed' => [
165  ['protocol_version' => '1.1'],
166  ['HTTP/version' => '1.1'],
167  true,
168  ],
169 
171  'Redirects moved to default' => [
172  ['follow_redirects' => true],
173  [],
174  true,
175  ],
176  'Redirects moved #1' => [
177  ['follow_redirects' => true, 'max_redirects' => 200, 'strict_redirects' => false],
178  ['HTTP/allow_redirects' => ['max' => 200]],
179  true,
180  ],
181  'Redirects moved #2' => [
182  ['follow_redirects' => false, 'max_redirects' => 200, 'strict_redirects' => false],
183  ['HTTP/allow_redirects' => false],
184  true,
185  ],
186  'Redirects moved #3' => [
187  ['follow_redirects' => true, 'max_redirects' => 400, 'strict_redirects' => 1],
188  ['HTTP/allow_redirects' => ['max' => 400, 'strict' => true]],
189  true,
190  ],
191 
193  'Proxy host set' => [
194  ['proxy_host' => 'vpn.myproxy.com'],
195  ['HTTP/proxy' => 'http://vpn.myproxy.com'],
196  true,
197  ],
198  'Proxy host set + port' => [
199  ['proxy_host' => 'vpn.myproxy.com', 'proxy_port' => 8080],
200  ['HTTP/proxy' => 'http://vpn.myproxy.com:8080'],
201  true,
202  ],
203  'Proxy host set + port + verification' => [
204  ['proxy_host' => 'vpn.myproxy.com', 'proxy_port' => 8080, 'proxy_auth_scheme' => 'basic', 'proxy_user' => 'myuser', 'proxy_password' => 'mysecret'],
205  ['HTTP/proxy' => 'http://myuser:mysecret@vpn.myproxy.com:8080'],
206  true,
207  ],
208 
210  'Only ssl_capath set, invalid migration' => [
211  ['ssl_capath' => '/foo/bar/'],
212  [],
213  true,
214  ],
215  'Verification activated, but only ssl_capath set, using default' => [
216  ['ssl_verify_peer' => 1, 'ssl_capath' => '/foo/bar/'],
217  [],
218  true,
219  ],
220  'Verification activated, with ssl_capath and ssl_cafile set' => [
221  ['ssl_verify_peer' => 1, 'ssl_capath' => '/foo/bar/', 'ssl_cafile' => 'supersecret.crt'],
222  ['HTTP/verify' => '/foo/bar/supersecret.crt'],
223  true,
224  ],
225 
227  'SSL key certification' => [
228  ['ssl_local_cert' => '/foo/bar/supersecret.key'],
229  ['HTTP/ssl_key' => '/foo/bar/supersecret.key'],
230  true,
231  ],
232  'SSL key certification + passphrase' => [
233  ['ssl_local_cert' => '/foo/bar/supersecret.key', 'ssl_passphrase' => 'donotcopypasteme'],
234  ['HTTP/ssl_key' => ['/foo/bar/supersecret.key', 'donotcopypasteme']],
235  true,
236  ],
237  'SSL key passphrase only - no migration' => [
238  ['ssl_passphrase' => 'donotcopypasteme'],
239  [],
240  true,
241  ],
242  ];
243  }
244 
245  #[DataProvider('transferHttpSettingsIfSetDataProvider')]
246  #[Test]
247  public function ‪transferHttpSettingsIfSet(array $currentLocalConfiguration, array $newSettings, bool $localConfigurationNeedsUpdate): void
248  {
249  $testConfig = [
250  'HTTP' => $currentLocalConfiguration,
251  ];
252  $configurationManager = $this->get(ConfigurationManager::class);
253  $configurationManager->updateLocalConfiguration($testConfig);
254 
255  $subject = $this->get(SilentConfigurationUpgradeService::class);
256  $exceptionCaught = false;
257  try {
258  $subject->execute();
260  $exceptionCaught = true;
261  } finally {
262  self::assertSame($localConfigurationNeedsUpdate, $exceptionCaught);
263  foreach ($newSettings as $newSettingKey => $newSettingValue) {
264  self::assertSame($newSettingValue, $configurationManager->getLocalConfigurationValueByPath($newSettingKey));
265  }
266  }
267  }
268 
269  #[Test]
271  {
272  $testConfig = [
273  'GFX' => [
274  'processor_enabled' => false,
275  'imagefile_ext' => 'gif,jpg,png',
276  'thumbnails' => 0,
277  ],
278  ];
279  $configurationManager = $this->get(ConfigurationManager::class);
280  $configurationManager->updateLocalConfiguration($testConfig);
281 
282  $subject = $this->get(SilentConfigurationUpgradeService::class);
283  $exceptionCaught = false;
284  try {
285  $subject->execute();
287  $exceptionCaught = true;
288  } finally {
289  self::assertTrue($exceptionCaught);
290  self::assertSame('gif,jpg,jpeg,png', $configurationManager->getLocalConfigurationValueByPath('GFX/imagefile_ext'));
291  }
292  }
293 
294  #[Test]
296  {
297  $testConfig = [
298  'GFX' => [
299  'processor_enabled' => true,
300  'imagefile_ext' => 'gif,jpg,jpeg,png',
301  ],
302  ];
303  $configurationManager = $this->get(ConfigurationManager::class);
304  $configurationManager->updateLocalConfiguration($testConfig);
305 
306  $subject = $this->get(SilentConfigurationUpgradeService::class);
307  $exceptionCaught = false;
308  try {
309  $subject->execute();
311  $exceptionCaught = true;
312  } finally {
313  self::assertFalse($exceptionCaught);
314  self::assertSame('gif,jpg,jpeg,png', $configurationManager->getLocalConfigurationValueByPath('GFX/imagefile_ext'));
315  self::assertTrue($configurationManager->getLocalConfigurationValueByPath('GFX/processor_enabled'));
316  }
317  }
318 
319  #[Test]
320  public function ‪doNotSetImageMagickDetailSettings(): void
321  {
322  $testConfig = [
323  'GFX' => [
324  'processor' => '',
325  'processor_effects' => 0,
326  ],
327  ];
328  $configurationManager = $this->get(ConfigurationManager::class);
329  $configurationManager->updateLocalConfiguration($testConfig);
330 
331  $subject = $this->get(SilentConfigurationUpgradeService::class);
332  $exceptionCaught = false;
333  try {
334  $subject->execute();
336  $exceptionCaught = true;
337  } finally {
338  self::assertFalse($exceptionCaught);
339  }
340  }
341 
342  public static function ‪migratesGraphicsProcessorEffectsDataProvider(): array
343  {
344  return [
345  'integer 1' => [
346  1,
347  true,
348  ],
349  'integer 0' => [
350  0,
351  false,
352  ],
353  'integer -1' => [
354  -1,
355  false,
356  ],
357  'string "1"' => [
358  '1',
359  true,
360  ],
361  'string "0"' => [
362  '0',
363  false,
364  ],
365  'string "-1"' => [
366  '-1',
367  false,
368  ],
369  ];
370  }
371 
372  #[DataProvider('migratesGraphicsProcessorEffectsDataProvider')]
373  #[Test]
374  public function ‪migratesGraphicsProcessorEffects(string|int $currentValue, bool $expectedMigratedValue): void
375  {
376  $testConfig = [
377  'GFX' => [
378  'processor' => 'GraphicsMagick',
379  'processor_effects' => $currentValue,
380  ],
381  ];
382  $configurationManager = $this->get(ConfigurationManager::class);
383  $configurationManager->updateLocalConfiguration($testConfig);
384 
385  $subject = $this->get(SilentConfigurationUpgradeService::class);
386  $exceptionCaught = false;
387  try {
388  $subject->execute();
390  $exceptionCaught = true;
391  } finally {
392  self::assertTrue($exceptionCaught);
393  self::assertSame($expectedMigratedValue, $configurationManager->getLocalConfigurationValueByPath('GFX/processor_effects'));
394  }
395  }
396 
397  public static function ‪removesDefaultColorspaceSettingsDataProvider(): array
398  {
399  return [
400  'ImageMagick' => [
401  'ImageMagick',
402  'sRGB',
403  ],
404  'GraphicsMagick' => [
405  'GraphicsMagick',
406  'RGB',
407  ],
408  ];
409  }
410 
411  #[DataProvider('removesDefaultColorspaceSettingsDataProvider')]
412  #[Test]
413  public function ‪removesDefaultColorspaceSettings(string $currentProcessor, string $currentColorspace)
414  {
415  $testConfig = [
416  'GFX' => [
417  'processor' => $currentProcessor,
418  'processor_colorspace' => $currentColorspace,
419  ],
420  ];
421 
422  $configurationManager = $this->get(ConfigurationManager::class);
423  $configurationManager->updateLocalConfiguration($testConfig);
424 
425  $subject = $this->get(SilentConfigurationUpgradeService::class);
426  $exceptionCaught = false;
427  try {
428  $subject->execute();
430  $exceptionCaught = true;
431  } finally {
432  self::assertTrue($exceptionCaught);
433  $settings = $configurationManager->getLocalConfiguration();
434  self::assertArrayNotHasKey('processor_colorspace', $settings['GFX']);
435  }
436  }
437 
438  #[Test]
439  public function ‪migrateCacheHashOptions(): void
440  {
441  $testConfig = [
442  'FE' => [
443  'cHashOnlyForParameters' => 'foo,bar',
444  'cHashExcludedParameters' => 'bar,foo',
445  'cHashRequiredParameters' => 'bar,baz',
446  'cHashExcludedParametersIfEmpty' => '*',
447  ],
448  ];
449  $configurationManager = $this->get(ConfigurationManager::class);
450  $configurationManager->updateLocalConfiguration($testConfig);
451 
452  $subject = $this->get(SilentConfigurationUpgradeService::class);
453  $exceptionCaught = false;
454  try {
455  $subject->execute();
457  $exceptionCaught = true;
458  } finally {
459  self::assertTrue($exceptionCaught);
460  $settings = $configurationManager->getLocalConfiguration();
461  self::assertArrayNotHasKey('cHashOnlyForParameters', $settings['FE']);
462  self::assertArrayNotHasKey('cHashExcludedParameters', $settings['FE']);
463  self::assertArrayNotHasKey('cHashRequiredParameters', $settings['FE']);
464  self::assertArrayNotHasKey('cHashExcludedParametersIfEmpty', $settings['FE']);
465  self::assertSame(['foo', 'bar'], $configurationManager->getLocalConfigurationValueByPath('FE/cacheHash/cachedParametersWhiteList'));
466  self::assertSame(['bar', 'foo'], $configurationManager->getLocalConfigurationValueByPath('FE/cacheHash/excludedParameters'));
467  self::assertSame(['bar', 'baz'], $configurationManager->getLocalConfigurationValueByPath('FE/cacheHash/requireCacheHashPresenceParameters'));
468  self::assertTrue($configurationManager->getLocalConfigurationValueByPath('FE/cacheHash/excludeAllEmptyParameters'));
469  }
470  }
471 
472  #[Test]
473  public function ‪migrateVersionNumberInFilename(): void
474  {
475  $testConfig = [
476  'FE' => [
477  'versionNumberInFilename' => 'embed',
478  ],
479  ];
480  $configurationManager = $this->get(ConfigurationManager::class);
481  $configurationManager->updateLocalConfiguration($testConfig);
482 
483  $subject = $this->get(SilentConfigurationUpgradeService::class);
484  $exceptionCaught = false;
485  try {
486  $subject->execute();
488  $exceptionCaught = true;
489  } finally {
490  self::assertTrue($exceptionCaught);
491  self::assertTrue($configurationManager->getLocalConfigurationValueByPath('FE/versionNumberInFilename'));
492  }
493  }
494 
495  #[Test]
497  {
498  $testConfig = [
499  'FE' => [
500  'versionNumberInFilename' => true,
501  ],
502  ];
503  $configurationManager = $this->get(ConfigurationManager::class);
504  $configurationManager->updateLocalConfiguration($testConfig);
505 
506  $subject = $this->get(SilentConfigurationUpgradeService::class);
507  $exceptionCaught = false;
508  try {
509  $subject->execute();
511  $exceptionCaught = true;
512  } finally {
513  self::assertFalse($exceptionCaught);
514  self::assertTrue($configurationManager->getLocalConfigurationValueByPath('FE/versionNumberInFilename'));
515  }
516  }
517 
518  #[Test]
520  {
521  $testConfig = [
522  'EXTENSIONS' => [
523  'saltedpasswords' => [
524  'thereIs' => 'something',
525  ],
526  ],
527  ];
528  $configurationManager = $this->get(ConfigurationManager::class);
529  $configurationManager->updateLocalConfiguration($testConfig);
530 
531  $subject = $this->get(SilentConfigurationUpgradeService::class);
532  $exceptionCaught = false;
533  try {
534  $subject->execute();
536  $exceptionCaught = true;
537  } finally {
538  self::assertTrue($exceptionCaught);
539  $settings = $configurationManager->getLocalConfiguration();
540  self::assertArrayNotHasKey('saltedpasswords', $settings['EXTENSIONS']);
541  }
542  }
543 
544  #[Test]
546  {
547  $argon2idBeMock = $this->createMock(Argon2idPasswordHash::class);
548  $argon2idBeMock->expects(self::atLeastOnce())->method('isAvailable')->willReturn(false);
549  GeneralUtility::addInstance(Argon2idPasswordHash::class, $argon2idBeMock);
550  $argonBeMock = $this->createMock(Argon2iPasswordHash::class);
551  $argonBeMock->expects(self::atLeastOnce())->method('isAvailable')->willReturn(false);
552  GeneralUtility::addInstance(Argon2iPasswordHash::class, $argonBeMock);
553  $argon2idFeMock = $this->createMock(Argon2idPasswordHash::class);
554  $argon2idFeMock->expects(self::atLeastOnce())->method('isAvailable')->willReturn(false);
555  GeneralUtility::addInstance(Argon2idPasswordHash::class, $argon2idFeMock);
556  $argonFeMock = $this->createMock(Argon2iPasswordHash::class);
557  $argonFeMock->expects(self::atLeastOnce())->method('isAvailable')->willReturn(false);
558  GeneralUtility::addInstance(Argon2iPasswordHash::class, $argonFeMock);
559 
560  $testConfig = [
561  'EXTENSIONS' => [
562  'saltedpasswords' => [
563  'some' => 'setting',
564  ],
565  ],
566  ];
567  $configurationManager = $this->get(ConfigurationManager::class);
568  $configurationManager->updateLocalConfiguration($testConfig);
569 
570  $subject = $this->get(SilentConfigurationUpgradeService::class);
571  $exceptionCaught = false;
572  try {
573  $subject->execute();
575  $exceptionCaught = true;
576  } finally {
577  self::assertTrue($exceptionCaught);
578  $settings = $configurationManager->getLocalConfiguration();
579  self::assertArrayNotHasKey('saltedpasswords', $settings['EXTENSIONS']);
580  self::assertSame(BcryptPasswordHash::class, $configurationManager->getLocalConfigurationValueByPath('BE/passwordHashing/className'));
581  self::assertSame(BcryptPasswordHash::class, $configurationManager->getLocalConfigurationValueByPath('FE/passwordHashing/className'));
582  }
583  }
584 
585  #[Test]
587  {
588  $testConfig = [
589  'SYS' => [
590  'caching' => [
591  'cacheConfigurations' => [
592  'cache_rootline' => [
593  'frontend' => VariableFrontend::class,
594  'backend' => Typo3DatabaseBackend::class,
595  'options' => [
596  'defaultLifetime' => 2592000,
597  ],
598  'groups' => ['pages'],
599  ],
600  'fluid_template' => [
601  'backend' => SimpleFileBackend::class,
602  'frontend' => FluidTemplateCache::class,
603  'groups' => ['system'],
604  ],
605  ],
606  ],
607  ],
608  ];
609  $configurationManager = $this->get(ConfigurationManager::class);
610  $configurationManager->removeLocalConfigurationKeysByPath(['SYS/caching/cacheConfigurations/rootline']);
611  $configurationManager->removeLocalConfigurationKeysByPath(['SYS/caching/cacheConfigurations/fluid_template']);
612  $configurationManager->updateLocalConfiguration($testConfig);
613 
614  $expectedRootlineConfiguration = [
615  'frontend' => VariableFrontend::class,
616  'backend' => Typo3DatabaseBackend::class,
617  'options' => [
618  'defaultLifetime' => 2592000,
619  ],
620  'groups' => ['pages'],
621  ];
622  $expectedFluidTemplateConfiguration = [
623  'backend' => SimpleFileBackend::class,
624  'frontend' => FluidTemplateCache::class,
625  'groups' => ['system'],
626  ];
627 
628  $subject = $this->get(SilentConfigurationUpgradeService::class);
629  $exceptionCaught = false;
630  try {
631  $subject->execute();
633  $exceptionCaught = true;
634  } finally {
635  self::assertTrue($exceptionCaught);
636  self::assertEquals(
637  $expectedRootlineConfiguration,
638  $configurationManager->getLocalConfigurationValueByPath('SYS/caching/cacheConfigurations/rootline')
639  );
640  self::assertEquals(
641  $expectedFluidTemplateConfiguration,
642  $configurationManager->getLocalConfigurationValueByPath('SYS/caching/cacheConfigurations/fluid_template')
643  );
644  }
645  }
646 }
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\$localConfigurationBackup
‪array $localConfigurationBackup
Definition: SilentConfigurationUpgradeServiceTest.php:41
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\$coreExtensionsToLoad
‪array $coreExtensionsToLoad
Definition: SilentConfigurationUpgradeServiceTest.php:37
‪TYPO3\CMS\Core\Crypto\PasswordHashing\BcryptPasswordHash
Definition: BcryptPasswordHash.php:32
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migratesGraphicsProcessorEffects
‪migratesGraphicsProcessorEffects(string|int $currentValue, bool $expectedMigratedValue)
Definition: SilentConfigurationUpgradeServiceTest.php:374
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\removeObsoleteLocalConfigurationSettingsKeepsUnaffectedSettings
‪removeObsoleteLocalConfigurationSettingsKeepsUnaffectedSettings()
Definition: SilentConfigurationUpgradeServiceTest.php:87
‪TYPO3\CMS\Install\Service\Exception\ConfigurationChangedException
Definition: ConfigurationChangedException.php:25
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\disableImageMagickDetailSettingsIfImageMagickIsDisabled
‪disableImageMagickDetailSettingsIfImageMagickIsDisabled()
Definition: SilentConfigurationUpgradeServiceTest.php:270
‪TYPO3\CMS\Install\Service\SilentConfigurationUpgradeService
Definition: SilentConfigurationUpgradeService.php:45
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest
Definition: SilentConfigurationUpgradeServiceTest.php:36
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migrateCacheHashOptions
‪migrateCacheHashOptions()
Definition: SilentConfigurationUpgradeServiceTest.php:439
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\removesDefaultColorspaceSettings
‪removesDefaultColorspaceSettings(string $currentProcessor, string $currentColorspace)
Definition: SilentConfigurationUpgradeServiceTest.php:413
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migrateVersionNumberInFilename
‪migrateVersionNumberInFilename()
Definition: SilentConfigurationUpgradeServiceTest.php:473
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\doNotSetImageMagickDetailSettings
‪doNotSetImageMagickDetailSettings()
Definition: SilentConfigurationUpgradeServiceTest.php:320
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\setUp
‪setUp()
Definition: SilentConfigurationUpgradeServiceTest.php:43
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migrateCachingFrameworkCachesMigratesData
‪migrateCachingFrameworkCachesMigratesData()
Definition: SilentConfigurationUpgradeServiceTest.php:586
‪TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend
Definition: Typo3DatabaseBackend.php:30
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\versionNumberInFilenameSetToTrueStaysUntouched
‪versionNumberInFilenameSetToTrueStaysUntouched()
Definition: SilentConfigurationUpgradeServiceTest.php:496
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\removeObsoleteLocalConfigurationSettingsIfThereAreOldSettings
‪removeObsoleteLocalConfigurationSettingsIfThereAreOldSettings()
Definition: SilentConfigurationUpgradeServiceTest.php:63
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\generateEncryptionKeyIfNotExists
‪generateEncryptionKeyIfNotExists()
Definition: SilentConfigurationUpgradeServiceTest.php:133
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\removesDefaultColorspaceSettingsDataProvider
‪static removesDefaultColorspaceSettingsDataProvider()
Definition: SilentConfigurationUpgradeServiceTest.php:397
‪TYPO3\CMS\Core\Cache\Frontend\VariableFrontend
Definition: VariableFrontend.php:25
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migrateSaltedPasswordsSettingsRemovesExtensionsConfigAndSetsNothingElseIfArgon2iIsAvailable
‪migrateSaltedPasswordsSettingsRemovesExtensionsConfigAndSetsNothingElseIfArgon2iIsAvailable()
Definition: SilentConfigurationUpgradeServiceTest.php:519
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migratesGraphicsProcessorEffectsDataProvider
‪static migratesGraphicsProcessorEffectsDataProvider()
Definition: SilentConfigurationUpgradeServiceTest.php:342
‪TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend
Definition: SimpleFileBackend.php:33
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\doNotDisableImageMagickDetailSettingsIfImageMagickIsEnabled
‪doNotDisableImageMagickDetailSettingsIfImageMagickIsEnabled()
Definition: SilentConfigurationUpgradeServiceTest.php:295
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\tearDown
‪tearDown()
Definition: SilentConfigurationUpgradeServiceTest.php:49
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\transferHttpSettingsIfSet
‪transferHttpSettingsIfSet(array $currentLocalConfiguration, array $newSettings, bool $localConfigurationNeedsUpdate)
Definition: SilentConfigurationUpgradeServiceTest.php:247
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\doNotGenerateEncryptionKeyIfExists
‪doNotGenerateEncryptionKeyIfExists()
Definition: SilentConfigurationUpgradeServiceTest.php:110
‪TYPO3\CMS\Install\Tests\Functional\Service
Definition: EnableFileServiceTest.php:18
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\defaultCreatedConfigurationIsClean
‪defaultCreatedConfigurationIsClean()
Definition: SilentConfigurationUpgradeServiceTest.php:56
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\transferHttpSettingsIfSetDataProvider
‪static transferHttpSettingsIfSetDataProvider()
Definition: SilentConfigurationUpgradeServiceTest.php:151
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Core\Crypto\PasswordHashing\Argon2idPasswordHash
Definition: Argon2idPasswordHash.php:31
‪TYPO3\CMS\Core\Crypto\PasswordHashing\Argon2iPasswordHash
Definition: Argon2iPasswordHash.php:31
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\migrateSaltedPasswordsSetsSpecificHashMethodIfArgon2idAndArgon2iIsNotAvailable
‪migrateSaltedPasswordsSetsSpecificHashMethodIfArgon2idAndArgon2iIsNotAvailable()
Definition: SilentConfigurationUpgradeServiceTest.php:545
‪TYPO3\CMS\Install\Tests\Functional\Service\SilentConfigurationUpgradeServiceTest\$initializeDatabase
‪bool $initializeDatabase
Definition: SilentConfigurationUpgradeServiceTest.php:39