‪TYPO3CMS  11.5
ActionTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
21 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
22 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequestContext;
23 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\ResponseContent;
24 
29 {
33  public function ‪verifyCleanReferenceIndex(): void
34  {
35  // The test verifies the imported data set has a clean reference index by the check in tearDown()
36  self::assertTrue(true);
37  }
38 
42  public function ‪createContents(): void
43  {
44  parent::createContents();
45  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContents.csv');
46 
47  $response = $this->executeFrontendSubRequest(
48  (new InternalRequest())->withPageId(self::VALUE_PageId),
49  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
50  );
51  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
52  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
53  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #2'));
54  }
55 
59  public function ‪createContentAndCopyContent(): void
60  {
61  parent::createContentAndCopyContent();
62  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndCopyContent.csv');
63 
64  $response = $this->executeFrontendSubRequest(
65  (new InternalRequest())->withPageId(self::VALUE_PageId),
66  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
67  );
68  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
69  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
70  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #1 (copy 1)'));
71  }
72 
76  public function ‪createContentAndLocalize(): void
77  {
78  parent::createContentAndLocalize();
79  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndLocalize.csv');
80 
81  $response = $this->executeFrontendSubRequest(
82  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
83  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
84  );
85  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
86  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
87  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Testing #1'));
88  }
89 
93  public function ‪modifyContent(): void
94  {
95  parent::modifyContent();
96  $this->assertCSVDataSet(__DIR__ . '/DataSet/modifyContent.csv');
97 
98  $response = $this->executeFrontendSubRequest(
99  (new InternalRequest())->withPageId(self::VALUE_PageId),
100  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
101  );
102  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
103  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
104  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
105  }
106 
110  public function ‪hideContent(): void
111  {
112  parent::hideContent();
113  $this->assertCSVDataSet(__DIR__ . '/DataSet/hideContent.csv');
114 
115  $response = $this->executeFrontendSubRequest(
116  (new InternalRequest())->withPageId(self::VALUE_PageId),
117  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
118  );
119  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
120  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
121  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
122  }
123 
127  public function ‪hideContentAndMoveToDifferentPage(): void
128  {
129  parent::hideContent();
130  parent::moveContentToDifferentPage();
131  $this->assertCSVDataSet(__DIR__ . '/DataSet/hideContentAndMoveToDifferentPage.csv');
132 
133  $response = $this->executeFrontendSubRequest(
134  (new InternalRequest())->withPageId(self::VALUE_PageId),
135  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
136  );
137  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
138  self::assertThat($responseSectionsSource, $this->‪getRequestSectionHasRecordConstraint()
139  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
140  self::assertThat($responseSectionsSource, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
141  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
142  $response = $this->executeFrontendSubRequest(
143  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
144  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
145  );
146  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
147  self::assertThat($responseSectionsTarget, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
148  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
149  }
150 
154  public function ‪deleteContent(): void
155  {
156  parent::deleteContent();
157  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContent.csv');
158 
159  $response = $this->executeFrontendSubRequest(
160  (new InternalRequest())->withPageId(self::VALUE_PageId),
161  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
162  );
163  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
164  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
165  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
166  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
167  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
168  }
169 
174  {
175  // Create translated page first
176  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
177  parent::deleteLocalizedContentAndDeleteContent();
178  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteLocalizedContentNDeleteContent.csv');
179 
180  $response = $this->executeFrontendSubRequest(
181  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
182  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
183  );
184  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
185  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
186  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3', '[Translate to Dansk:] Regular Element #3', 'Regular Element #1'));
187  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
188  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', 'Regular Element #2'));
189  }
190 
194  public function ‪copyContent(): void
195  {
196  parent::copyContent();
197  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyContent.csv');
198 
199  $response = $this->executeFrontendSubRequest(
200  (new InternalRequest())->withPageId(self::VALUE_PageId),
201  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
202  );
203  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
204  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
205  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2 (copy 1)'));
206  }
207 
211  public function ‪copyContentToLanguage(): void
212  {
213  // Create translated page first
214  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
215  parent::copyContentToLanguage();
216  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyContentToLanguage.csv');
217 
218  // Set up "dk" to not have overlays
219  $languageConfiguration = ‪$this->siteLanguageConfiguration;
220  $languageConfiguration[‪self::VALUE_LanguageId]['fallbackType'] = 'free';
221  $this->‪setUpFrontendSite(1, $languageConfiguration);
222  $response = $this->executeFrontendSubRequest(
223  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
224  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
225  );
226  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
227  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
228  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3', '[Translate to Dansk:] Regular Element #2'));
229  }
230 
235  {
236  // Create translated page first
237  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
238  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageIdSecond);
239  parent::copyContentToLanguageFromNonDefaultLanguage();
240  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyContentToLanguageFromNonDefaultLanguage.csv');
241 
242  // Set up "de" to not have overlays
243  $languageConfiguration = ‪$this->siteLanguageConfiguration;
244  $languageConfiguration[‪self::VALUE_LanguageIdSecond]['fallbackType'] = 'free';
245  $this->‪setUpFrontendSite(1, $languageConfiguration);
246  $response = $this->executeFrontendSubRequest(
247  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageIdSecond),
248  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
249  );
250  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
251  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
252  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Deutsch:] [Translate to Dansk:] Regular Element #3'));
253  }
254 
258  public function ‪localizeContent(): void
259  {
260  // Create translated page first
261  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
262  parent::localizeContent();
263  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContent.csv');
264 
265  $response = $this->executeFrontendSubRequest(
266  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
267  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
268  );
269  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
270  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
271  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
272  }
273 
277  public function ‪localizeContentAfterMovedContent(): void
278  {
279  parent::localizeContentAfterMovedContent();
280  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentAfterMovedContent.csv');
281  }
282 
287  {
288  parent::localizeContentAfterMovedInLiveContent();
289  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentAfterMovedInLiveContent.csv');
290  }
291 
297  {
298  parent::localizeContentWithEmptyTcaIntegrityColumns();
299  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentWithEmptyTcaIntegrityColumns.csv');
300  $response = $this->executeFrontendSubRequest(
301  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
302  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
303  );
304  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
305  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
306  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
307  }
308 
312  public function ‪localizeContentWithHideAtCopy(): void
313  {
314  // Create translated page first
315  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
316  parent::localizeContentWithHideAtCopy();
317  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentWHideAtCopy.csv');
318 
319  $response = $this->executeFrontendSubRequest(
320  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
321  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
322  );
323  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
324  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
325  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
326  }
327 
332  {
333  // Create translated page first
334  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
335  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageIdSecond);
336  parent::localizeContentFromNonDefaultLanguage();
337 
338  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentFromNonDefaultLanguage.csv');
339 
340  $response = $this->executeFrontendSubRequest(
341  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageIdSecond),
342  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
343  );
344  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
345  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
346  ->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'));
347  }
348 
354  {
355  parent::localizeContentFromNonDefaultLanguageWithAllContentElements();
356  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentFromNonDefaultLanguageWithAllContentElements.csv');
357  }
358 
362  public function ‪changeContentSorting(): void
363  {
364  parent::changeContentSorting();
365  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSorting.csv');
366 
367  $response = $this->executeFrontendSubRequest(
368  (new InternalRequest())->withPageId(self::VALUE_PageId),
369  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
370  );
371  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
372  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
373  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
374  }
375 
379  public function ‪changeContentSortingAfterSelf(): void
380  {
381  parent::changeContentSortingAfterSelf();
382  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingAfterSelf.csv');
383 
384  $response = $this->executeFrontendSubRequest(
385  (new InternalRequest())->withPageId(self::VALUE_PageId),
386  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
387  );
388  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
389  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
390  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
391  }
392 
398  {
399  parent::changeContentSortingAndDeleteMovedRecord();
400  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingNDeleteMovedRecord.csv');
401 
402  $response = $this->executeFrontendSubRequest(
403  (new InternalRequest())->withPageId(self::VALUE_PageId),
404  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
405  );
406  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
407  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
408  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
409  }
410 
415  {
416  parent::changeContentSortingAndDeleteLiveRecord();
417  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingNDeleteLiveRecord.csv');
418 
419  $response = $this->executeFrontendSubRequest(
420  (new InternalRequest())->withPageId(self::VALUE_PageId),
421  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
422  );
423  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
424  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
425  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
426  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
427  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
428  }
429 
433  public function ‪moveContentToDifferentPage(): void
434  {
435  parent::moveContentToDifferentPage();
436  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentToDifferentPage.csv');
437 
438  $response = $this->executeFrontendSubRequest(
439  (new InternalRequest())->withPageId(self::VALUE_PageId),
440  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
441  );
442  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
443  self::assertThat($responseSectionsSource, $this->‪getRequestSectionHasRecordConstraint()
444  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
445  $response = $this->executeFrontendSubRequest(
446  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
447  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
448  );
449  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
450  self::assertThat($responseSectionsTarget, $this->‪getRequestSectionHasRecordConstraint()
451  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
452  }
453 
458  {
459  parent::moveContentToDifferentPageAndChangeSorting();
460  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentToDifferentPageNChangeSorting.csv');
461 
462  $response = $this->executeFrontendSubRequest(
463  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
464  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
465  );
466  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
467  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
468  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
469  }
470 
474  public function ‪moveContentToDifferentPageAndHide(): void
475  {
476  parent::moveContentToDifferentPageAndHide();
477  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentToDifferentPageAndHide.csv');
478 
479  $response = $this->executeFrontendSubRequest(
480  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
481  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
482  );
483  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
484  self::assertThat($responseSections, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
485  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
486  }
487 
492  {
493  parent::moveLocalizedContentToDifferentPage();
494  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveLocalizedContentToDifferentPage.csv');
495 
496  // Check if the regular page does NOT contain the moved record anymore
497  $response = $this->executeFrontendSubRequest(
498  (new InternalRequest())->withPageId(self::VALUE_PageId),
499  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
500  );
501  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
502  self::assertThat($responseSectionsSource, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
503  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3'));
504  $response = $this->executeFrontendSubRequest(
505  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
506  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
507  );
508  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
509  self::assertThat($responseSectionsSource, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
510  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3'));
511 
512  // Check if the target page DOES contain the moved record
513  $response = $this->executeFrontendSubRequest(
514  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
515  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
516  );
517  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
518  self::assertThat($responseSectionsTarget, $this->‪getRequestSectionHasRecordConstraint()
519  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3'));
520 
521  // Also test the translated page, and make sure the translated record is also returned
522  $response = $this->executeFrontendSubRequest(
523  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget)->withLanguageId(self::VALUE_LanguageId),
524  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
525  );
526  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
527  self::assertThat($responseSectionsTarget, $this->‪getRequestSectionHasRecordConstraint()
528  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3'));
529  }
530 
538  public function ‪createPage(): void
539  {
540  parent::createPage();
541  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPage.csv');
542 
543  $response = $this->executeFrontendSubRequest(
544  (new InternalRequest())->withPageId($this->recordIds['newPageId']),
545  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
546  );
547  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
548  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
549  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
550  }
551 
556  {
557  parent::createPageAndSubPageAndSubPageContent();
558  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndSubPageAndSubPageContent.csv');
559 
560  $response = $this->executeFrontendSubRequest(
561  (new InternalRequest())->withPageId($this->recordIds['newSubPageId']),
562  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
563  );
564  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
565  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
566  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1 #1'));
567  }
568 
573  {
574  parent::createPageAndContentWithTcaDefaults();
575  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageNContentWDefaults.csv');
576 
577  // first, assert that page cannot be opened without using backend user (since it's hidden)
578  $response = $this->executeFrontendSubRequest(
579  (new InternalRequest())
580  ->withPageId($this->recordIds['newPageId'])
581  );
582  self::assertSame(404, $response->getStatusCode());
583 
584  // then, assert if preview is possible using a backend user
585  $response = $this->executeFrontendSubRequest(
586  (new InternalRequest())
587  ->withPageId($this->recordIds['newPageId']),
588  (new InternalRequestContext())
589  ->withBackendUserId(self::VALUE_BackendUserId)
590  ->withWorkspaceId(self::VALUE_WorkspaceId)
591  );
592  $responseSections = ResponseContent::fromString((string)$response->getBody())
593  ->getSections();
594  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
595  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
596  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
597  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
598  }
599 
603  public function ‪modifyPage(): void
604  {
605  parent::modifyPage();
606  $this->assertCSVDataSet(__DIR__ . '/DataSet/modifyPage.csv');
607 
608  $response = $this->executeFrontendSubRequest(
609  (new InternalRequest())->withPageId(self::VALUE_PageId),
610  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
611  );
612  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
613  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
614  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
615  }
616 
620  public function ‪deletePage(): void
621  {
622  parent::deletePage();
623  $this->assertCSVDataSet(__DIR__ . '/DataSet/deletePage.csv');
624 
625  $response = $this->executeFrontendSubRequest(
626  (new InternalRequest())->withPageId(self::VALUE_PageId),
627  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
628  );
629  self::assertEquals(404, $response->getStatusCode());
630  }
631 
635  public function ‪deleteContentAndPage(): void
636  {
637  parent::deleteContentAndPage();
638  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContentAndPage.csv');
639 
640  $response = $this->executeFrontendSubRequest(
641  (new InternalRequest())->withPageId(self::VALUE_PageId),
642  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
643  );
644  self::assertEquals(404, $response->getStatusCode());
645  }
646 
652  {
653  // Create localized page and localize content elements first
654  parent::localizePageAndContentsAndDeletePageLocalization();
655  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageAndContentsAndDeletePageLocalization.csv');
656 
657  $response = $this->executeFrontendSubRequest(
658  (new InternalRequest())->withPageId($this->recordIds['localizedPageId']),
659  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
660  );
661  self::assertEquals(404, $response->getStatusCode());
662  }
663 
667  public function ‪localizeNestedPagesAndContents(): void
668  {
669  parent::localizeNestedPagesAndContents();
670  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeNestedPagesAndContents.csv');
671  }
672 
676  public function ‪copyPage(): void
677  {
678  parent::copyPage();
679  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyPage.csv');
680 
681  $response = $this->executeFrontendSubRequest(
682  (new InternalRequest())->withPageId($this->recordIds['newPageId']),
683  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
684  );
685  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
686  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
687  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
688  }
689 
693  public function ‪copyPageFreeMode(): void
694  {
695  parent::copyPageFreeMode();
696  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyPageFreeMode.csv');
697 
698  $response = $this->executeFrontendSubRequest(
699  (new InternalRequest())->withPageId($this->recordIds['newPageId']),
700  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
701  );
702  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
703  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
704  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target'));
705  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
706  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #10'));
707  }
708 
712  public function ‪localizePage(): void
713  {
714  parent::localizePage();
715  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePage.csv');
716 
717  $response = $this->executeFrontendSubRequest(
718  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
719  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
720  );
721  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
722  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
723  ->setTable(self::TABLE_Page)->setField('title')->setValues('[Translate to Dansk:] Relations'));
724  }
725 
729  public function ‪localizePageHiddenHideAtCopyFalse(): void
730  {
731  parent::localizePageHiddenHideAtCopyFalse();
732  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyFalse.csv');
733  }
734 
739  {
740  parent::localizePageNotHiddenHideAtCopyFalse();
741  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyFalse.csv');
742  }
743 
748  {
749  parent::localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset();
750  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset.csv');
751  }
752 
757  {
758  parent::localizePageHiddenHideAtCopyDisableHideAtCopyUnset();
759  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyDisableHideAtCopyUnset.csv');
760  }
761 
766  {
767  parent::localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse();
768  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse.csv');
769  }
770 
775  {
776  parent::localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse();
777  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse.csv');
778  }
779 
784  {
785  parent::localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue();
786  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue.csv');
787  }
788 
793  {
794  parent::localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue();
795  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue.csv');
796  }
797 
801  public function ‪createPageAndChangePageSorting(): void
802  {
803  parent::createPageAndChangePageSorting();
804  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndChangePageSorting.csv');
805  }
806 
810  public function ‪createPageAndMoveCreatedPage(): void
811  {
812  parent::createPageAndMoveCreatedPage();
813  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndMoveCreatedPage.csv');
814  }
815 
819  public function ‪changePageSorting(): void
820  {
821  parent::changePageSorting();
822  $this->assertCSVDataSet(__DIR__ . '/DataSet/changePageSorting.csv');
823 
824  $response = $this->executeFrontendSubRequest(
825  (new InternalRequest())->withPageId(self::VALUE_PageId),
826  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
827  );
828  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
829  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
830  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
831  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
832  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
833  }
834 
838  public function ‪changePageSortingAfterSelf(): void
839  {
840  parent::changePageSortingAfterSelf();
841  $this->assertCSVDataSet(__DIR__ . '/DataSet/changePageSortingAfterSelf.csv');
842 
843  $response = $this->executeFrontendSubRequest(
844  (new InternalRequest())->withPageId(self::VALUE_PageId),
845  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
846  );
847  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
848  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
849  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
850  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
851  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
852  }
853 
857  public function ‪movePageToDifferentPage(): void
858  {
859  parent::movePageToDifferentPage();
860  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPage.csv');
861 
862  $response = $this->executeFrontendSubRequest(
863  (new InternalRequest())->withPageId(self::VALUE_PageId),
864  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
865  );
866  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
867  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
868  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
869  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
870  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
871  }
872 
876  public function ‪movePageToDifferentPageTwice(): void
877  {
878  parent::movePageToDifferentPageTwice();
879  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPageTwice.csv');
880  }
881 
886  {
887  parent::movePageLocalizedToDifferentPageTwice();
888  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedToDifferentPageTwice.csv');
889  }
890 
895  {
896  parent::movePageLocalizedInLiveToDifferentPageTwice();
897  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedInLiveToDifferentPageTwice.csv');
898  }
899 
904  {
905  parent::movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice();
906  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice.csv');
907  }
908 
913  {
914  parent::movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice();
915  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice.csv');
916  }
917 
922  {
923  parent::movePageToDifferentPageAndChangeSorting();
924  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPageNChangeSorting.csv');
925 
926  $response = $this->executeFrontendSubRequest(
927  (new InternalRequest())->withPageId(self::VALUE_PageId),
928  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
929  );
930  $responseSectionsPage = ResponseContent::fromString((string)$response->getBody())->getSections();
931  self::assertThat($responseSectionsPage, $this->‪getRequestSectionHasRecordConstraint()
932  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
933  self::assertThat($responseSectionsPage, $this->‪getRequestSectionHasRecordConstraint()
934  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
935  $response = $this->executeFrontendSubRequest(
936  (new InternalRequest())->withPageId(self::VALUE_PageIdWebsite),
937  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
938  );
939  $responseSectionsWebsite = ResponseContent::fromString((string)$response->getBody())->getSections();
940  self::assertThat($responseSectionsWebsite, $this->‪getRequestSectionStructureHasRecordConstraint()
941  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
942  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Relations', 'DataHandlerTest'));
943  }
944 
951  {
952  parent::movePageToDifferentPageAndCreatePageAfterMovedPage();
953  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPageNCreatePageAfterMovedPage.csv');
954 
955  $response = $this->executeFrontendSubRequest(
956  (new InternalRequest())->withPageId(self::VALUE_PageIdWebsite),
957  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
958  );
959  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
960  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
961  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
962  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Testing #1', 'DataHandlerTest'));
963  }
964 
965  /*************************************
966  * Copying page contents and sub-pages
967  *************************************/
968 
972  public function ‪createContentAndCopyDraftPage(): void
973  {
974  parent::createContentAndCopyDraftPage();
975  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndCopyDraftPage.csv');
976 
977  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
978  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
979  $response = $this->executeFrontendSubRequest(
980  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
981  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
982  );
983  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
984  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
985  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
986  }
987 
992  public function ‪createContentAndCopyLivePage(): void
993  {
994  parent::createContentAndCopyLivePage();
995  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndCopyLivePage.csv');
996 
997  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
998  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
999  self::assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1000  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
1001  $response = $this->executeFrontendSubRequest(
1002  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1003  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1004  );
1005  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1006  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1007  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
1008  }
1009 
1013  public function ‪createPageAndCopyDraftParentPage(): void
1014  {
1015  parent::createPageAndCopyDraftParentPage();
1016  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndCopyDraftParentPage.csv');
1017 
1018  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1019  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1020  $response = $this->executeFrontendSubRequest(
1021  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1022  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1023  );
1024  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1025  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1026  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
1027  }
1028 
1033  public function ‪createPageAndCopyLiveParentPage(): void
1034  {
1035  parent::createPageAndCopyLiveParentPage();
1036  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndCopyLiveParentPage.csv');
1037 
1038  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1039  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1040  self::assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1041  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
1042  $response = $this->executeFrontendSubRequest(
1043  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1044  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1045  );
1046  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1047  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1048  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
1049  }
1050 
1056  {
1057  parent::createNestedPagesAndCopyDraftParentPage();
1058  $this->assertCSVDataSet(__DIR__ . '/DataSet/createNestedPagesAndCopyDraftParentPage.csv');
1059 
1060  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1061  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1062  $response = $this->executeFrontendSubRequest(
1063  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1064  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1065  );
1066  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1067  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1068  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
1069  }
1070 
1076  {
1077  parent::createNestedPagesAndCopyLiveParentPage();
1078  $this->assertCSVDataSet(__DIR__ . '/DataSet/createNestedPagesAndCopyLiveParentPage.csv');
1079 
1080  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1081  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1082  self::assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1083  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
1084  $response = $this->executeFrontendSubRequest(
1085  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1086  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1087  );
1088  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1089  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1090  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
1091  }
1092 
1097  public function ‪deleteContentAndCopyDraftPage(): void
1098  {
1099  parent::deleteContentAndCopyDraftPage();
1100  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContentAndCopyDraftPage.csv');
1101 
1102  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1103  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1104  $response = $this->executeFrontendSubRequest(
1105  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1106  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1107  );
1108  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1109  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1110  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1111  }
1112 
1117  public function ‪deleteContentAndCopyLivePage(): void
1118  {
1119  parent::deleteContentAndCopyLivePage();
1120  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContentAndCopyLivePage.csv');
1121 
1122  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1123  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1124  self::assertThat($responseSectionsLive, $this->‪getRequestSectionHasRecordConstraint()
1125  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1126  $response = $this->executeFrontendSubRequest(
1127  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1128  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1129  );
1130  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1131  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1132  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1133  }
1134 
1140  {
1141  parent::changeContentSortingAndCopyDraftPage();
1142  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingAndCopyDraftPage.csv');
1143 
1144  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1145  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1146  $response = $this->executeFrontendSubRequest(
1147  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1148  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1149  );
1150  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1151  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1152  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
1153  }
1154 
1160  {
1161  parent::changeContentSortingAndCopyLivePage();
1162  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingAndCopyLivePage.csv');
1163 
1164  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1165  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1166  self::assertThat($responseSectionsLive, $this->‪getRequestSectionHasRecordConstraint()
1167  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
1168  $response = $this->executeFrontendSubRequest(
1169  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1170  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1171  );
1172  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1173  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1174  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
1175  }
1176 
1181  public function ‪moveContentAndCopyDraftPage(): void
1182  {
1183  parent::moveContentAndCopyDraftPage();
1184  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentAndCopyDraftPage.csv');
1185 
1186  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1187  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1188  $response = $this->executeFrontendSubRequest(
1189  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1190  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1191  );
1192  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1193  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1194  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1195  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1196  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
1197  }
1198 
1203  public function ‪moveContentAndCopyLivePage(): void
1204  {
1205  parent::moveContentAndCopyLivePage();
1206  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentAndCopyLivePage.csv');
1207 
1208  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1209  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1210  self::assertThat($responseSectionsLive, $this->‪getRequestSectionHasRecordConstraint()
1211  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1212  self::assertThat($responseSectionsLive, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1213  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
1214  $response = $this->executeFrontendSubRequest(
1215  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1216  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1217  );
1218  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1219  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionHasRecordConstraint()
1220  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1221  self::assertThat($responseSectionsDraft, $this->‪getRequestSectionDoesNotHaveRecordConstraint()
1222  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
1223  }
1224 
1229  {
1230  parent::createPlaceholdersAndDeleteDraftParentPage();
1231  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPlaceholdersAndDeleteDraftParentPage.csv');
1232  }
1233 
1239  {
1240  parent::createPlaceholdersAndDeleteLiveParentPage();
1241  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPlaceholdersAndDeleteLiveParentPage.csv');
1242  }
1243 
1249  {
1250  // Create translated page first
1251  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
1252  // Have a hidden live content element
1253  $this->‪setWorkspaceId(0);
1254  $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdThirdLocalized, ['hidden' => 1]);
1255  $this->‪setWorkspaceId(static::VALUE_WorkspaceId);
1256  // Create a non-hidden workspace overlay
1257  $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdThirdLocalized, ['hidden' => 0]);
1258  // Confirm db state is as expected for this scenario
1259  $this->assertCSVDataSet(__DIR__ . '/DataSet/createLocalizedNotHiddenWorkspaceContentHiddenInLive.csv');
1260  // Get the FE preview and verify content element is shown
1261  $response = $this->executeFrontendSubRequest(
1262  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
1263  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1264  );
1265  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
1266  self::assertThat($responseSections, $this->‪getRequestSectionHasRecordConstraint()
1267  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3'));
1268  }
1269 }
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndCopyDraftParentPage
‪createPageAndCopyDraftParentPage()
Definition: ActionTest.php:1013
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPage
‪createPage()
Definition: ActionTest.php:538
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse
‪localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse()
Definition: ActionTest.php:774
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPlaceholdersAndDeleteDraftParentPage
‪createPlaceholdersAndDeleteDraftParentPage()
Definition: ActionTest.php:1228
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue
‪localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue()
Definition: ActionTest.php:792
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyPage
‪copyPage()
Definition: ActionTest.php:676
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify
Definition: ActionTest.php:18
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest
Definition: ActionTest.php:29
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\setUpFrontendSite
‪setUpFrontendSite(int $pageId, array $additionalLanguages=[])
Definition: AbstractDataHandlerActionTestCase.php:127
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionHasRecordConstraint
‪HasRecordConstraint getRequestSectionHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:245
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createNestedPagesAndCopyDraftParentPage
‪createNestedPagesAndCopyDraftParentPage()
Definition: ActionTest.php:1055
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentFromNonDefaultLanguageWithAllContentElements
‪localizeContentFromNonDefaultLanguageWithAllContentElements()
Definition: ActionTest.php:353
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createLocalizedNotHiddenWorkspaceContentHiddenInLive
‪createLocalizedNotHiddenWorkspaceContentHiddenInLive()
Definition: ActionTest.php:1248
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\hideContent
‪hideContent()
Definition: ActionTest.php:110
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionStructureHasRecordConstraint
‪StructureHasRecordConstraint getRequestSectionStructureHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:261
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageHiddenHideAtCopyFalse
‪localizePageHiddenHideAtCopyFalse()
Definition: ActionTest.php:729
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndCopyDraftPage
‪changeContentSortingAndCopyDraftPage()
Definition: ActionTest.php:1139
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentWithEmptyTcaIntegrityColumns
‪localizeContentWithEmptyTcaIntegrityColumns()
Definition: ActionTest.php:296
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePage
‪localizePage()
Definition: ActionTest.php:712
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createNestedPagesAndCopyLiveParentPage
‪createNestedPagesAndCopyLiveParentPage()
Definition: ActionTest.php:1075
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changePageSortingAfterSelf
‪changePageSortingAfterSelf()
Definition: ActionTest.php:838
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice
‪movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice()
Definition: ActionTest.php:903
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndCopyLivePage
‪changeContentSortingAndCopyLivePage()
Definition: ActionTest.php:1159
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContentAndCopyDraftPage
‪deleteContentAndCopyDraftPage()
Definition: ActionTest.php:1097
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Regular\AbstractActionTestCase\VALUE_LanguageId
‪const VALUE_LanguageId
Definition: AbstractActionTestCase.php:42
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndCopyContent
‪createContentAndCopyContent()
Definition: ActionTest.php:59
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAfterSelf
‪changeContentSortingAfterSelf()
Definition: ActionTest.php:379
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeNestedPagesAndContents
‪localizeNestedPagesAndContents()
Definition: ActionTest.php:667
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndDeleteMovedRecord
‪changeContentSortingAndDeleteMovedRecord()
Definition: ActionTest.php:397
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndCopyLiveParentPage
‪createPageAndCopyLiveParentPage()
Definition: ActionTest.php:1033
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentFromNonDefaultLanguage
‪localizeContentFromNonDefaultLanguage()
Definition: ActionTest.php:331
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageLocalizedToDifferentPageTwice
‪movePageLocalizedToDifferentPageTwice()
Definition: ActionTest.php:885
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteLocalizedContentAndDeleteContent
‪deleteLocalizedContentAndDeleteContent()
Definition: ActionTest.php:173
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentAfterMovedContent
‪localizeContentAfterMovedContent()
Definition: ActionTest.php:277
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyContent
‪copyContent()
Definition: ActionTest.php:194
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPageAndCreatePageAfterMovedPage
‪movePageToDifferentPageAndCreatePageAfterMovedPage()
Definition: ActionTest.php:950
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changePageSorting
‪changePageSorting()
Definition: ActionTest.php:819
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContentAndPage
‪deleteContentAndPage()
Definition: ActionTest.php:635
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentToDifferentPageAndHide
‪moveContentToDifferentPageAndHide()
Definition: ActionTest.php:474
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageLocalizedInLiveToDifferentPageTwice
‪movePageLocalizedInLiveToDifferentPageTwice()
Definition: ActionTest.php:894
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Regular\AbstractActionTestCase\VALUE_LanguageIdSecond
‪const VALUE_LanguageIdSecond
Definition: AbstractActionTestCase.php:43
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContentAndCopyLivePage
‪deleteContentAndCopyLivePage()
Definition: ActionTest.php:1117
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveLocalizedContentToDifferentPage
‪moveLocalizedContentToDifferentPage()
Definition: ActionTest.php:491
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue
‪localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue()
Definition: ActionTest.php:783
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse
‪localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse()
Definition: ActionTest.php:765
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\modifyContent
‪modifyContent()
Definition: ActionTest.php:93
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageNotHiddenHideAtCopyFalse
‪localizePageNotHiddenHideAtCopyFalse()
Definition: ActionTest.php:738
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndChangePageSorting
‪createPageAndChangePageSorting()
Definition: ActionTest.php:801
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContent
‪localizeContent()
Definition: ActionTest.php:258
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContents
‪createContents()
Definition: ActionTest.php:42
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndLocalize
‪createContentAndLocalize()
Definition: ActionTest.php:76
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyPageFreeMode
‪copyPageFreeMode()
Definition: ActionTest.php:693
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentAndCopyDraftPage
‪moveContentAndCopyDraftPage()
Definition: ActionTest.php:1181
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPageTwice
‪movePageToDifferentPageTwice()
Definition: ActionTest.php:876
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyContentToLanguage
‪copyContentToLanguage()
Definition: ActionTest.php:211
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\setWorkspaceId
‪setWorkspaceId(int $workspaceId)
Definition: AbstractDataHandlerActionTestCase.php:166
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPlaceholdersAndDeleteLiveParentPage
‪createPlaceholdersAndDeleteLiveParentPage()
Definition: ActionTest.php:1238
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageHiddenHideAtCopyDisableHideAtCopyUnset
‪localizePageHiddenHideAtCopyDisableHideAtCopyUnset()
Definition: ActionTest.php:756
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndCopyDraftPage
‪createContentAndCopyDraftPage()
Definition: ActionTest.php:972
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPageAndChangeSorting
‪movePageToDifferentPageAndChangeSorting()
Definition: ActionTest.php:921
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSorting
‪changeContentSorting()
Definition: ActionTest.php:362
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionDoesNotHaveRecordConstraint
‪DoesNotHaveRecordConstraint getRequestSectionDoesNotHaveRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:253
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deletePage
‪deletePage()
Definition: ActionTest.php:620
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\copyContentToLanguageFromNonDefaultLanguage
‪copyContentToLanguageFromNonDefaultLanguage()
Definition: ActionTest.php:234
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice
‪movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice()
Definition: ActionTest.php:912
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset
‪localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset()
Definition: ActionTest.php:747
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\hideContentAndMoveToDifferentPage
‪hideContentAndMoveToDifferentPage()
Definition: ActionTest.php:127
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentWithHideAtCopy
‪localizeContentWithHideAtCopy()
Definition: ActionTest.php:312
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createContentAndCopyLivePage
‪createContentAndCopyLivePage()
Definition: ActionTest.php:992
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentAndCopyLivePage
‪moveContentAndCopyLivePage()
Definition: ActionTest.php:1203
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndContentWithTcaDefaults
‪createPageAndContentWithTcaDefaults()
Definition: ActionTest.php:572
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\$siteLanguageConfiguration
‪array $siteLanguageConfiguration
Definition: AbstractDataHandlerActionTestCase.php:72
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndSubPageAndSubPageContent
‪createPageAndSubPageAndSubPageContent()
Definition: ActionTest.php:555
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\deleteContent
‪deleteContent()
Definition: ActionTest.php:154
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\modifyPage
‪modifyPage()
Definition: ActionTest.php:603
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\changeContentSortingAndDeleteLiveRecord
‪changeContentSortingAndDeleteLiveRecord()
Definition: ActionTest.php:414
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\movePageToDifferentPage
‪movePageToDifferentPage()
Definition: ActionTest.php:857
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\createPageAndMoveCreatedPage
‪createPageAndMoveCreatedPage()
Definition: ActionTest.php:810
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\verifyCleanReferenceIndex
‪verifyCleanReferenceIndex()
Definition: ActionTest.php:33
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentToDifferentPage
‪moveContentToDifferentPage()
Definition: ActionTest.php:433
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizePageAndContentsAndDeletePageLocalization
‪localizePageAndContentsAndDeletePageLocalization()
Definition: ActionTest.php:651
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\moveContentToDifferentPageAndChangeSorting
‪moveContentToDifferentPageAndChangeSorting()
Definition: ActionTest.php:457
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\AbstractActionTestCase
Definition: AbstractActionTestCase.php:24
‪TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest\localizeContentAfterMovedInLiveContent
‪localizeContentAfterMovedInLiveContent()
Definition: ActionTest.php:286