‪TYPO3CMS  ‪main
PagesAndTtContentWithImagesInEmptyDatabaseTest.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 
24 
26 {
31  {
32  $subject = GeneralUtility::makeInstance(Import::class);
33  $subject->setPid(0);
34 
35  if (!$this->‪isCaseSensitiveFilesystem()) {
36  self::markTestSkipped('Test not available on case insensitive filesystems.');
37  }
38 
39  $subject->loadFile(
40  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image.xml',
41  true
42  );
43  $subject->importData();
44 
45  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg';
46 
47  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImagesOnCaseSensitiveFilesystems.csv');
48 
49  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg');
50  }
51 
56  {
57  $subject = GeneralUtility::makeInstance(Import::class);
58  $subject->setPid(0);
59 
60  if ($this->‪isCaseSensitiveFilesystem()) {
61  self::markTestSkipped('Test not available on case sensitive filesystems.');
62  }
63 
64  $subject->loadFile(
65  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image.xml',
66  true
67  );
68  $subject->importData();
69 
70  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg';
71 
72  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImagesOnCaseInsensitiveFilesystems.csv');
73 
74  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg');
75  }
76 
81  {
82  $subject = GeneralUtility::makeInstance(Import::class);
83  $subject->setPid(0);
84 
85  if (!$this->‪isCaseSensitiveFilesystem()) {
86  self::markTestSkipped('Test not available on case insensitive filesystems.');
87  }
88 
89  $subject->loadFile(
90  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-without-storage.xml',
91  true
92  );
93  $subject->importData();
94 
95  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg';
96 
97  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImagesButWithoutStorageOnCaseSensitiveFilesystems.csv');
98 
99  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg');
100  }
101 
106  {
107  $subject = GeneralUtility::makeInstance(Import::class);
108  $subject->setPid(0);
109 
110  if ($this->‪isCaseSensitiveFilesystem()) {
111  self::markTestSkipped('Test not available on case sensitive filesystems.');
112  }
113 
114  $subject->loadFile(
115  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-without-storage.xml',
116  true
117  );
118  $subject->importData();
119 
120  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg';
121 
122  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImagesButWithoutStorageOnCaseInsensitiveFilesystems.csv');
123 
124  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg');
125  }
126 
131  {
132  $subject = GeneralUtility::makeInstance(Import::class);
133  $subject->setPid(0);
134 
135  $subject->loadFile(
136  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-with-spaces-in-path.xml',
137  true
138  );
139  $subject->importData();
140 
141  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/folder_with_spaces/typo3_image2.jpg';
142  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/folder_with_spaces/typo3_image3.jpg';
143 
144  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImagesWithSpacesInPath.csv');
145 
146  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/folder_with_spaces/typo3_image2.jpg');
147  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image3.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/folder_with_spaces/typo3_image3.jpg');
148  }
149 
154  {
155  $subject = GeneralUtility::makeInstance(Import::class);
156  $subject->setPid(0);
157 
158  $subject->loadFile(
159  // Files are parallel to the fixture .xml file in a folder - impexp tests for /../ not allowed in path, so we set an absolute path here
160  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-but-not-included.xml',
161  true
162  );
163  $subject->importData();
164 
165  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg';
166 
167  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImagesButNotIncluded.csv');
168 
169  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg');
170  }
171 
176  {
177  $subject = GeneralUtility::makeInstance(Import::class);
178  $subject->setPid(0);
179 
180  try {
181  $subject->loadFile(
182  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-with-forced-uids.xml',
183  true
184  );
185  $subject->setForceAllUids(true);
186  $subject->importData();
187  } catch (\‪Exception $e) {
188  }
189 
190  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg';
191 
192  $this->assertCSVDataSet(__DIR__ . '/../Fixtures/DatabaseAssertions/importPagesAndRelatedTtContentWithImageWithForcedUids.csv');
193 
194  self::assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg', ‪Environment::getPublicPath() . '/fileadmin/user_upload/typo3_image2.jpg');
195 
196  $expectedErrors = [
197  'Forcing uids of sys_file records is not supported! They will be imported as new records!',
198  ];
199  ‪$errors = $subject->getErrorLog();
200  self::assertSame($expectedErrors, ‪$errors);
201  }
202 
207  {
208  ‪GeneralUtility::mkdir(‪Environment::getPublicPath() . '/fileadmin_invalid_path');
209 
210  $subject = GeneralUtility::makeInstance(Import::class);
211  $subject->setPid(0);
212  $subject->loadFile(
213  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-with-invalid-storage.xml',
214  true
215  );
216  $subject->importData();
217 
218  self::assertFileEquals(
219  __DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image2.jpg',
220  ‪Environment::getPublicPath() . '/fileadmin_invalid_path/user_upload/typo3_image2.jpg'
221  );
222  }
223 
228  {
229  $subject = GeneralUtility::makeInstance(Import::class);
230  $subject->setPid(0);
231  try {
232  $subject->loadFile(
233  'EXT:impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-missing-image.xml',
234  true
235  );
236  $subject->importData();
237  } catch (\‪Exception $e) {
238  }
239 
240  $expectedErrors = [
241  'Error: No file found for ID 4a705ca3ef43b53dc00de861ba2c86af',
242  'Error: sys_file_reference record "1" with relation to sys_file record "1", which is not part of the import data, was not imported.',
243  'Lost relation: sys_file_reference:1',
244  'Lost relation: sys_file:1',
245  ];
246  ‪$errors = $subject->getErrorLog();
247  self::assertSame($expectedErrors, ‪$errors);
248  }
249 }
‪TYPO3\CMS\Core\Exception
Definition: Exception.php:22
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesButWithoutStorageOnCaseSensitiveFilesystems
‪importPagesAndRelatedTtContentWithImagesButWithoutStorageOnCaseSensitiveFilesystems()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:80
‪TYPO3\CMS\Core\Core\Environment\getPublicPath
‪static getPublicPath()
Definition: Environment.php:187
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithMissingImageRemovesSysFileReferenceToo
‪importPagesAndRelatedTtContentWithMissingImageRemovesSysFileReferenceToo()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:227
‪TYPO3\CMS\Impexp\Tests\Functional\Import
Definition: ImagesWithStoragesTest.php:18
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesAndNewStorage
‪importPagesAndRelatedTtContentWithImagesAndNewStorage()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:206
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesWithSpacesInPath
‪importPagesAndRelatedTtContentWithImagesWithSpacesInPath()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:130
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:26
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesButNotIncluded
‪importPagesAndRelatedTtContentWithImagesButNotIncluded()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:153
‪TYPO3\CMS\Impexp\Import
Definition: Import.php:50
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesOnCaseInsensitiveFilesystems
‪importPagesAndRelatedTtContentWithImagesOnCaseInsensitiveFilesystems()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:55
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImageWithForcedUids
‪importPagesAndRelatedTtContentWithImageWithForcedUids()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:175
‪$errors
‪$errors
Definition: annotationChecker.php:121
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesOnCaseSensitiveFilesystems
‪importPagesAndRelatedTtContentWithImagesOnCaseSensitiveFilesystems()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:30
‪TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase
Definition: AbstractImportExportTestCase.php:33
‪TYPO3\CMS\Impexp\Tests\Functional\Import\PagesAndTtContentWithImagesInEmptyDatabaseTest\importPagesAndRelatedTtContentWithImagesButWithoutStorageOnCaseInsensitiveFilesystems
‪importPagesAndRelatedTtContentWithImagesButWithoutStorageOnCaseInsensitiveFilesystems()
Definition: PagesAndTtContentWithImagesInEmptyDatabaseTest.php:105
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:41
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:51
‪TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase\isCaseSensitiveFilesystem
‪isCaseSensitiveFilesystem()
Definition: AbstractImportExportTestCase.php:74
‪TYPO3\CMS\Core\Utility\GeneralUtility\mkdir
‪static bool mkdir($newFolder)
Definition: GeneralUtility.php:1621