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