‪TYPO3CMS  10.4
IrreTutorialRecordsTest.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
22 
27 {
31  protected ‪$testExtensionsToLoad = [
32  'typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial',
33  ];
34 
38  public function ‪exportIrreRecords()
39  {
41  'pages' => [
42  'title',
43  'deleted',
44  'doktype',
45  'hidden',
46  'perms_everybody'
47  ],
48  'tt_content' => [
49  'CType',
50  'header',
51  'deleted',
52  'hidden',
53  't3ver_oid',
54  'tx_irretutorial_1nff_hotels',
55  'tx_irretutorial_1ncsv_hotels'
56  ],
57  'tx_irretutorial_1ncsv_hotel' => [
58  'cruser_id',
59  'sys_language_uid',
60  'l18n_parent',
61  'sorting',
62  'deleted',
63  'hidden',
64  'title',
65  'offers',
66  ],
67  'tx_irretutorial_1ncsv_offer' => [
68  'cruser_id',
69  'sys_language_uid',
70  'l18n_parent',
71  'sorting',
72  'deleted',
73  'hidden',
74  'title',
75  'prices',
76  ],
77  'tx_irretutorial_1ncsv_price' => [
78  'cruser_id',
79  'sys_language_uid',
80  'l18n_parent',
81  'sorting',
82  'deleted',
83  'hidden',
84  'title',
85  'price',
86  ],
87  'tx_irretutorial_1nff_hotel' => [
88  'cruser_id',
89  'sys_language_uid',
90  'l18n_parent',
91  'sorting',
92  'deleted',
93  'hidden',
94  'parentid',
95  'parenttable',
96  'parentidentifier',
97  'title',
98  'offers',
99  ],
100  'tx_irretutorial_1nff_offer' => [
101  'cruser_id',
102  'sys_language_uid',
103  'l18n_parent',
104  'sorting',
105  'deleted',
106  'hidden',
107  'parentid',
108  'parenttable',
109  'parentidentifier',
110  'title',
111  'prices',
112  ],
113  'tx_irretutorial_1nff_price' => [
114  'cruser_id',
115  'sys_language_uid',
116  'l18n_parent',
117  'sorting',
118  'deleted',
119  'hidden',
120  'parentid',
121  'parenttable',
122  'parentidentifier',
123  'title',
124  'price',
125  ],
126  'tx_irretutorial_mnasym_hotel' => [
127  'cruser_id',
128  'sys_language_uid',
129  'l18n_parent',
130  'sorting',
131  'deleted',
132  'hidden',
133  'title',
134  'offers',
135  ],
136  'tx_irretutorial_mnasym_hotel_offer_rel' => [
137  'cruser_id',
138  'sys_language_uid',
139  'l18n_parent',
140  'deleted',
141  'hidden',
142  'hotelid',
143  'offerid',
144  'hotelsort',
145  'offersort',
146  'prices',
147  ],
148  'tx_irretutorial_mnasym_offer' => [
149  'cruser_id',
150  'sys_language_uid',
151  'l18n_parent',
152  'sorting',
153  'deleted',
154  'hidden',
155  'title',
156  'hotels',
157  ],
158  'tx_irretutorial_mnasym_price' => [
159  'cruser_id',
160  'sys_language_uid',
161  'l18n_parent',
162  'sorting',
163  'deleted',
164  'hidden',
165  'parentid',
166  'title',
167  'price',
168  ],
169  'tx_irretutorial_mnattr_hotel' => [
170  'cruser_id',
171  'sys_language_uid',
172  'l18n_parent',
173  'sorting',
174  'deleted',
175  'hidden',
176  'title',
177  'offers',
178  ],
179  'tx_irretutorial_mnattr_hotel_offer_rel' => [
180  'cruser_id',
181  'sys_language_uid',
182  'l18n_parent',
183  'deleted',
184  'hidden',
185  'hotelid',
186  'offerid',
187  'hotelsort',
188  'offersort',
189  'quality',
190  'allincl',
191  ],
192  'tx_irretutorial_mnattr_offer' => [
193  'cruser_id',
194  'sys_language_uid',
195  'l18n_parent',
196  'sorting',
197  'deleted',
198  'hidden',
199  'title',
200  'hotels',
201  ],
202  'tx_irretutorial_mnmmasym_hotel' => [
203  'cruser_id',
204  'sys_language_uid',
205  'l18n_parent',
206  'sorting',
207  'deleted',
208  'hidden',
209  'title',
210  'offers',
211  ],
212  'tx_irretutorial_mnmmasym_hotel_offer_rel' => [
213  'uid_local',
214  'uid_foreign',
215  'tablenames',
216  'sorting',
217  'sorting_foreign',
218  'ident',
219  ],
220  'tx_irretutorial_mnmmasym_offer' => [
221  'cruser_id',
222  'sys_language_uid',
223  'l18n_parent',
224  'sorting',
225  'deleted',
226  'hidden',
227  'title',
228  'hotels',
229  'prices',
230  ],
231  'tx_irretutorial_mnmmasym_offer_price_rel' => [
232  'uid_local',
233  'uid_foreign',
234  'tablenames',
235  'sorting',
236  'sorting_foreign',
237  'ident',
238  ],
239  'tx_irretutorial_mnmmasym_price' => [
240  'cruser_id',
241  'sys_language_uid',
242  'l18n_parent',
243  'sorting',
244  'deleted',
245  'hidden',
246  'title',
247  'price',
248  'offers',
249  ],
250  'tx_irretutorial_mnsym_hotel' => [
251  'cruser_id',
252  'sys_language_uid',
253  'l18n_parent',
254  'sorting',
255  'deleted',
256  'hidden',
257  'title',
258  'branches',
259  ],
260  'tx_irretutorial_mnsym_hotel_rel' => [
261  'cruser_id',
262  'sys_language_uid',
263  'l18n_parent',
264  'deleted',
265  'hidden',
266  'hotelid',
267  'branchid',
268  'hotelsort',
269  'branchsort',
270  ]
271 
272  ];
273 
274  $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/irre_tutorial.xml');
275 
276  $subject = GeneralUtility::makeInstance(Export::class);
277  $subject->init();
278 
279  $subject->setRecordTypesIncludeFields(‪$recordTypesIncludeFields);
280 
281  // @todo: Do not rely on BackendUtility::getRecord() in the test case itself
282  $subject->export_addRecord('pages', $this->‪forceStringsOnRowValues(‪BackendUtility::getRecord('pages', 1)));
283  $this->‪addRecordsForPid($subject, 1, array_keys(‪$recordTypesIncludeFields));
284 
285  $this->‪setPageTree($subject, 1);
286 
287  // After adding ALL records we set relations:
288  for ($a = 0; $a < 10; $a++) {
289  $addR = $subject->export_addDBRelations($a);
290  if (empty($addR)) {
291  break;
292  }
293  }
294 
295  $subject->export_addFilesFromRelations();
296  $subject->export_addFilesFromSysFilesRecords();
297 
298  $out = $subject->compileMemoryToFileContent('xml');
299 
300  self::assertXmlStringEqualsXmlFile(
301  __DIR__ . '/../Fixtures/XmlExports/irre-records.xml',
302  $out
303  );
304  }
305 }
‪TYPO3\CMS\Impexp\Export\$recordTypesIncludeFields
‪array $recordTypesIncludeFields
Definition: Export.php:88
‪TYPO3\CMS\Impexp\Tests\Functional\Export\IrreTutorialRecordsTest\$testExtensionsToLoad
‪array $testExtensionsToLoad
Definition: IrreTutorialRecordsTest.php:30
‪TYPO3\CMS\Impexp\Tests\Functional\Export\IrreTutorialRecordsTest\exportIrreRecords
‪exportIrreRecords()
Definition: IrreTutorialRecordsTest.php:37
‪TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase\setPageTree
‪setPageTree(Export $export, $pidToStart, $depth=1)
Definition: AbstractImportExportTestCase.php:81
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:75
‪TYPO3\CMS\Backend\Utility\BackendUtility\getRecord
‪static array null getRecord($table, $uid, $fields=' *', $where='', $useDeleteClause=true)
Definition: BackendUtility.php:95
‪TYPO3\CMS\Impexp\Tests\Functional\Export
Definition: ExportControllerTest.php:18
‪TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase
Definition: AbstractImportExportTestCase.php:31
‪TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase\forceStringsOnRowValues
‪array forceStringsOnRowValues(array $row)
Definition: AbstractImportExportTestCase.php:157
‪TYPO3\CMS\Impexp\Tests\Functional\Export\IrreTutorialRecordsTest
Definition: IrreTutorialRecordsTest.php:27
‪TYPO3\CMS\Impexp\Export
Definition: Export.php:64
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase\addRecordsForPid
‪addRecordsForPid(Export $export, $pid, array $tables)
Definition: AbstractImportExportTestCase.php:111