‪TYPO3CMS  ‪main
SysRedirectRootPageMoveMigrationTest.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;
21 use PHPUnit\Framework\MockObject\MockObject;
26 use TYPO3\TestingFramework\Core\AccessibleObjectInterface;
27 use TYPO3\TestingFramework\Core\Functional\Framework\DataHandling\ActionService;
28 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
29 
30 final class ‪SysRedirectRootPageMoveMigrationTest extends FunctionalTestCase
31 {
33 
34  protected const ‪LANGUAGE_PRESETS = [
35  'EN' => ['id' => 0, 'title' => 'English', 'locale' => 'en_US.UTF8'],
36  ];
37 
38  protected array ‪$coreExtensionsToLoad = ['install', 'redirects'];
39 
40  protected ‪DatabaseRowsUpdateWizard&MockObject&AccessibleObjectInterface ‪$subject;
41 
42  protected ActionService ‪$actionService;
43 
44  protected function ‪setUp(): void
45  {
46  parent::setUp();
47  $this->actionService = GeneralUtility::makeInstance(ActionService::class);
48  // Register only WorkspaceNewPlaceholderRemovalMigration in the row updater wizard
49  $this->subject = $this->getAccessibleMock(DatabaseRowsUpdateWizard::class, null);
50  $this->subject->_set('rowUpdater', [SysRedirectRootPageMoveMigration::class]);
51  }
52 
53  protected function ‪tearDown(): void
54  {
55  // Cleanup written site configuration, to have no impact for test expecting no-site config.
56  ‪GeneralUtility::rmdir($this->instancePath . '/typo3conf/sites');
57  parent::tearDown();
58  }
59 
60  #[Test]
62  {
63  // Data set inspired by workspaces IRRE/CSV/Modify/DataSet/copyPage.csv
64  $this->importCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationSiteRootChildrenImport.csv');
65  $this->‪writeSiteConfiguration('site-one', $this->‪buildSiteConfiguration(1, '/site-one/'));
66  $this->‪writeSiteConfiguration('site-two', $this->‪buildSiteConfiguration(3, '/site-two/'));
67  $this->subject->executeUpdate();
68  $this->assertCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationSiteRootChildrenResult.csv');
69  }
70 
71  #[Test]
73  {
74  // Data set inspired by workspaces IRRE/CSV/Modify/DataSet/copyPage.csv
75  $this->importCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationSiteRootChildrenWithDisabledRedirectImport.csv');
76  $this->‪writeSiteConfiguration('site-one', $this->‪buildSiteConfiguration(1, '/site-one/'));
77  $this->‪writeSiteConfiguration('site-two', $this->‪buildSiteConfiguration(3, '/site-two/'));
78  $this->subject->executeUpdate();
79  $this->assertCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationSiteRootChildrenWithDisabledRedirectResult.csv');
80  }
81 
82  #[Test]
84  {
85  // Data set inspired by workspaces IRRE/CSV/Modify/DataSet/copyPage.csv
86  $this->importCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationSiteRootChildrenWithDeletedRedirectImport.csv');
87  $this->‪writeSiteConfiguration('site-one', $this->‪buildSiteConfiguration(1, '/site-one/'));
88  $this->‪writeSiteConfiguration('site-two', $this->‪buildSiteConfiguration(3, '/site-two/'));
89  $this->subject->executeUpdate();
90  $this->assertCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationSiteRootChildrenWithDeletedRedirectResult.csv');
91  }
92 
93  #[Test]
95  {
96  // Data set inspired by workspaces IRRE/CSV/Modify/DataSet/copyPage.csv
97  $this->importCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationNoSiteConfigImport.csv');
98  $this->subject->executeUpdate();
99  $this->assertCSVDataSet(__DIR__ . '/Fixtures/SysRedirectsRootPageMoveMigrationNoSiteConfigResult.csv');
100  }
101 }
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater
Definition: SysRedirectRootPageMoveMigrationTest.php:18
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\siteRootPageChildrenRecordsWithDisabledRedirectsAreMovedToSiteRootPage
‪siteRootPageChildrenRecordsWithDisabledRedirectsAreMovedToSiteRootPage()
Definition: SysRedirectRootPageMoveMigrationTest.php:71
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\$subject
‪DatabaseRowsUpdateWizard &MockObject &AccessibleObjectInterface $subject
Definition: SysRedirectRootPageMoveMigrationTest.php:39
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait
Definition: SiteBasedTestTrait.php:37
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\writeSiteConfiguration
‪writeSiteConfiguration(string $identifier, array $site=[], array $languages=[], array $errorHandling=[])
Definition: SiteBasedTestTrait.php:50
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\siteRootPageChildrenRecordsAreMovedToSiteRootPage
‪siteRootPageChildrenRecordsAreMovedToSiteRootPage()
Definition: SysRedirectRootPageMoveMigrationTest.php:60
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildSiteConfiguration
‪buildSiteConfiguration(int $rootPageId, string $base='')
Definition: SiteBasedTestTrait.php:88
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\tearDown
‪tearDown()
Definition: SysRedirectRootPageMoveMigrationTest.php:52
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\LANGUAGE_PRESETS
‪const LANGUAGE_PRESETS
Definition: SysRedirectRootPageMoveMigrationTest.php:33
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest
Definition: SysRedirectRootPageMoveMigrationTest.php:31
‪TYPO3\CMS\Install\Updates\DatabaseRowsUpdateWizard
Definition: DatabaseRowsUpdateWizard.php:48
‪TYPO3\CMS\Install\Updates\RowUpdater\SysRedirectRootPageMoveMigration
Definition: SysRedirectRootPageMoveMigration.php:31
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\$coreExtensionsToLoad
‪array $coreExtensionsToLoad
Definition: SysRedirectRootPageMoveMigrationTest.php:37
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\siteRootPageChildrenRecordsWithDeletedRedirectsAreMovedToSiteRootPage
‪siteRootPageChildrenRecordsWithDeletedRedirectsAreMovedToSiteRootPage()
Definition: SysRedirectRootPageMoveMigrationTest.php:82
‪TYPO3\CMS\Core\Utility\GeneralUtility\rmdir
‪static bool rmdir(string $path, bool $removeNonEmpty=false)
Definition: GeneralUtility.php:1702
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\setUp
‪setUp()
Definition: SysRedirectRootPageMoveMigrationTest.php:43
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\subPageRecordsAreMovedToPidZeroIfNoSiteConfig
‪subPageRecordsAreMovedToPidZeroIfNoSiteConfig()
Definition: SysRedirectRootPageMoveMigrationTest.php:93
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Install\Tests\Functional\Updates\RowUpdater\SysRedirectRootPageMoveMigrationTest\$actionService
‪ActionService $actionService
Definition: SysRedirectRootPageMoveMigrationTest.php:41