‪TYPO3CMS  ‪main
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 
20 use PHPUnit\Framework\Attributes\Test;
22 use TYPO3\TestingFramework\Core\Functional\Framework\Constraint\RequestSection\DoesNotHaveRecordConstraint;
23 use TYPO3\TestingFramework\Core\Functional\Framework\Constraint\RequestSection\HasRecordConstraint;
24 use TYPO3\TestingFramework\Core\Functional\Framework\Constraint\RequestSection\StructureHasRecordConstraint;
25 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
26 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequestContext;
27 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\ResponseContent;
28 
30 {
31  #[Test]
32  public function ‪verifyCleanReferenceIndex(): void
33  {
34  // The test verifies the imported data set has a clean reference index by the check in tearDown()
35  self::assertTrue(true);
36  }
37 
38  #[Test]
39  public function ‪createContents(): void
40  {
41  parent::createContents();
42  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContents.csv');
43 
44  $response = $this->executeFrontendSubRequest(
45  (new InternalRequest())->withPageId(self::VALUE_PageId),
46  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
47  );
48  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
49  self::assertThat($responseSections, (new HasRecordConstraint())
50  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #2'));
51  }
52 
53  #[Test]
54  public function ‪createContentAndCopyContent(): void
55  {
56  parent::createContentAndCopyContent();
57  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndCopyContent.csv');
58 
59  $response = $this->executeFrontendSubRequest(
60  (new InternalRequest())->withPageId(self::VALUE_PageId),
61  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
62  );
63  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
64  self::assertThat($responseSections, (new HasRecordConstraint())
65  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #1 (copy 1)'));
66  }
67 
68  #[Test]
69  public function ‪createContentAndLocalize(): void
70  {
71  parent::createContentAndLocalize();
72  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndLocalize.csv');
73 
74  $response = $this->executeFrontendSubRequest(
75  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
76  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
77  );
78  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
79  self::assertThat($responseSections, (new HasRecordConstraint())
80  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Testing #1'));
81  }
82 
83  #[Test]
84  public function ‪modifyContent(): void
85  {
86  parent::modifyContent();
87  $this->assertCSVDataSet(__DIR__ . '/DataSet/modifyContent.csv');
88 
89  $response = $this->executeFrontendSubRequest(
90  (new InternalRequest())->withPageId(self::VALUE_PageId),
91  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
92  );
93  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
94  self::assertThat($responseSections, (new HasRecordConstraint())
95  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
96  }
97 
98  #[Test]
99  public function ‪hideContent(): void
100  {
101  parent::hideContent();
102  $this->assertCSVDataSet(__DIR__ . '/DataSet/hideContent.csv');
103 
104  $response = $this->executeFrontendSubRequest(
105  (new InternalRequest())->withPageId(self::VALUE_PageId),
106  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
107  );
108  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
109  self::assertThat($responseSections, (new DoesNotHaveRecordConstraint())
110  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
111  }
112 
113  #[Test]
114  public function ‪hideContentAndMoveToDifferentPage(): void
115  {
116  parent::hideContent();
117  parent::moveContentToDifferentPage();
118  $this->assertCSVDataSet(__DIR__ . '/DataSet/hideContentAndMoveToDifferentPage.csv');
119 
120  $response = $this->executeFrontendSubRequest(
121  (new InternalRequest())->withPageId(self::VALUE_PageId),
122  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
123  );
124  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
125  self::assertThat($responseSectionsSource, (new HasRecordConstraint())
126  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
127  self::assertThat($responseSectionsSource, (new DoesNotHaveRecordConstraint())
128  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
129  $response = $this->executeFrontendSubRequest(
130  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
131  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
132  );
133  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
134  self::assertThat($responseSectionsTarget, (new DoesNotHaveRecordConstraint())
135  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
136  }
137 
138  #[Test]
139  public function ‪deleteContent(): void
140  {
141  parent::deleteContent();
142  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContent.csv');
143 
144  $response = $this->executeFrontendSubRequest(
145  (new InternalRequest())->withPageId(self::VALUE_PageId),
146  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
147  );
148  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
149  self::assertThat($responseSections, (new HasRecordConstraint())
150  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
151  self::assertThat($responseSections, (new DoesNotHaveRecordConstraint())
152  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
153  }
154 
155  #[Test]
157  {
158  // Create translated page first
159  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
160  parent::deleteLocalizedContentAndDeleteContent();
161  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteLocalizedContentNDeleteContent.csv');
162 
163  $response = $this->executeFrontendSubRequest(
164  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
165  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
166  );
167  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
168  self::assertThat($responseSections, (new DoesNotHaveRecordConstraint())
169  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3', '[Translate to Dansk:] Regular Element #3', 'Regular Element #1'));
170  self::assertThat($responseSections, (new HasRecordConstraint())
171  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', 'Regular Element #2'));
172  }
173 
174  #[Test]
175  public function ‪copyContent(): void
176  {
177  parent::copyContent();
178  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyContent.csv');
179 
180  $response = $this->executeFrontendSubRequest(
181  (new InternalRequest())->withPageId(self::VALUE_PageId),
182  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
183  );
184  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
185  self::assertThat($responseSections, (new HasRecordConstraint())
186  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2 (copy 1)'));
187  }
188 
189  #[Test]
190  public function ‪copyContentToLanguage(): void
191  {
192  // Create translated page first
193  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
194  parent::copyContentToLanguage();
195  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyContentToLanguage.csv');
196 
197  // Set up "danish" to not have overlays - "free" mode
199  'test',
200  $this->‪buildSiteConfiguration(1, '/'),
201  [
202  $this->‪buildDefaultLanguageConfiguration('EN', '/'),
203  $this->‪buildLanguageConfiguration('DA', '/da/', [], 'free'),
204  $this->‪buildLanguageConfiguration('DE', '/de/', ['DA', 'EN']),
205  ]
206  );
207 
208  $response = $this->executeFrontendSubRequest(
209  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
210  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
211  );
212  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
213  self::assertThat($responseSections, (new HasRecordConstraint())
214  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3', '[Translate to Dansk:] Regular Element #2'));
215  }
216 
217  #[Test]
219  {
220  // Create translated page first
221  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
222  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageIdSecond);
223  parent::copyContentToLanguageFromNonDefaultLanguage();
224  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyContentToLanguageFromNonDefaultLanguage.csv');
225 
226  // Set up "german" to not have overlays - "free" mode
228  'test',
229  $this->‪buildSiteConfiguration(1, '/'),
230  [
231  $this->‪buildDefaultLanguageConfiguration('EN', '/'),
232  $this->‪buildLanguageConfiguration('DA', '/da/', ['EN']),
233  $this->‪buildLanguageConfiguration('DE', '/de/', [], 'free'),
234  ]
235  );
236 
237  $response = $this->executeFrontendSubRequest(
238  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageIdSecond),
239  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
240  );
241  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
242  self::assertThat($responseSections, (new HasRecordConstraint())
243  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Deutsch:] [Translate to Dansk:] Regular Element #3'));
244  }
245 
246  #[Test]
247  public function ‪localizeContent(): void
248  {
249  // Create translated page first
250  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
251  parent::localizeContent();
252  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContent.csv');
253 
254  $response = $this->executeFrontendSubRequest(
255  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
256  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
257  );
258  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
259  self::assertThat($responseSections, (new HasRecordConstraint())
260  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
261  }
262 
263  #[Test]
264  public function ‪localizeContentAfterMovedContent(): void
265  {
266  parent::localizeContentAfterMovedContent();
267  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentAfterMovedContent.csv');
268  }
269 
270  #[Test]
272  {
273  parent::localizeContentAfterMovedInLiveContent();
274  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentAfterMovedInLiveContent.csv');
275  }
276 
280  #[Test]
282  {
283  parent::localizeContentWithEmptyTcaIntegrityColumns();
284  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentWithEmptyTcaIntegrityColumns.csv');
285  $response = $this->executeFrontendSubRequest(
286  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
287  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
288  );
289  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
290  self::assertThat($responseSections, (new HasRecordConstraint())
291  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
292  }
293 
294  #[Test]
295  public function ‪localizeContentWithHideAtCopy(): void
296  {
297  // Create translated page first
298  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
299  parent::localizeContentWithHideAtCopy();
300  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentWHideAtCopy.csv');
301 
302  $response = $this->executeFrontendSubRequest(
303  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
304  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
305  );
306  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
307  self::assertThat($responseSections, (new HasRecordConstraint())
308  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
309  }
310 
311  #[Test]
313  {
314  // Create translated page first
315  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
316  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageIdSecond);
317  parent::localizeContentFromNonDefaultLanguage();
318 
319  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentFromNonDefaultLanguage.csv');
320 
321  $response = $this->executeFrontendSubRequest(
322  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageIdSecond),
323  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
324  );
325  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
326  self::assertThat($responseSections, (new HasRecordConstraint())
327  ->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'));
328  }
329 
330  #[Test]
332  {
333  parent::localizeContentFromNonDefaultLanguageWithAllContentElements();
334  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeContentFromNonDefaultLanguageWithAllContentElements.csv');
335  }
336 
337  #[Test]
338  public function ‪changeContentSorting(): void
339  {
340  parent::changeContentSorting();
341  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSorting.csv');
342 
343  $response = $this->executeFrontendSubRequest(
344  (new InternalRequest())->withPageId(self::VALUE_PageId),
345  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
346  );
347  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
348  self::assertThat($responseSections, (new HasRecordConstraint())
349  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
350  }
351 
352  #[Test]
353  public function ‪changeContentSortingAfterSelf(): void
354  {
355  parent::changeContentSortingAfterSelf();
356  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingAfterSelf.csv');
357 
358  $response = $this->executeFrontendSubRequest(
359  (new InternalRequest())->withPageId(self::VALUE_PageId),
360  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
361  );
362  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
363  self::assertThat($responseSections, (new HasRecordConstraint())
364  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
365  }
366 
370  #[Test]
372  {
373  parent::changeContentSortingAndDeleteMovedRecord();
374  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingNDeleteMovedRecord.csv');
375 
376  $response = $this->executeFrontendSubRequest(
377  (new InternalRequest())->withPageId(self::VALUE_PageId),
378  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
379  );
380  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
381  self::assertThat($responseSections, (new HasRecordConstraint())
382  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
383  }
384 
385  #[Test]
387  {
388  parent::changeContentSortingAndDeleteLiveRecord();
389  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingNDeleteLiveRecord.csv');
390 
391  $response = $this->executeFrontendSubRequest(
392  (new InternalRequest())->withPageId(self::VALUE_PageId),
393  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
394  );
395  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
396  self::assertThat($responseSections, (new HasRecordConstraint())
397  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
398  self::assertThat($responseSections, (new DoesNotHaveRecordConstraint())
399  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
400  }
401 
402  #[Test]
403  public function ‪moveContentToDifferentPage(): void
404  {
405  parent::moveContentToDifferentPage();
406  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentToDifferentPage.csv');
407 
408  $response = $this->executeFrontendSubRequest(
409  (new InternalRequest())->withPageId(self::VALUE_PageId),
410  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
411  );
412  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
413  self::assertThat($responseSectionsSource, (new HasRecordConstraint())
414  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
415  $response = $this->executeFrontendSubRequest(
416  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
417  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
418  );
419  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
420  self::assertThat($responseSectionsTarget, (new HasRecordConstraint())
421  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
422  }
423 
424  #[Test]
426  {
427  parent::moveContentToDifferentPageAndChangeSorting();
428  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentToDifferentPageNChangeSorting.csv');
429 
430  $response = $this->executeFrontendSubRequest(
431  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
432  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
433  );
434  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
435  self::assertThat($responseSections, (new HasRecordConstraint())
436  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
437  }
438 
439  #[Test]
440  public function ‪moveContentToDifferentPageAndHide(): void
441  {
442  parent::moveContentToDifferentPageAndHide();
443  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentToDifferentPageAndHide.csv');
444 
445  $response = $this->executeFrontendSubRequest(
446  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
447  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
448  );
449  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
450  self::assertThat($responseSections, (new DoesNotHaveRecordConstraint())
451  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
452  }
453 
454  #[Test]
456  {
457  parent::moveLocalizedContentToDifferentPage();
458  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveLocalizedContentToDifferentPage.csv');
459 
460  // Check if the regular page does NOT contain the moved record anymore
461  $response = $this->executeFrontendSubRequest(
462  (new InternalRequest())->withPageId(self::VALUE_PageId),
463  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
464  );
465  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
466  self::assertThat($responseSectionsSource, (new DoesNotHaveRecordConstraint())
467  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3'));
468  $response = $this->executeFrontendSubRequest(
469  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
470  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
471  );
472  $responseSectionsSource = ResponseContent::fromString((string)$response->getBody())->getSections();
473  self::assertThat($responseSectionsSource, (new DoesNotHaveRecordConstraint())
474  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3'));
475 
476  // Check if the target page DOES contain the moved record
477  $response = $this->executeFrontendSubRequest(
478  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget),
479  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
480  );
481  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
482  self::assertThat($responseSectionsTarget, (new HasRecordConstraint())
483  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3'));
484 
485  // Also test the translated page, and make sure the translated record is also returned
486  $response = $this->executeFrontendSubRequest(
487  (new InternalRequest())->withPageId(self::VALUE_PageIdTarget)->withLanguageId(self::VALUE_LanguageId),
488  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
489  );
490  $responseSectionsTarget = ResponseContent::fromString((string)$response->getBody())->getSections();
491  self::assertThat($responseSectionsTarget, (new HasRecordConstraint())
492  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3'));
493  }
494 
495  #[Test]
496  public function ‪createPage(): void
497  {
498  parent::createPage();
499  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPage.csv');
500 
501  $response = $this->executeFrontendSubRequest(
502  (new InternalRequest())->withPageId($this->recordIds['newPageId']),
503  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
504  );
505  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
506  self::assertThat($responseSections, (new HasRecordConstraint())
507  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
508  }
509 
510  #[Test]
512  {
513  parent::createPageAndSubPageAndSubPageContent();
514  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndSubPageAndSubPageContent.csv');
515 
516  $response = $this->executeFrontendSubRequest(
517  (new InternalRequest())->withPageId($this->recordIds['newSubPageId']),
518  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
519  );
520  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
521  self::assertThat($responseSections, (new HasRecordConstraint())
522  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1 #1'));
523  }
524 
525  #[Test]
527  {
528  parent::createPageAndContentWithTcaDefaults();
529  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageNContentWDefaults.csv');
530 
531  // first, assert that page cannot be opened without using backend user (since it's hidden)
532  $response = $this->executeFrontendSubRequest(
533  (new InternalRequest())
534  ->withPageId($this->recordIds['newPageId'])
535  );
536  self::assertSame(404, $response->getStatusCode());
537 
538  // then, assert if preview is possible using a backend user
539  $response = $this->executeFrontendSubRequest(
540  (new InternalRequest())
541  ->withPageId($this->recordIds['newPageId']),
542  (new InternalRequestContext())
543  ->withBackendUserId(self::VALUE_BackendUserId)
544  ->withWorkspaceId(self::VALUE_WorkspaceId)
545  );
546  $responseSections = ResponseContent::fromString((string)$response->getBody())
547  ->getSections();
548  self::assertThat($responseSections, (new HasRecordConstraint())
549  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
550  self::assertThat($responseSections, (new HasRecordConstraint())
551  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
552  }
553 
554  #[Test]
555  public function ‪modifyPage(): void
556  {
557  parent::modifyPage();
558  $this->assertCSVDataSet(__DIR__ . '/DataSet/modifyPage.csv');
559 
560  $response = $this->executeFrontendSubRequest(
561  (new InternalRequest())->withPageId(self::VALUE_PageId),
562  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
563  );
564  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
565  self::assertThat($responseSections, (new HasRecordConstraint())
566  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
567  }
568 
569  #[Test]
570  public function ‪deletePage(): void
571  {
572  parent::deletePage();
573  $this->assertCSVDataSet(__DIR__ . '/DataSet/deletePage.csv');
574 
575  $response = $this->executeFrontendSubRequest(
576  (new InternalRequest())->withPageId(self::VALUE_PageId),
577  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
578  );
579  self::assertEquals(404, $response->getStatusCode());
580  }
581 
582  #[Test]
583  public function ‪deleteContentAndPage(): void
584  {
585  parent::deleteContentAndPage();
586  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContentAndPage.csv');
587 
588  $response = $this->executeFrontendSubRequest(
589  (new InternalRequest())->withPageId(self::VALUE_PageId),
590  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
591  );
592  self::assertEquals(404, $response->getStatusCode());
593  }
594 
595  #[Test]
597  {
598  // Create localized page and localize content elements first
599  parent::localizePageAndContentsAndDeletePageLocalization();
600  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageAndContentsAndDeletePageLocalization.csv');
601 
602  $response = $this->executeFrontendSubRequest(
603  (new InternalRequest())->withPageId($this->recordIds['localizedPageId']),
604  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
605  );
606  self::assertEquals(404, $response->getStatusCode());
607  }
608 
609  #[Test]
610  public function ‪localizeNestedPagesAndContents(): void
611  {
612  parent::localizeNestedPagesAndContents();
613  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizeNestedPagesAndContents.csv');
614  }
615 
616  #[Test]
617  public function ‪copyPage(): void
618  {
619  parent::copyPage();
620  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyPage.csv');
621 
622  $response = $this->executeFrontendSubRequest(
623  (new InternalRequest())->withPageId($this->recordIds['newPageId']),
624  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
625  );
626  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
627  self::assertThat($responseSections, (new HasRecordConstraint())
628  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
629  }
630 
631  #[Test]
632  public function ‪copyPageFreeMode(): void
633  {
634  parent::copyPageFreeMode();
635  $this->assertCSVDataSet(__DIR__ . '/DataSet/copyPageFreeMode.csv');
636 
637  $response = $this->executeFrontendSubRequest(
638  (new InternalRequest())->withPageId($this->recordIds['newPageId']),
639  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
640  );
641  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
642  self::assertThat($responseSections, (new HasRecordConstraint())
643  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target'));
644  self::assertThat($responseSections, (new HasRecordConstraint())
645  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #10'));
646  }
647 
648  #[Test]
649  public function ‪localizePage(): void
650  {
651  parent::localizePage();
652  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePage.csv');
653 
654  $response = $this->executeFrontendSubRequest(
655  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
656  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
657  );
658  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
659  self::assertThat($responseSections, (new HasRecordConstraint())
660  ->setTable(self::TABLE_Page)->setField('title')->setValues('[Translate to Dansk:] Relations'));
661  }
662 
663  #[Test]
664  public function ‪localizePageHiddenHideAtCopyFalse(): void
665  {
666  parent::localizePageHiddenHideAtCopyFalse();
667  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyFalse.csv');
668  }
669 
670  #[Test]
672  {
673  parent::localizePageNotHiddenHideAtCopyFalse();
674  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyFalse.csv');
675  }
676 
677  #[Test]
679  {
680  parent::localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset();
681  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset.csv');
682  }
683 
684  #[Test]
686  {
687  parent::localizePageHiddenHideAtCopyDisableHideAtCopyUnset();
688  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyDisableHideAtCopyUnset.csv');
689  }
690 
691  #[Test]
693  {
694  parent::localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse();
695  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse.csv');
696  }
697 
698  #[Test]
700  {
701  parent::localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse();
702  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse.csv');
703  }
704 
705  #[Test]
707  {
708  parent::localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue();
709  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue.csv');
710  }
711 
712  #[Test]
714  {
715  parent::localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue();
716  $this->assertCSVDataSet(__DIR__ . '/DataSet/localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue.csv');
717  }
718 
719  #[Test]
720  public function ‪createPageAndChangePageSorting(): void
721  {
722  parent::createPageAndChangePageSorting();
723  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndChangePageSorting.csv');
724  }
725 
726  #[Test]
727  public function ‪createPageAndMoveCreatedPage(): void
728  {
729  parent::createPageAndMoveCreatedPage();
730  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndMoveCreatedPage.csv');
731  }
732 
733  #[Test]
734  public function ‪changePageSorting(): void
735  {
736  parent::changePageSorting();
737  $this->assertCSVDataSet(__DIR__ . '/DataSet/changePageSorting.csv');
738 
739  $response = $this->executeFrontendSubRequest(
740  (new InternalRequest())->withPageId(self::VALUE_PageId),
741  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
742  );
743  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
744  self::assertThat($responseSections, (new HasRecordConstraint())
745  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
746  self::assertThat($responseSections, (new HasRecordConstraint())
747  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
748  }
749 
750  #[Test]
751  public function ‪changePageSortingAfterSelf(): void
752  {
753  parent::changePageSortingAfterSelf();
754  $this->assertCSVDataSet(__DIR__ . '/DataSet/changePageSortingAfterSelf.csv');
755 
756  $response = $this->executeFrontendSubRequest(
757  (new InternalRequest())->withPageId(self::VALUE_PageId),
758  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
759  );
760  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
761  self::assertThat($responseSections, (new HasRecordConstraint())
762  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
763  self::assertThat($responseSections, (new HasRecordConstraint())
764  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
765  }
766 
767  #[Test]
768  public function ‪movePageToDifferentPage(): void
769  {
770  parent::movePageToDifferentPage();
771  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPage.csv');
772 
773  $response = $this->executeFrontendSubRequest(
774  (new InternalRequest())->withPageId(self::VALUE_PageId),
775  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
776  );
777  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
778  self::assertThat($responseSections, (new HasRecordConstraint())
779  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
780  self::assertThat($responseSections, (new HasRecordConstraint())
781  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
782  }
783 
784  #[Test]
785  public function ‪movePageToDifferentPageTwice(): void
786  {
787  parent::movePageToDifferentPageTwice();
788  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPageTwice.csv');
789  }
790 
791  #[Test]
793  {
794  parent::movePageLocalizedToDifferentPageTwice();
795  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedToDifferentPageTwice.csv');
796  }
797 
798  #[Test]
800  {
801  parent::movePageLocalizedInLiveToDifferentPageTwice();
802  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedInLiveToDifferentPageTwice.csv');
803  }
804 
805  #[Test]
807  {
808  parent::movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice();
809  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice.csv');
810  }
811 
812  #[Test]
814  {
815  parent::movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice();
816  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice.csv');
817  }
818 
819  #[Test]
821  {
822  parent::movePageToDifferentPageAndChangeSorting();
823  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPageNChangeSorting.csv');
824 
825  $response = $this->executeFrontendSubRequest(
826  (new InternalRequest())->withPageId(self::VALUE_PageId),
827  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
828  );
829  $responseSectionsPage = ResponseContent::fromString((string)$response->getBody())->getSections();
830  self::assertThat($responseSectionsPage, (new HasRecordConstraint())
831  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
832  self::assertThat($responseSectionsPage, (new HasRecordConstraint())
833  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
834  $response = $this->executeFrontendSubRequest(
835  (new InternalRequest())->withPageId(self::VALUE_PageIdWebsite),
836  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
837  );
838  $responseSectionsWebsite = ResponseContent::fromString((string)$response->getBody())->getSections();
839  self::assertThat($responseSectionsWebsite, (new StructureHasRecordConstraint())
840  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
841  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Relations', 'DataHandlerTest'));
842  }
843 
848  #[Test]
850  {
851  parent::movePageToDifferentPageAndCreatePageAfterMovedPage();
852  $this->assertCSVDataSet(__DIR__ . '/DataSet/movePageToDifferentPageNCreatePageAfterMovedPage.csv');
853 
854  $response = $this->executeFrontendSubRequest(
855  (new InternalRequest())->withPageId(self::VALUE_PageIdWebsite),
856  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
857  );
858  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
859  self::assertThat($responseSections, (new StructureHasRecordConstraint())
860  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
861  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Testing #1', 'DataHandlerTest'));
862  }
863 
864  /*************************************
865  * Copying page contents and sub-pages
866  *************************************/
867  #[Test]
868  public function ‪createContentAndCopyDraftPage(): void
869  {
870  parent::createContentAndCopyDraftPage();
871  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndCopyDraftPage.csv');
872 
873  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
874  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
875  $response = $this->executeFrontendSubRequest(
876  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
877  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
878  );
879  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
880  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
881  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
882  }
883 
884  #[Test]
885  public function ‪createContentAndCopyLivePage(): void
886  {
887  parent::createContentAndCopyLivePage();
888  $this->assertCSVDataSet(__DIR__ . '/DataSet/createContentAndCopyLivePage.csv');
889 
890  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
891  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
892  self::assertThat($responseSectionsLive, (new DoesNotHaveRecordConstraint())
893  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
894  $response = $this->executeFrontendSubRequest(
895  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
896  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
897  );
898  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
899  self::assertThat($responseSectionsDraft, (new DoesNotHaveRecordConstraint())
900  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
901  }
902 
903  #[Test]
904  public function ‪createPageAndCopyDraftParentPage(): void
905  {
906  parent::createPageAndCopyDraftParentPage();
907  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndCopyDraftParentPage.csv');
908 
909  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
910  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
911  $response = $this->executeFrontendSubRequest(
912  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
913  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
914  );
915  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
916  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
917  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
918  }
919 
920  #[Test]
921  public function ‪createPageAndCopyLiveParentPage(): void
922  {
923  parent::createPageAndCopyLiveParentPage();
924  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPageAndCopyLiveParentPage.csv');
925 
926  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
927  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
928  self::assertThat($responseSectionsLive, (new DoesNotHaveRecordConstraint())
929  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
930  $response = $this->executeFrontendSubRequest(
931  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
932  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
933  );
934  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
935  self::assertThat($responseSectionsDraft, (new DoesNotHaveRecordConstraint())
936  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
937  }
938 
939  #[Test]
941  {
942  parent::createNestedPagesAndCopyDraftParentPage();
943  $this->assertCSVDataSet(__DIR__ . '/DataSet/createNestedPagesAndCopyDraftParentPage.csv');
944 
945  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
946  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
947  $response = $this->executeFrontendSubRequest(
948  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
949  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
950  );
951  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
952  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
953  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
954  }
955 
956  #[Test]
958  {
959  parent::createNestedPagesAndCopyLiveParentPage();
960  $this->assertCSVDataSet(__DIR__ . '/DataSet/createNestedPagesAndCopyLiveParentPage.csv');
961 
962  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
963  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
964  self::assertThat($responseSectionsLive, (new DoesNotHaveRecordConstraint())
965  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
966  $response = $this->executeFrontendSubRequest(
967  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
968  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
969  );
970  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
971  self::assertThat($responseSectionsDraft, (new DoesNotHaveRecordConstraint())
972  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
973  }
974 
975  #[Test]
976  public function ‪deleteContentAndCopyDraftPage(): void
977  {
978  parent::deleteContentAndCopyDraftPage();
979  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContentAndCopyDraftPage.csv');
980 
981  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
982  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
983  $response = $this->executeFrontendSubRequest(
984  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
985  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
986  );
987  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
988  self::assertThat($responseSectionsDraft, (new DoesNotHaveRecordConstraint())
989  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
990  }
991 
992  #[Test]
993  public function ‪deleteContentAndCopyLivePage(): void
994  {
995  parent::deleteContentAndCopyLivePage();
996  $this->assertCSVDataSet(__DIR__ . '/DataSet/deleteContentAndCopyLivePage.csv');
997 
998  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
999  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1000  self::assertThat($responseSectionsLive, (new HasRecordConstraint())
1001  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1002  $response = $this->executeFrontendSubRequest(
1003  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1004  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1005  );
1006  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1007  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
1008  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1009  }
1010 
1011  #[Test]
1013  {
1014  parent::changeContentSortingAndCopyDraftPage();
1015  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingAndCopyDraftPage.csv');
1016 
1017  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1018  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1019  $response = $this->executeFrontendSubRequest(
1020  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1021  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1022  );
1023  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1024  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
1025  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
1026  }
1027 
1028  #[Test]
1030  {
1031  parent::changeContentSortingAndCopyLivePage();
1032  $this->assertCSVDataSet(__DIR__ . '/DataSet/changeContentSortingAndCopyLivePage.csv');
1033 
1034  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1035  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1036  self::assertThat($responseSectionsLive, (new HasRecordConstraint())
1037  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
1038  $response = $this->executeFrontendSubRequest(
1039  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1040  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1041  );
1042  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1043  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
1044  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
1045  }
1046 
1047  #[Test]
1048  public function ‪moveContentAndCopyDraftPage(): void
1049  {
1050  parent::moveContentAndCopyDraftPage();
1051  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentAndCopyDraftPage.csv');
1052 
1053  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1054  self::assertStringContainsString('The requested page does not exist', (string)$response->getBody());
1055  $response = $this->executeFrontendSubRequest(
1056  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1057  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1058  );
1059  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1060  self::assertThat($responseSectionsDraft, (new DoesNotHaveRecordConstraint())
1061  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1062  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
1063  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
1064  }
1065 
1066  #[Test]
1067  public function ‪moveContentAndCopyLivePage(): void
1068  {
1069  parent::moveContentAndCopyLivePage();
1070  $this->assertCSVDataSet(__DIR__ . '/DataSet/moveContentAndCopyLivePage.csv');
1071 
1072  $response = $this->executeFrontendSubRequest((new InternalRequest())->withPageId($this->recordIds['copiedPageId']));
1073  $responseSectionsLive = ResponseContent::fromString((string)$response->getBody())->getSections();
1074  self::assertThat($responseSectionsLive, (new HasRecordConstraint())
1075  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1076  self::assertThat($responseSectionsLive, (new DoesNotHaveRecordConstraint())
1077  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
1078  $response = $this->executeFrontendSubRequest(
1079  (new InternalRequest())->withPageId($this->recordIds['copiedPageId']),
1080  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1081  );
1082  $responseSectionsDraft = ResponseContent::fromString((string)$response->getBody())->getSections();
1083  self::assertThat($responseSectionsDraft, (new HasRecordConstraint())
1084  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
1085  self::assertThat($responseSectionsDraft, (new DoesNotHaveRecordConstraint())
1086  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #0'));
1087  }
1088 
1089  #[Test]
1091  {
1092  parent::createPlaceholdersAndDeleteDraftParentPage();
1093  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPlaceholdersAndDeleteDraftParentPage.csv');
1094  }
1095 
1096  #[Test]
1098  {
1099  parent::createPlaceholdersAndDeleteLiveParentPage();
1100  $this->assertCSVDataSet(__DIR__ . '/DataSet/createPlaceholdersAndDeleteLiveParentPage.csv');
1101  }
1102 
1103  #[Test]
1105  {
1106  // Create translated page first
1107  $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
1108  // Have a hidden live content element
1109  $this->‪setWorkspaceId(0);
1110  $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdThirdLocalized, ['hidden' => 1]);
1111  $this->‪setWorkspaceId(static::VALUE_WorkspaceId);
1112  // Create a non-hidden workspace overlay
1113  $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdThirdLocalized, ['hidden' => 0]);
1114  // Confirm db state is as expected for this scenario
1115  $this->assertCSVDataSet(__DIR__ . '/DataSet/createLocalizedNotHiddenWorkspaceContentHiddenInLive.csv');
1116  // Get the FE preview and verify content element is shown
1117  $response = $this->executeFrontendSubRequest(
1118  (new InternalRequest())->withPageId(self::VALUE_PageId)->withLanguageId(self::VALUE_LanguageId),
1119  (new InternalRequestContext())->withBackendUserId(self::VALUE_BackendUserId)->withWorkspaceId(self::VALUE_WorkspaceId)
1120  );
1121  $responseSections = ResponseContent::fromString((string)$response->getBody())->getSections();
1122  self::assertThat($responseSections, (new HasRecordConstraint())
1123  ->setTable(self::TABLE_Content)->setField('header')->setValues('[Translate to Dansk:] Regular Element #3'));
1124  }
1125 }
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest
Definition: ActionTest.php:30
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\verifyCleanReferenceIndex
‪verifyCleanReferenceIndex()
Definition: ActionTest.php:32
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildLanguageConfiguration
‪buildLanguageConfiguration(string $identifier, string $base, array $fallbackIdentifiers=[], string $fallbackType=null)
Definition: SiteBasedTestTrait.php:108
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPageAndCopyLiveParentPage
‪createPageAndCopyLiveParentPage()
Definition: ActionTest.php:921
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changePageSorting
‪changePageSorting()
Definition: ActionTest.php:734
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\copyPage
‪copyPage()
Definition: ActionTest.php:617
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify
Definition: ActionTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\moveContentToDifferentPageAndChangeSorting
‪moveContentToDifferentPageAndChangeSorting()
Definition: ActionTest.php:425
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\hideContentAndMoveToDifferentPage
‪hideContentAndMoveToDifferentPage()
Definition: ActionTest.php:114
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\moveContentAndCopyLivePage
‪moveContentAndCopyLivePage()
Definition: ActionTest.php:1067
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice
‪movePageLocalizedInLiveWorkspaceChangedToDifferentPageTwice()
Definition: ActionTest.php:806
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPlaceholdersAndDeleteDraftParentPage
‪createPlaceholdersAndDeleteDraftParentPage()
Definition: ActionTest.php:1090
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageLocalizedInLiveToDifferentPageTwice
‪movePageLocalizedInLiveToDifferentPageTwice()
Definition: ActionTest.php:799
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContentFromNonDefaultLanguageWithAllContentElements
‪localizeContentFromNonDefaultLanguageWithAllContentElements()
Definition: ActionTest.php:331
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\copyPageFreeMode
‪copyPageFreeMode()
Definition: ActionTest.php:632
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContentFromNonDefaultLanguage
‪localizeContentFromNonDefaultLanguage()
Definition: ActionTest.php:312
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\writeSiteConfiguration
‪writeSiteConfiguration(string $identifier, array $site=[], array $languages=[], array $errorHandling=[])
Definition: SiteBasedTestTrait.php:50
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageLocalizedToDifferentPageTwice
‪movePageLocalizedToDifferentPageTwice()
Definition: ActionTest.php:792
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContentAfterMovedContent
‪localizeContentAfterMovedContent()
Definition: ActionTest.php:264
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createNestedPagesAndCopyDraftParentPage
‪createNestedPagesAndCopyDraftParentPage()
Definition: ActionTest.php:940
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageToDifferentPageAndChangeSorting
‪movePageToDifferentPageAndChangeSorting()
Definition: ActionTest.php:820
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse
‪localizePageHiddenHideAtCopyDisableHideAtCopySetToFalse()
Definition: ActionTest.php:699
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\deleteContentAndCopyLivePage
‪deleteContentAndCopyLivePage()
Definition: ActionTest.php:993
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createContentAndCopyDraftPage
‪createContentAndCopyDraftPage()
Definition: ActionTest.php:868
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildSiteConfiguration
‪buildSiteConfiguration(int $rootPageId, string $base='')
Definition: SiteBasedTestTrait.php:88
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changeContentSortingAndDeleteMovedRecord
‪changeContentSortingAndDeleteMovedRecord()
Definition: ActionTest.php:371
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPageAndSubPageAndSubPageContent
‪createPageAndSubPageAndSubPageContent()
Definition: ActionTest.php:511
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset
‪localizePageNotHiddenHideAtCopyDisableHideAtCopyUnset()
Definition: ActionTest.php:678
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\moveContentToDifferentPage
‪moveContentToDifferentPage()
Definition: ActionTest.php:403
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\moveLocalizedContentToDifferentPage
‪moveLocalizedContentToDifferentPage()
Definition: ActionTest.php:455
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageNotHiddenHideAtCopyFalse
‪localizePageNotHiddenHideAtCopyFalse()
Definition: ActionTest.php:671
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\deleteContent
‪deleteContent()
Definition: ActionTest.php:139
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePage
‪localizePage()
Definition: ActionTest.php:649
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\hideContent
‪hideContent()
Definition: ActionTest.php:99
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\AbstractDataHandlerActionTestCase\setWorkspaceId
‪setWorkspaceId(int $workspaceId)
Definition: AbstractDataHandlerActionTestCase.php:76
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createContentAndLocalize
‪createContentAndLocalize()
Definition: ActionTest.php:69
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContent
‪localizeContent()
Definition: ActionTest.php:247
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContentWithEmptyTcaIntegrityColumns
‪localizeContentWithEmptyTcaIntegrityColumns()
Definition: ActionTest.php:281
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\deleteContentAndPage
‪deleteContentAndPage()
Definition: ActionTest.php:583
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageAndContentsAndDeletePageLocalization
‪localizePageAndContentsAndDeletePageLocalization()
Definition: ActionTest.php:596
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPageAndCopyDraftParentPage
‪createPageAndCopyDraftParentPage()
Definition: ActionTest.php:904
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createLocalizedNotHiddenWorkspaceContentHiddenInLive
‪createLocalizedNotHiddenWorkspaceContentHiddenInLive()
Definition: ActionTest.php:1104
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createContentAndCopyLivePage
‪createContentAndCopyLivePage()
Definition: ActionTest.php:885
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\copyContentToLanguage
‪copyContentToLanguage()
Definition: ActionTest.php:190
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createContentAndCopyContent
‪createContentAndCopyContent()
Definition: ActionTest.php:54
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\moveContentToDifferentPageAndHide
‪moveContentToDifferentPageAndHide()
Definition: ActionTest.php:440
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageToDifferentPageTwice
‪movePageToDifferentPageTwice()
Definition: ActionTest.php:785
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageToDifferentPageAndCreatePageAfterMovedPage
‪movePageToDifferentPageAndCreatePageAfterMovedPage()
Definition: ActionTest.php:849
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\deletePage
‪deletePage()
Definition: ActionTest.php:570
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContentAfterMovedInLiveContent
‪localizeContentAfterMovedInLiveContent()
Definition: ActionTest.php:271
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPageAndChangePageSorting
‪createPageAndChangePageSorting()
Definition: ActionTest.php:720
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice
‪movePageLocalizedInLiveWorkspaceDeletedToDifferentPageTwice()
Definition: ActionTest.php:813
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changeContentSortingAfterSelf
‪changeContentSortingAfterSelf()
Definition: ActionTest.php:353
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changePageSortingAfterSelf
‪changePageSortingAfterSelf()
Definition: ActionTest.php:751
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changeContentSorting
‪changeContentSorting()
Definition: ActionTest.php:338
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createContents
‪createContents()
Definition: ActionTest.php:39
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue
‪localizePageNotHiddenHideAtCopyDisableHideAtCopySetToTrue()
Definition: ActionTest.php:706
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\copyContent
‪copyContent()
Definition: ActionTest.php:175
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changeContentSortingAndCopyLivePage
‪changeContentSortingAndCopyLivePage()
Definition: ActionTest.php:1029
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\moveContentAndCopyDraftPage
‪moveContentAndCopyDraftPage()
Definition: ActionTest.php:1048
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue
‪localizePageHiddenHideAtCopyDisableHideAtCopySetToTrue()
Definition: ActionTest.php:713
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPlaceholdersAndDeleteLiveParentPage
‪createPlaceholdersAndDeleteLiveParentPage()
Definition: ActionTest.php:1097
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changeContentSortingAndDeleteLiveRecord
‪changeContentSortingAndDeleteLiveRecord()
Definition: ActionTest.php:386
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPageAndContentWithTcaDefaults
‪createPageAndContentWithTcaDefaults()
Definition: ActionTest.php:526
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPage
‪createPage()
Definition: ActionTest.php:496
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeContentWithHideAtCopy
‪localizeContentWithHideAtCopy()
Definition: ActionTest.php:295
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse
‪localizePageNotHiddenHideAtCopyDisableHideAtCopySetToFalse()
Definition: ActionTest.php:692
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildDefaultLanguageConfiguration
‪buildDefaultLanguageConfiguration(string $identifier, string $base)
Definition: SiteBasedTestTrait.php:98
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\deleteLocalizedContentAndDeleteContent
‪deleteLocalizedContentAndDeleteContent()
Definition: ActionTest.php:156
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\AbstractActionWorkspacesTestCase
Definition: AbstractActionWorkspacesTestCase.php:21
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createNestedPagesAndCopyLiveParentPage
‪createNestedPagesAndCopyLiveParentPage()
Definition: ActionTest.php:957
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizeNestedPagesAndContents
‪localizeNestedPagesAndContents()
Definition: ActionTest.php:610
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\movePageToDifferentPage
‪movePageToDifferentPage()
Definition: ActionTest.php:768
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\deleteContentAndCopyDraftPage
‪deleteContentAndCopyDraftPage()
Definition: ActionTest.php:976
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageHiddenHideAtCopyFalse
‪localizePageHiddenHideAtCopyFalse()
Definition: ActionTest.php:664
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\copyContentToLanguageFromNonDefaultLanguage
‪copyContentToLanguageFromNonDefaultLanguage()
Definition: ActionTest.php:218
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\createPageAndMoveCreatedPage
‪createPageAndMoveCreatedPage()
Definition: ActionTest.php:727
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\localizePageHiddenHideAtCopyDisableHideAtCopyUnset
‪localizePageHiddenHideAtCopyDisableHideAtCopyUnset()
Definition: ActionTest.php:685
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\modifyPage
‪modifyPage()
Definition: ActionTest.php:555
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\modifyContent
‪modifyContent()
Definition: ActionTest.php:84
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\Regular\WorkspacesModify\ActionTest\changeContentSortingAndCopyDraftPage
‪changeContentSortingAndCopyDraftPage()
Definition: ActionTest.php:1012