‪TYPO3CMS  9.5
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/Regular/Modify/DataSet/';
26 
35  public function ‪createContents()
36  {
37  parent::createContents();
38  $this->‪assertAssertionDataSet('createContents');
39 
40  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
41  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
42  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #2'));
43  }
44 
50  {
51  parent::createContentAndDiscardCreatedContent();
52  $this->‪assertAssertionDataSet('createContentNDiscardCreatedContent');
53 
54  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
55  $this->assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
56  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
57  }
58 
64  {
65  parent::createAndCopyContentAndDiscardCopiedContent();
66  $this->‪assertAssertionDataSet('createNCopyContentNDiscardCopiedContent');
67 
68  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
69  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
70  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
71  $this->assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
72  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1 (copy 1)'));
73  }
74 
79  public function ‪modifyContent()
80  {
81  parent::modifyContent();
82  $this->‪assertAssertionDataSet('modifyContent');
83 
84  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
85  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
86  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
87  }
88 
93  public function ‪hideContent()
94  {
95  parent::hideContent();
96  $this->‪assertAssertionDataSet('hideContent');
97 
98  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
99  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
100  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
101  }
102 
107  public function ‪hideContentAndMoveToDifferentPage()
108  {
109  parent::hideContent();
110  parent::moveContentToDifferentPage();
111  $this->‪assertAssertionDataSet('hideContentAndMoveToDifferentPage');
112 
113  $responseSectionsSource = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
114  self::assertThat($responseSectionsSource, $this->‪getRequestSectionHasRecordConstraint()
115  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
116  self::assertThat($responseSectionsSource, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
117  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
118  $responseSectionsTarget = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
119  self::assertThat($responseSectionsTarget, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
120  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
121  }
122 
127  public function ‪deleteContent()
128  {
129  parent::deleteContent();
130  $this->‪assertAssertionDataSet('deleteContent');
131 
132  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
133  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
134  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
135  $this->assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
136  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
137  }
138 
144  {
145  // Create translated page first
146  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
147 
148  parent::deleteLocalizedContentAndDeleteContent();
149  $this->‪assertAssertionDataSet('deleteLocalizedContentNDeleteContent');
150 
151  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
152  $this->assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
153  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3', '[Translate to Dansk:] Regular Element #3', 'Regular Element #1'));
154  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
155  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', 'Regular Element #2'));
156  }
157 
162  public function ‪copyContent()
163  {
164  parent::copyContent();
165  $this->‪assertAssertionDataSet('copyContent');
166 
167  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
168  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
169  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2 (copy 1)'));
170  }
171 
176  public function ‪copyContentToLanguage()
177  {
178  parent::copyContentToLanguage();
179  $this->‪assertAssertionDataSet('copyContentToLanguage');
180 
181  $this->setUpFrontendRootPage(1, [
182  'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRenderer.typoscript',
183  'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRendererNoOverlay.typoscript'
184  ]);
185  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
186  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
187  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3', '[Translate to Dansk:] Regular Element #2'));
188  }
189 
195  {
196  parent::copyContentToLanguageFromNonDefaultLanguage();
197  $this->‪assertAssertionDataSet('copyContentToLanguageFromNonDefaultLanguage');
198 
199  $this->setUpFrontendRootPage(1, [
200  'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRenderer.typoscript',
201  'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRendererNoOverlay.typoscript'
202  ]);
203  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageIdSecond, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
204  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
205  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Deutsch:] [Translate to Dansk:] Regular Element #3'));
206  }
207 
212  public function ‪localizeContent()
213  {
214  parent::localizeContent();
215  $this->‪assertAssertionDataSet('localizeContent');
216 
217  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
218  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
219  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
220  }
221 
228  {
229  // Create translated page first
230  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
231  parent::localizeContentWithEmptyTcaIntegrityColumns();
232  $this->‪assertAssertionDataSet('localizeContent');
233  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
234  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
235  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
236  }
237 
242  public function ‪localizeContentWithHideAtCopy()
243  {
244  // Create translated page first
245  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
246  parent::localizeContentWithHideAtCopy();
247  $this->‪assertAssertionDataSet('localizeContentWHideAtCopy');
248 
249  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
250  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
251  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
252  }
253 
259  {
260  parent::localizeContentFromNonDefaultLanguage();
261 
262  $this->‪assertAssertionDataSet('localizeContentFromNonDefaultLanguage');
263 
264  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageIdSecond, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
265  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
266  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1', '[Translate to Deutsch:] [Translate to Dansk:] Regular Element #3'));
267  }
268 
273  public function ‪changeContentSorting()
274  {
275  parent::changeContentSorting();
276  $this->‪assertAssertionDataSet('changeContentSorting');
277 
278  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
279  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
280  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
281  }
282 
288  {
289  parent::changeContentSortingAndDeleteMovedRecord();
290  $this->‪assertAssertionDataSet('changeContentSortingNDeleteMovedRecord');
291 
292  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
293  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
294  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
295  }
296 
302  {
303  parent::changeContentSortingAndDeleteLiveRecord();
304  $this->‪assertAssertionDataSet('changeContentSortingNDeleteLiveRecord');
305 
306  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
307  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
308  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
309  $this->assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
310  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
311  }
312 
317  public function ‪moveContentToDifferentPage()
318  {
319  parent::moveContentToDifferentPage();
320  $this->‪assertAssertionDataSet('moveContentToDifferentPage');
321 
322  $responseSectionsSource = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
323  $this->assertThat($responseSectionsSource, $this->‪getRequestSectionHasRecordConstraint()
324  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
325  $responseSectionsTarget = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
326  $this->assertThat($responseSectionsTarget, $this->‪getRequestSectionHasRecordConstraint()
327  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
328  }
329 
335  {
336  parent::moveContentToDifferentPageAndChangeSorting();
337  $this->‪assertAssertionDataSet('moveContentToDifferentPageNChangeSorting');
338 
339  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
340  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
341  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
342  }
343 
348  public function ‪moveContentToDifferentPageAndHide()
349  {
350  parent::moveContentToDifferentPageAndHide();
351  $this->‪assertAssertionDataSet('moveContentToDifferentPageAndHide');
352 
353  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
354  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
355  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
356  }
357 
366  public function ‪createPage()
367  {
368  parent::createPage();
369  $this->‪assertAssertionDataSet('createPage');
370 
371  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
372  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
373  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
374  }
375 
380  public function ‪modifyPage()
381  {
382  parent::modifyPage();
383  $this->‪assertAssertionDataSet('modifyPage');
384 
385  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
386  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
387  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
388  }
389 
394  public function ‪deletePage()
395  {
396  parent::deletePage();
397  $this->‪assertAssertionDataSet('deletePage');
398 
399  $response = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId, false);
400  $this->assertContains('PageNotFoundException', $response->getError());
401  }
402 
407  public function ‪deleteContentAndPage()
408  {
409  parent::deleteContentAndPage();
410  $this->‪assertAssertionDataSet('deleteContentAndPage');
411 
412  $response = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId, false);
413  $this->assertContains('PageNotFoundException', $response->getError());
414  }
415 
421  {
422  // Create localized page and localize content elements first
423  parent::localizePageAndContents();
424 
425  // Deleting the localized page in workspace should also delete its localized records
426  $this->actionService->deleteRecord(self::TABLE_Page, $this->recordIds['localizedPageId']);
427 
428  $response = $this->getFrontendResponse($this->recordIds['localizedPageId'], self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId, false);
429  $this->assertContains('PageNotFoundException', $response->getError());
430  }
431 
436  public function ‪copyPage()
437  {
438  parent::copyPage();
439  $this->‪assertAssertionDataSet('copyPage');
440 
441  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
442  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
443  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
444  }
445 
450  public function ‪copyPageFreeMode()
451  {
452  parent::copyPageFreeMode();
453  $this->‪assertAssertionDataSet('copyPageFreeMode');
454 
455  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
456  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
457  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target'));
458  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
459  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #10'));
460  }
461 
466  public function ‪localizePage()
467  {
468  parent::localizePage();
469  $this->‪assertAssertionDataSet('localizePage');
470 
471  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
472  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
473  ->setTable(self::TABLE_Page)->setField('title')->setValues('[Translate to Dansk:] Relations'));
474  }
475 
480  public function ‪changePageSorting()
481  {
482  parent::changePageSorting();
483  $this->‪assertAssertionDataSet('changePageSorting');
484 
485  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
486  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
487  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
488  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
489  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
490  }
491 
496  public function ‪movePageToDifferentPage()
497  {
498  parent::movePageToDifferentPage();
499  $this->‪assertAssertionDataSet('movePageToDifferentPage');
500 
501  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
502  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
503  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
504  $this->assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
505  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
506  }
507 
513  {
514  parent::movePageToDifferentPageAndChangeSorting();
515  $this->‪assertAssertionDataSet('movePageToDifferentPageNChangeSorting');
516 
517  $responseSectionsPage = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
518  $this->assertThat($responseSectionsPage, $this->‪getRequestSectionHasRecordConstraint()
519  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
520  $this->assertThat($responseSectionsPage, $this->‪getRequestSectionHasRecordConstraint()
521  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
522  $responseSectionsWebsite = $this->getFrontendResponse(self::VALUE_PageIdWebsite, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
523  $this->assertThat($responseSectionsWebsite, $this->‪getRequestSectionStructureHasRecordConstraint()
524  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
525  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Relations', 'DataHandlerTest'));
526  }
527 
535  {
536  parent::movePageToDifferentPageAndCreatePageAfterMovedPage();
537  $this->‪assertAssertionDataSet('movePageToDifferentPageNCreatePageAfterMovedPage');
538 
539  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdWebsite, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
540  $this->assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
541  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
542  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Testing #1', 'DataHandlerTest'));
543  }
544 
545  /*************************************
546  * Copying page contents and sub-pages
547  *************************************/
548 
553  public function ‪createContentAndCopyDraftPage()
554  {
555  parent::createContentAndCopyDraftPage();
556  $this->‪assertAssertionDataSet('createContentAndCopyDraftPage');
557 
558  $resultLive = $this->getFrontendResult($this->recordIds['copiedPageId']);
559  $this->assertContains('Reason: ID was not an accessible page', $resultLive['stdout']);
560  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
561  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
562  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
563  }
564 
569  public function ‪createContentAndCopyLivePage()
570  {
571  parent::createContentAndCopyLivePage();
572  $this->‪assertAssertionDataSet('createContentAndCopyLivePage');
573 
574  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
575  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
576  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
577  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
578  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
579  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
580  }
581 
586  public function ‪createPageAndCopyDraftParentPage()
587  {
588  parent::createPageAndCopyDraftParentPage();
589  $this->‪assertAssertionDataSet('createPageAndCopyDraftParentPage');
590 
591  $resultLive = $this->getFrontendResult($this->recordIds['copiedPageId']);
592  $this->assertContains('Reason: ID was not an accessible page', $resultLive['stdout']);
593  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
594  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
595  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
596  }
597 
602  public function ‪createPageAndCopyLiveParentPage()
603  {
604  parent::createPageAndCopyLiveParentPage();
605  $this->‪assertAssertionDataSet('createPageAndCopyLiveParentPage');
606 
607  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
608  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
609  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
610  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
611  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
612  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
613  }
614 
620  {
621  parent::createNestedPagesAndCopyDraftParentPage();
622  $this->‪assertAssertionDataSet('createNestedPagesAndCopyDraftParentPage');
623 
624  $resultLive = $this->getFrontendResult($this->recordIds['copiedPageId']);
625  $this->assertContains('Reason: ID was not an accessible page', $resultLive['stdout']);
626  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
627  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
628  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
629  }
630 
636  {
637  parent::createNestedPagesAndCopyLiveParentPage();
638  $this->‪assertAssertionDataSet('createNestedPagesAndCopyLiveParentPage');
639 
640  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
641  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
642  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
643  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
644  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
645  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
646  }
647 
652  public function ‪deleteContentAndCopyDraftPage()
653  {
654  parent::deleteContentAndCopyDraftPage();
655  $this->‪assertAssertionDataSet('deleteContentAndCopyDraftPage');
656 
657  $resultLive = $this->getFrontendResult($this->recordIds['copiedPageId']);
658  $this->assertContains('Reason: ID was not an accessible page', $resultLive['stdout']);
659  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
660  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
661  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
662  }
663 
668  public function ‪deleteContentAndCopyLivePage()
669  {
670  parent::deleteContentAndCopyLivePage();
671  $this->‪assertAssertionDataSet('deleteContentAndCopyLivePage');
672 
673  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
674  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionHasRecordConstraint()
675  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
676  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
677  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
678  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
679  }
680 
689  {
690  parent::changeContentSortingAndCopyDraftPage();
691  $this->‪assertAssertionDataSet('changeContentSortingAndCopyDraftPage');
692 
693  $resultLive = $this->getFrontendResult($this->recordIds['copiedPageId']);
694  $this->assertContains('Reason: ID was not an accessible page', $resultLive['stdout']);
695  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
696  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
697  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
698  }
699 
705  {
706  parent::changeContentSortingAndCopyLivePage();
707  $this->‪assertAssertionDataSet('changeContentSortingAndCopyLivePage');
708 
709  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
710  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionHasRecordConstraint()
711  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
712  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
713  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
714  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
715  }
716 
721  public function ‪moveContentAndCopyDraftPage()
722  {
723  parent::moveContentAndCopyDraftPage();
724  $this->‪assertAssertionDataSet('moveContentAndCopyDraftPage');
725 
726  $resultLive = $this->getFrontendResult($this->recordIds['copiedPageId']);
727  $this->assertContains('Reason: ID was not an accessible page', $resultLive['stdout']);
728  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
729  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
730  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
731  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
732  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
733  }
734 
739  public function ‪moveContentAndCopyLivePage()
740  {
741  parent::moveContentAndCopyLivePage();
742  $this->‪assertAssertionDataSet('moveContentAndCopyLivePage');
743 
744  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
745  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionHasRecordConstraint()
746  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
747  $this->assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
748  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
749  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
750  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
751  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
752  $this->assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
753  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
754  }
755 
761  {
762  parent::createPlaceholdersAndDeleteDraftParentPage();
763  $this->‪assertAssertionDataSet('createPlaceholdersAndDeleteDraftParentPage');
764  }
765 
771  {
772  parent::createPlaceholdersAndDeleteLiveParentPage();
773  $this->‪assertAssertionDataSet('createPlaceholdersAndDeleteLiveParentPage');
774  }
775 }
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndCopyDraftParentPage
‪createPageAndCopyDraftParentPage()
Definition: ActionTest.php:585
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPage
‪createPage()
Definition: ActionTest.php:365
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPlaceholdersAndDeleteDraftParentPage
‪createPlaceholdersAndDeleteDraftParentPage()
Definition: ActionTest.php:759
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyPage
‪copyPage()
Definition: ActionTest.php:435
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify
Definition: ActionTest.php:2
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest
Definition: ActionTest.php:21
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionHasRecordConstraint
‪HasRecordConstraint getRequestSectionHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:174
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createNestedPagesAndCopyDraftParentPage
‪createNestedPagesAndCopyDraftParentPage()
Definition: ActionTest.php:618
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\hideContent
‪hideContent()
Definition: ActionTest.php:92
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionStructureHasRecordConstraint
‪StructureHasRecordConstraint getRequestSectionStructureHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:190
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndCopyDraftPage
‪changeContentSortingAndCopyDraftPage()
Definition: ActionTest.php:687
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentWithEmptyTcaIntegrityColumns
‪localizeContentWithEmptyTcaIntegrityColumns()
Definition: ActionTest.php:226
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePage
‪localizePage()
Definition: ActionTest.php:465
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createNestedPagesAndCopyLiveParentPage
‪createNestedPagesAndCopyLiveParentPage()
Definition: ActionTest.php:634
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndCopyLivePage
‪changeContentSortingAndCopyLivePage()
Definition: ActionTest.php:703
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContentAndCopyDraftPage
‪deleteContentAndCopyDraftPage()
Definition: ActionTest.php:651
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndDeleteMovedRecord
‪changeContentSortingAndDeleteMovedRecord()
Definition: ActionTest.php:286
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndCopyLiveParentPage
‪createPageAndCopyLiveParentPage()
Definition: ActionTest.php:601
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentFromNonDefaultLanguage
‪localizeContentFromNonDefaultLanguage()
Definition: ActionTest.php:257
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndDiscardCreatedContent
‪createContentAndDiscardCreatedContent()
Definition: ActionTest.php:48
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteLocalizedContentAndDeleteContent
‪deleteLocalizedContentAndDeleteContent()
Definition: ActionTest.php:142
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyContent
‪copyContent()
Definition: ActionTest.php:161
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPageAndCreatePageAfterMovedPage
‪movePageToDifferentPageAndCreatePageAfterMovedPage()
Definition: ActionTest.php:533
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changePageSorting
‪changePageSorting()
Definition: ActionTest.php:479
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createAndCopyContentAndDiscardCopiedContent
‪createAndCopyContentAndDiscardCopiedContent()
Definition: ActionTest.php:62
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContentAndPage
‪deleteContentAndPage()
Definition: ActionTest.php:406
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentToDifferentPageAndHide
‪moveContentToDifferentPageAndHide()
Definition: ActionTest.php:347
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContentAndCopyLivePage
‪deleteContentAndCopyLivePage()
Definition: ActionTest.php:667
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\$assertionDataSetDirectory
‪string $assertionDataSetDirectory
Definition: ActionTest.php:24
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\modifyContent
‪modifyContent()
Definition: ActionTest.php:78
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContent
‪localizeContent()
Definition: ActionTest.php:211
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContents
‪createContents()
Definition: ActionTest.php:34
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyPageFreeMode
‪copyPageFreeMode()
Definition: ActionTest.php:449
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentAndCopyDraftPage
‪moveContentAndCopyDraftPage()
Definition: ActionTest.php:720
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyContentToLanguage
‪copyContentToLanguage()
Definition: ActionTest.php:175
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPlaceholdersAndDeleteLiveParentPage
‪createPlaceholdersAndDeleteLiveParentPage()
Definition: ActionTest.php:769
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndCopyDraftPage
‪createContentAndCopyDraftPage()
Definition: ActionTest.php:552
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\assertAssertionDataSet
‪assertAssertionDataSet($dataSetName)
Definition: AbstractDataHandlerActionTestCase.php:124
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPageAndChangeSorting
‪movePageToDifferentPageAndChangeSorting()
Definition: ActionTest.php:511
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSorting
‪changeContentSorting()
Definition: ActionTest.php:272
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionDoesNotHaveRecordConstraint
‪DoesNotHaveRecordConstraint getRequestSectionDoesNotHaveRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:182
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deletePage
‪deletePage()
Definition: ActionTest.php:393
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyContentToLanguageFromNonDefaultLanguage
‪copyContentToLanguageFromNonDefaultLanguage()
Definition: ActionTest.php:193
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\hideContentAndMoveToDifferentPage
‪hideContentAndMoveToDifferentPage()
Definition: ActionTest.php:106
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentWithHideAtCopy
‪localizeContentWithHideAtCopy()
Definition: ActionTest.php:241
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndCopyLivePage
‪createContentAndCopyLivePage()
Definition: ActionTest.php:568
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentAndCopyLivePage
‪moveContentAndCopyLivePage()
Definition: ActionTest.php:738
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContent
‪deleteContent()
Definition: ActionTest.php:126
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\modifyPage
‪modifyPage()
Definition: ActionTest.php:379
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndDeleteLiveRecord
‪changeContentSortingAndDeleteLiveRecord()
Definition: ActionTest.php:300
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPage
‪movePageToDifferentPage()
Definition: ActionTest.php:495
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentToDifferentPage
‪moveContentToDifferentPage()
Definition: ActionTest.php:316
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageAndContentsAndDeletePageLocalization
‪localizePageAndContentsAndDeletePageLocalization()
Definition: ActionTest.php:419
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentToDifferentPageAndChangeSorting
‪moveContentToDifferentPageAndChangeSorting()
Definition: ActionTest.php:333
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\AbstractActionTestCase
Definition: AbstractActionTestCase.php:21