[CLEANUP] Remove obsolete require_once from test files
[Packages/TYPO3.CMS.git] / typo3 / sysext / workspaces / Tests / Functional / DataHandling / IRRE / ForeignField / AbstractActionTestCase.php
1 <?php
2 namespace TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\IRRE\ForeignField;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * Functional test for the DataHandler
19 */
20 abstract class AbstractActionTestCase extends \TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase {
21
22 const VALUE_PageId = 89;
23 const VALUE_PageIdTarget = 90;
24 const VALUE_PageIdWebsite = 1;
25 const VALUE_ContentIdFirst = 297;
26 const VALUE_ContentIdLast = 298;
27 const VALUE_HotelIdFirst = 3;
28 const VALUE_HotelIdSecond = 4;
29 const VALUE_HotelIdThird = 5;
30 const VALUE_LanguageId = 1;
31 const VALUE_WorkspaceId = 1;
32
33 const TABLE_Page = 'pages';
34 const TABLE_Content = 'tt_content';
35 const TABLE_Hotel = 'tx_irretutorial_1nff_hotel';
36 const TABLE_Offer = 'tx_irretutorial_1nff_offer';
37
38 const FIELD_ContentHotel = 'tx_irretutorial_1nff_hotels';
39 const FIELD_HotelOffer = 'offers';
40
41 /**
42 * @var string
43 */
44 protected $scenarioDataSetDirectory = 'typo3/sysext/workspaces/Tests/Functional/DataHandling/IRRE/ForeignField/DataSet/';
45
46 /**
47 * @var array
48 */
49 protected $coreExtensionsToLoad = array(
50 'fluid',
51 'version',
52 'workspaces',
53 );
54
55 protected function setUp() {
56 parent::setUp();
57 $this->importScenarioDataSet('LiveDefaultPages');
58 $this->importScenarioDataSet('LiveDefaultElements');
59 $this->importScenarioDataSet('ReferenceIndex');
60
61 $this->setUpFrontendRootPage(
62 1,
63 array(
64 'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRenderer.ts',
65 'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/ExtbaseJsonRenderer.ts',
66 )
67 );
68 $this->backendUser->workspace = self::VALUE_WorkspaceId;
69 }
70
71 /**
72 * Parent content records
73 */
74
75 /**
76 * @see DataSet/Assertion/createParentContentRecord.csv
77 */
78 public function createParentContent() {
79 $newTableIds = $this->actionService->createNewRecord(self::TABLE_Content, self::VALUE_PageId, array('header' => 'Testing #1'));
80 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
81 }
82
83 /**
84 * @see DataSet/Assertion/modifyParentContentRecord.csv
85 */
86 public function modifyParentContent() {
87 $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdLast, array('header' => 'Testing #1'));
88 }
89
90 /**
91 * @see DataSet/Assertion/deleteParentContentRecord.csv
92 */
93 public function deleteParentContent() {
94 $this->actionService->deleteRecord(self::TABLE_Content, self::VALUE_ContentIdLast);
95 }
96
97 /**
98 * @see DataSet/Assertion/deleteParentContentRecordAndDiscardDeletedParentRecord.csv
99 */
100 public function deleteParentContentAndDiscardDeletedParent() {
101 $newTableIds = $this->actionService->deleteRecord(self::TABLE_Content, self::VALUE_ContentIdLast);
102 $versionedDeletedContentId = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
103 $this->actionService->clearWorkspaceRecord(self::TABLE_Content, $versionedDeletedContentId);
104 }
105
106 /**
107 * @see DataSet/Assertion/copyParentContentRecord.csv
108 */
109 public function copyParentContent() {
110 $newTableIds = $this->actionService->copyRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageId);
111 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
112 }
113
114 /**
115 * @see DataSet/copyParentContentToDifferentPage.csv
116 */
117 public function copyParentContentToDifferentPage() {
118 $newTableIds = $this->actionService->copyRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageIdTarget);
119 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
120 }
121
122 /**
123 * @see DataSet/localizeParentContentKeep.csv
124 */
125 public function localizeParentContentInKeepMode() {
126 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizationMode'] = 'keep';
127 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizeChildrenAtParentLocalization'] = FALSE;
128 $GLOBALS['TCA'][self::TABLE_Hotel]['columns'][self::FIELD_HotelOffer]['config']['behaviour']['localizeChildrenAtParentLocalization'] = FALSE;
129 $newTableIds = $this->actionService->localizeRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_LanguageId);
130 $this->recordIds['localizedContentId'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
131 }
132
133 /**
134 * @see DataSet/localizeParentContentWAllChildrenKeep.csv
135 */
136 public function localizeParentContentWithAllChildrenInKeepMode() {
137 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizationMode'] = 'keep';
138 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizeChildrenAtParentLocalization'] = TRUE;
139 $GLOBALS['TCA'][self::TABLE_Hotel]['columns'][self::FIELD_HotelOffer]['config']['behaviour']['localizeChildrenAtParentLocalization'] = TRUE;
140 $newTableIds = $this->actionService->localizeRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_LanguageId);
141 $this->recordIds['localizedContentId'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
142 }
143
144 /**
145 * @see DataSet/localizeParentContentSelect.csv
146 */
147 public function localizeParentContentInSelectMode() {
148 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizationMode'] = 'select';
149 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizeChildrenAtParentLocalization'] = FALSE;
150 $GLOBALS['TCA'][self::TABLE_Hotel]['columns'][self::FIELD_HotelOffer]['config']['behaviour']['localizeChildrenAtParentLocalization'] = FALSE;
151 $newTableIds = $this->actionService->localizeRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_LanguageId);
152 $this->recordIds['localizedContentId'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
153 }
154
155 /**
156 * @see DataSet/localizeParentContentWAllChildrenSelect.csv
157 */
158 public function localizeParentContentWithAllChildrenInSelectMode() {
159 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizationMode'] = 'select';
160 $GLOBALS['TCA'][self::TABLE_Content]['columns'][self::FIELD_ContentHotel]['config']['behaviour']['localizeChildrenAtParentLocalization'] = TRUE;
161 $GLOBALS['TCA'][self::TABLE_Hotel]['columns'][self::FIELD_HotelOffer]['config']['behaviour']['localizeChildrenAtParentLocalization'] = TRUE;
162 $newTableIds = $this->actionService->localizeRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_LanguageId);
163 $this->recordIds['localizedContentId'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
164 }
165
166 /**
167 * @see DataSet/Assertion/changeParentContentRecordSorting.csv
168 */
169 public function changeParentContentSorting() {
170 $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, -self::VALUE_ContentIdLast);
171 }
172
173 /**
174 * @see DataSet/Assertion/moveParentContentRecordToDifferentPage.csv
175 */
176 public function moveParentContentToDifferentPage() {
177 $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageIdTarget);
178 }
179
180 /**
181 * @see DataSet/Assertion/moveParentContentRecordToDifferentPageAndChangeSorting.csv
182 */
183 public function moveParentContentToDifferentPageAndChangeSorting() {
184 $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageIdTarget);
185 $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, -self::VALUE_ContentIdLast);
186 }
187
188 /**
189 * Page records
190 */
191
192 /**
193 * @see DataSet/Assertion/modifyPageRecord.csv
194 */
195 public function modifyPage() {
196 $this->actionService->modifyRecord(self::TABLE_Page, self::VALUE_PageId, array('title' => 'Testing #1'));
197 }
198
199 /**
200 * @see DataSet/Assertion/deletePageRecord.csv
201 */
202 public function deletePage() {
203 $this->actionService->deleteRecord(self::TABLE_Page, self::VALUE_PageId);
204 }
205
206 /**
207 * @see DataSet/Assertion/copyPageRecord.csv
208 */
209 public function copyPage() {
210 $newTableIds = $this->actionService->copyRecord(self::TABLE_Page, self::VALUE_PageId, self::VALUE_PageIdTarget);
211 $this->recordIds['newPageId'] = $newTableIds[self::TABLE_Page][self::VALUE_PageId];
212 $this->recordIds['newContentIdFirst'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdFirst];
213 $this->recordIds['newContentIdLast'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
214 }
215
216 /**
217 * @test
218 * @see DataSet/Assertion/copyPageWHotelBeforeParentContent.csv
219 */
220 public function copyPageWithHotelBeforeParentContent() {
221 // Ensure hotels get processed first
222 $GLOBALS['TCA'] = array_merge(
223 array(self::TABLE_Hotel => $GLOBALS['TCA'][self::TABLE_Hotel]),
224 $GLOBALS['TCA']
225 );
226
227 $newTableIds = $this->actionService->copyRecord(self::TABLE_Page, self::VALUE_PageId, self::VALUE_PageIdTarget);
228 $this->recordIds['newPageId'] = $newTableIds[self::TABLE_Page][self::VALUE_PageId];
229 $this->recordIds['newContentIdFirst'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdFirst];
230 $this->recordIds['newContentIdLast'] = $newTableIds[self::TABLE_Content][self::VALUE_ContentIdLast];
231 }
232
233 /**
234 * IRRE Child Records
235 */
236
237 /**
238 * @see DataSet/Assertion/createParentContentRecordWithHotelAndOfferChildRecords.csv
239 */
240 public function createParentContentWithHotelAndOfferChildren() {
241 $newTableIds = $this->actionService->createNewRecords(
242 self::VALUE_PageId,
243 array(
244 self::TABLE_Content => array('header' => 'Testing #1', self::FIELD_ContentHotel => '__nextUid'),
245 self::TABLE_Hotel => array('title' => 'Hotel #1', self::FIELD_HotelOffer => '__nextUid'),
246 self::TABLE_Offer => array('title' => 'Offer #1'),
247 )
248 );
249 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
250 }
251
252 /**
253 * @see DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecords.csv
254 */
255 public function createAndCopyParentContentWithHotelAndOfferChildren() {
256 $newTableIds = $this->actionService->createNewRecords(
257 self::VALUE_PageId,
258 array(
259 self::TABLE_Content => array('header' => 'Testing #1', self::FIELD_ContentHotel => '__nextUid'),
260 self::TABLE_Hotel => array('title' => 'Hotel #1', self::FIELD_HotelOffer => '__nextUid'),
261 self::TABLE_Offer => array('title' => 'Offer #1'),
262 )
263 );
264 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
265 $this->recordIds['newHotelId'] = $newTableIds[self::TABLE_Hotel][0];
266 $copiedTableIds = $this->actionService->copyRecord(self::TABLE_Content, $this->recordIds['newContentId'], self::VALUE_PageId);
267 $this->recordIds['copiedContentId'] = $copiedTableIds[self::TABLE_Content][$this->recordIds['newContentId']];
268 $this->recordIds['copiedHotelId'] = $copiedTableIds[self::TABLE_Hotel][$this->recordIds['newHotelId']];
269 }
270
271 /**
272 * @see DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecordsAndDiscardCopiedParentRecord.csv
273 */
274 public function createAndCopyParentContentWithHotelAndOfferChildrenAndDiscardCopiedParent() {
275 $newTableIds = $this->actionService->createNewRecords(
276 self::VALUE_PageId,
277 array(
278 self::TABLE_Content => array('header' => 'Testing #1', self::FIELD_ContentHotel => '__nextUid'),
279 self::TABLE_Hotel => array('title' => 'Hotel #1', self::FIELD_HotelOffer => '__nextUid'),
280 self::TABLE_Offer => array('title' => 'Offer #1'),
281 )
282 );
283 $this->recordIds['newContentId'] = $newTableIds['tt_content'][0];
284 $copiedTableIds = $this->actionService->copyRecord(self::TABLE_Content, $this->recordIds['newContentId'], self::VALUE_PageId);
285 $this->recordIds['copiedContentId'] = $copiedTableIds[self::TABLE_Content][$this->recordIds['newContentId']];
286 $versionedCopiedContentId = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Content, $this->recordIds['copiedContentId']);
287 $this->actionService->clearWorkspaceRecord(self::TABLE_Content, $versionedCopiedContentId);
288 }
289
290 /**
291 * @see DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv
292 */
293 public function createAndLocalizeParentContentWithHotelAndOfferChildren() {
294 $newTableIds = $this->actionService->createNewRecords(
295 self::VALUE_PageId,
296 array(
297 self::TABLE_Content => array('header' => 'Testing #1', self::FIELD_ContentHotel => '__nextUid'),
298 self::TABLE_Hotel => array('title' => 'Hotel #1', self::FIELD_HotelOffer => '__nextUid'),
299 self::TABLE_Offer => array('title' => 'Offer #1'),
300 )
301 );
302 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
303 $this->recordIds['newHotelId'] = $newTableIds[self::TABLE_Hotel][0];
304 $localizedTableIds = $this->actionService->localizeRecord(self::TABLE_Content, $this->recordIds['newContentId'], self::VALUE_LanguageId);
305 $this->recordIds['localizedContentId'] = $localizedTableIds[self::TABLE_Content][$this->recordIds['newContentId']];
306 }
307
308 /**
309 * @see DataSet/Assertion/createNLocalizeParentContentNHotelNOfferChildrenNDiscardCreatedParent.csv
310 */
311 public function createAndLocalizeParentContentWithHotelAndOfferChildrenAndDiscardCreatedParent() {
312 $newTableIds = $this->actionService->createNewRecords(
313 self::VALUE_PageId,
314 array(
315 self::TABLE_Content => array('header' => 'Testing #1', self::FIELD_ContentHotel => '__nextUid'),
316 self::TABLE_Hotel => array('title' => 'Hotel #1', self::FIELD_HotelOffer => '__nextUid'),
317 self::TABLE_Offer => array('title' => 'Offer #1'),
318 )
319 );
320 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
321 $this->recordIds['versionedNewContentId'] = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Content, $this->recordIds['newContentId']);
322 $localizedTableIds = $this->actionService->localizeRecord(self::TABLE_Content, $this->recordIds['newContentId'], self::VALUE_LanguageId);
323 $this->recordIds['localizedContentId'] = $localizedTableIds[self::TABLE_Content][$this->recordIds['newContentId']];
324 $this->actionService->clearWorkspaceRecord(self::TABLE_Content, $this->recordIds['versionedNewContentId']);
325 }
326
327 /**
328 * @see DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord.csv
329 */
330 public function createAndLocalizeParentContentWithHotelAndOfferChildrenAndDiscardLocalizedParent() {
331 $newTableIds = $this->actionService->createNewRecords(
332 self::VALUE_PageId,
333 array(
334 self::TABLE_Content => array('header' => 'Testing #1', self::FIELD_ContentHotel => '__nextUid'),
335 self::TABLE_Hotel => array('title' => 'Hotel #1', self::FIELD_HotelOffer => '__nextUid'),
336 self::TABLE_Offer => array('title' => 'Offer #1'),
337 )
338 );
339 $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
340 $localizedTableIds = $this->actionService->localizeRecord(self::TABLE_Content, $this->recordIds['newContentId'], self::VALUE_LanguageId);
341 $this->recordIds['localizedContentId'] = $localizedTableIds[self::TABLE_Content][$this->recordIds['newContentId']];
342 $versionedLocalizedContentId = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Content, $this->recordIds['localizedContentId']);
343 $this->actionService->clearWorkspaceRecord(self::TABLE_Content, $versionedLocalizedContentId);
344 }
345
346 /**
347 * @see DataSet/Assertion/modifyOnlyHotelChildRecord.csv
348 */
349 public function modifyOnlyHotelChild() {
350 $this->actionService->modifyRecord(self::TABLE_Hotel, 4, array('title' => 'Testing #1'));
351 }
352
353 /**
354 * @see DataSet/Assertion/modifyParentRecordAndChangeHotelChildRecordsSorting.csv
355 */
356 public function modifyParentAndChangeHotelChildrenSorting() {
357 $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, array(self::FIELD_ContentHotel => '4,3'));
358 }
359
360 /**
361 * @see DataSet/Assertion/modifyParentRecordWithHotelChildRecord.csv
362 */
363 public function modifyParentWithHotelChild() {
364 $this->actionService->modifyRecords(
365 self::VALUE_PageId,
366 array(
367 self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, self::FIELD_ContentHotel => '3,4'),
368 self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #1'),
369 )
370 );
371 }
372
373 /**
374 * @see DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardModifiedParentRecord.csv
375 */
376 public function modifyParentWithHotelChildAndDiscardModifiedParent() {
377 $this->actionService->modifyRecords(
378 self::VALUE_PageId,
379 array(
380 self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, self::FIELD_ContentHotel => '3,4'),
381 self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #1'),
382 )
383 );
384 $modifiedContentId = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Content, self::VALUE_ContentIdFirst);
385 $this->actionService->clearWorkspaceRecord(self::TABLE_Content, $modifiedContentId);
386 }
387
388 /**
389 * @see DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardAllModifiedRecords.csv
390 */
391 public function modifyParentWithHotelChildAndDiscardAll() {
392 $this->actionService->modifyRecords(
393 self::VALUE_PageId,
394 array(
395 self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, self::FIELD_ContentHotel => '3,4'),
396 self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #1'),
397 )
398 );
399 $modifiedContentId = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Content, self::VALUE_ContentIdFirst);
400 $modifiedHotelId = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Hotel, 4);
401 $this->actionService->clearWorkspaceRecords(
402 array(
403 self::TABLE_Content => array($modifiedContentId),
404 self::TABLE_Hotel => array($modifiedHotelId),
405 )
406 );
407 }
408
409 /**
410 * @see DataSet/Assertion/modifyParentRecordAndAddHotelChildRecord.csv
411 */
412 public function modifyParentAndAddHotelChild() {
413 $this->actionService->modifyRecords(
414 self::VALUE_PageId,
415 array(
416 self::TABLE_Content => array('uid' => self::VALUE_ContentIdLast, self::FIELD_ContentHotel => '5,__nextUid'),
417 self::TABLE_Hotel => array('uid' => '__NEW', 'title' => 'Hotel #2'),
418 )
419 );
420 }
421
422 /**
423 * @see DataSet/Assertion/modifyParentRecordAndDeleteHotelChildRecord.csv
424 */
425 public function modifyParentAndDeleteHotelChild() {
426 $this->actionService->modifyRecord(
427 self::TABLE_Content,
428 self::VALUE_ContentIdFirst,
429 array(self::FIELD_ContentHotel => '3'),
430 array(self::TABLE_Hotel => array(4))
431 );
432 }
433
434 /**
435 * @see DataSet/modifyNDiscardNModifyParentWHotelChild.csv
436 */
437 public function modifyAndDiscardAndModifyParentWithHotelChild() {
438 $this->actionService->modifyRecords(
439 self::VALUE_PageId,
440 array(
441 self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, 'header' => 'Testing #1', self::FIELD_ContentHotel => '3,4'),
442 self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #1'),
443 )
444 );
445 $this->recordIds['versionedContentId'] = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Content, self::VALUE_ContentIdFirst);
446 $this->recordIds['versionedHotelIdFirst'] = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Hotel, 3);
447 $this->recordIds['versionedHotelIdSecond'] = $this->actionService->getDataHandler()->getAutoVersionId(self::TABLE_Hotel, 4);
448 $this->actionService->clearWorkspaceRecords(
449 array(
450 self::TABLE_Content => array($this->recordIds['versionedContentId']),
451 self::TABLE_Hotel => array($this->recordIds['versionedHotelIdSecond']),
452 )
453 );
454 $this->actionService->modifyRecords(
455 self::VALUE_PageId,
456 array(
457 self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, 'header' => 'Testing #2', self::FIELD_ContentHotel => '3,4'),
458 self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #2'),
459 )
460 );
461 }
462
463 }