TYPO3 CMS  TYPO3_7-6
ActionTest.php
Go to the documentation of this file.
1 <?php
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 
21 {
25  protected $assertionDataSetDirectory = 'typo3/sysext/workspaces/Tests/Functional/DataHandling/IRRE/ForeignField/PublishAll/DataSet/';
26 
35  public function createParentContent()
36  {
37  parent::createParentContent();
38  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
39  $this->assertAssertionDataSet('createParentContent');
40 
41  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
42  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
43  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
44  }
45 
50  public function modifyParentContent()
51  {
52  parent::modifyParentContent();
53  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
54  $this->assertAssertionDataSet('modifyParentContent');
55 
56  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
57  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
58  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
59  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
60  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
61  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
62  }
63 
68  public function deleteParentContent()
69  {
70  parent::deleteParentContent();
71  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
72  $this->assertAssertionDataSet('deleteParentContent');
73 
74  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
75  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
76  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
77  }
78 
84  {
85  parent::deleteParentContentAndDiscardDeletedParent();
86  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
87  $this->assertAssertionDataSet('deleteParentContentNDiscardDeletedParent');
88 
89  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
90  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
91  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
92  }
93 
98  public function copyParentContent()
99  {
100  parent::copyParentContent();
101  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
102  $this->assertAssertionDataSet('copyParentContent');
103 
104  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
105  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
106  ->setRecordIdentifier(self::TABLE_Content . ':' . $this->recordIds['newContentId'])->setRecordField(self::FIELD_ContentHotel)
107  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
108  }
109 
115  {
116  parent::copyParentContentToDifferentPage();
117  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
118  $this->assertAssertionDataSet('copyParentContentToDifferentPage');
119 
120  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0)->getResponseSections('Default', 'Extbase:list()');
121  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
122  ->setRecordIdentifier(self::TABLE_Content . ':' . $this->recordIds['newContentId'])->setRecordField(self::FIELD_ContentHotel)
123  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
124  }
125 
131  {
132  parent::localizeParentContentInKeepMode();
133  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
134  $this->assertAssertionDataSet('localizeParentContentKeep');
135 
136  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
137  $this->assertThat($responseSections, $this->getRequestSectionStructureDoesNotHaveRecordConstraint()
138  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
139  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('[Translate to Dansk:] Hotel #1'));
140  }
141 
147  {
148  parent::localizeParentContentWithAllChildrenInKeepMode();
149  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
150  $this->assertAssertionDataSet('localizeParentContentWAllChildrenKeep');
151 
152  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
153  $this->assertThat($responseSections, $this->getRequestSectionStructureDoesNotHaveRecordConstraint()
154  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
155  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('[Translate to Dansk:] Hotel #1'));
156  }
157 
163  {
164  parent::localizeParentContentInSelectMode();
165  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
166  $this->assertAssertionDataSet('localizeParentContentSelect');
167 
168  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
169  $this->assertThat($responseSections, $this->getRequestSectionStructureDoesNotHaveRecordConstraint()
170  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
171  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('[Translate to Dansk:] Hotel #1'));
172  }
173 
179  {
180  parent::localizeParentContentWithAllChildrenInSelectMode();
181  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
182  $this->assertAssertionDataSet('localizeParentContentWAllChildrenSelect');
183 
184  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
185  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
186  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
187  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('[Translate to Dansk:] Hotel #1'));
188  }
189 
194  public function changeParentContentSorting()
195  {
196  parent::changeParentContentSorting();
197  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
198  $this->assertAssertionDataSet('changeParentContentSorting');
199 
200  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
201  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
202  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
203  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2'));
204  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
205  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
206  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
207  }
208 
214  {
215  parent::moveParentContentToDifferentPage();
216  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
217  $this->assertAssertionDataSet('moveParentContentToDifferentPage');
218 
219  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0)->getResponseSections('Default', 'Extbase:list()');
220  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
221  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
222 
223  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
224  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
225  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
226  }
227 
233  {
234  parent::moveParentContentToDifferentPageAndChangeSorting();
235  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
236  $this->assertAssertionDataSet('moveParentContentToDifferentPageNChangeSorting');
237 
238  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0)->getResponseSections('Default', 'Extbase:list()');
239  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
240  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2', 'Regular Element #1'));
241  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
242  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
243  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2'));
244  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
245  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
246  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
247  }
248 
257  public function modifyPage()
258  {
259  parent::modifyPage();
260  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
261  $this->assertAssertionDataSet('modifyPage');
262 
263  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
264  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
265  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
266  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
267  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
268  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2'));
269  }
270 
275  public function deletePage()
276  {
277  parent::deletePage();
278  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
279  $this->assertAssertionDataSet('deletePage');
280 
281  $response = $this->getFrontendResponse(self::VALUE_PageId, 0, 0, 0, false);
282  $this->assertContains('PageNotFoundException', $response->getError());
283  }
284 
289  public function copyPage()
290  {
291  parent::copyPage();
292  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
293  $this->assertAssertionDataSet('copyPage');
294 
295  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0)->getResponseSections('Default', 'Extbase:list()');
296  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
297  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2', 'Hotel #1'));
298  }
299 
305  {
306  parent::copyPageWithHotelBeforeParentContent();
307  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
308  $this->assertAssertionDataSet('copyPageWHotelBeforeParentContent');
309 
310  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0)->getResponseSections('Default', 'Extbase:list()');
311  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
312  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2', 'Hotel #1'));
313  }
314 
324  {
325  parent::createParentContentWithHotelAndOfferChildren();
326  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
327  $this->assertAssertionDataSet('createParentContentNHotelNOfferChildren');
328 
329  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
330  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
331  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
332  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
333  ->setRecordIdentifier(self::TABLE_Content . ':' . $this->recordIds['newContentId'])->setRecordField(self::FIELD_ContentHotel)
334  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
335  }
336 
342  {
343  parent::createAndCopyParentContentWithHotelAndOfferChildren();
344  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
345  $this->assertAssertionDataSet('createNCopyParentContentNHotelNOfferChildren');
346 
347  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
348  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
349  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1 (copy 1)'));
350  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
351  ->setRecordIdentifier(self::TABLE_Content . ':' . $this->recordIds['newContentId'])->setRecordField(self::FIELD_ContentHotel)
352  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
353  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
354  ->setRecordIdentifier(self::TABLE_Content . ':' . $this->recordIds['copiedContentId'])->setRecordField(self::FIELD_ContentHotel)
355  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
356  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
357  ->setRecordIdentifier(self::TABLE_Hotel . ':' . $this->recordIds['copiedHotelId'])->setRecordField(self::FIELD_HotelOffer)
358  ->setTable(self::TABLE_Offer)->setField('title')->setValues('Offer #1'));
359  }
360 
366  {
367  parent::createAndCopyParentContentWithHotelAndOfferChildrenAndDiscardCopiedParent();
368  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
369  $this->assertAssertionDataSet('createNCopyParentContentNHotelNOfferChildrenNDiscardCopiedParent');
370 
371  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
372  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
373  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1 (copy 1)'));
374  }
375 
381  {
382  parent::createAndLocalizeParentContentWithHotelAndOfferChildren();
383  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
384  $this->assertAssertionDataSet('createNLocalizeParentContentNHotelNOfferChildren');
385 
386  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
387  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
388  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Testing #1'));
389  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
390  ->setRecordIdentifier(self::TABLE_Content . ':' . $this->recordIds['newContentId'])->setRecordField(self::FIELD_ContentHotel)
391  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('[Translate to Dansk:] Hotel #1'));
392  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
393  ->setRecordIdentifier(self::TABLE_Hotel . ':' . $this->recordIds['newHotelId'])->setRecordField(self::FIELD_HotelOffer)
394  ->setTable(self::TABLE_Offer)->setField('title')->setValues('[Translate to Dansk:] Offer #1'));
395  }
396 
402  {
403  parent::createAndLocalizeParentContentWithHotelAndOfferChildrenAndDiscardCreatedParent();
404  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
405  $this->assertAssertionDataSet('createNLocalizeParentContentNHotelNOfferChildrenNDiscardCreatedParent');
406 
407  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
408  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
409  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', '[Translate to Dansk:] Testing #1'));
410  }
411 
417  {
418  parent::createAndLocalizeParentContentWithHotelAndOfferChildrenAndDiscardLocalizedParent();
419  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
420  $this->assertAssertionDataSet('createNLocalizeParentContentNHotelNOfferChildrenNDiscardLocalizedParent');
421 
422  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections('Default', 'Extbase:list()');
423  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
424  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Testing #1'));
425  }
426 
431  public function modifyOnlyHotelChild()
432  {
433  parent::modifyOnlyHotelChild();
434  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
435  $this->assertAssertionDataSet('modifyOnlyHotelChild');
436 
437  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
438  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
439  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
440  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Testing #1'));
441  }
442 
448  {
449  parent::modifyParentAndChangeHotelChildrenSorting();
450  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
451  $this->assertAssertionDataSet('modifyParentNChangeHotelChildrenSorting');
452 
453  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
454  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
455  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
456  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #2', 'Hotel #1'));
457  }
458 
463  public function modifyParentWithHotelChild()
464  {
465  parent::modifyParentWithHotelChild();
466  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
467  $this->assertAssertionDataSet('modifyParentNHotelChild');
468 
469  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
470  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
471  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
472  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Testing #1'));
473  }
474 
480  {
481  parent::modifyParentWithHotelChildAndDiscardModifiedParent();
482  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
483  $this->assertAssertionDataSet('modifyParentNHotelChildNDiscardModifiedParent');
484 
485  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
486  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
487  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
488  // Discarding the parent shall not discard the child records
489  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
490  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
491  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Testing #1'));
492  $this->assertThat($responseSections, $this->getRequestSectionStructureDoesNotHaveRecordConstraint()
493  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
494  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #2'));
495  }
496 
502  {
503  parent::modifyParentWithHotelChildAndDiscardAll();
504  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
505  $this->assertAssertionDataSet('modifyParentNHotelChildNDiscardAll');
506 
507  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
508  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
509  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
510  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
511  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdFirst)->setRecordField(self::FIELD_ContentHotel)
512  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2'));
513  }
514 
520  {
521  parent::modifyParentAndAddHotelChild();
522  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
523  $this->assertAssertionDataSet('modifyParentNAddHotelChild');
524 
525  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
526  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
527  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
528  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1', 'Hotel #2'));
529  }
530 
536  {
537  parent::modifyParentAndDeleteHotelChild();
538  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
539  $this->assertAssertionDataSet('modifyParentNDeleteHotelChild');
540 
541  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections('Default', 'Extbase:list()');
542  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
543  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
544  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #1'));
545  $this->assertThat($responseSections, $this->getRequestSectionStructureDoesNotHaveRecordConstraint()
546  ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentHotel)
547  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Hotel #2'));
548  }
549 
555  {
556  parent::modifyAndDiscardAndModifyParentWithHotelChild();
557  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
558  $this->assertAssertionDataSet('modifyNDiscardNModifyParentWHotelChild');
559 
560  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections('Default', 'Extbase:list()');
561  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
562  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
563  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
564  ->setTable(self::TABLE_Hotel)->setField('header')->setValues('Testing #1'));
565  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
566  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #2'));
567  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
568  ->setTable(self::TABLE_Hotel)->setField('title')->setValues('Testing #2'));
569  }
570 }
getFrontendResponse($pageId, $languageId=0, $backendUserId=0, $workspaceId=0, $failOnFailure=true, $frontendUserId=0)