TYPO3  7.6
Regular/Modify/ActionTest.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify;
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
21 {
25  protected $assertionDataSetDirectory = 'typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Modify/DataSet/';
26 
35  public function createContents()
36  {
37  parent::createContents();
38  $this->assertAssertionDataSet('createContents');
39 
40  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
41  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
42  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #2'));
43  }
44 
50  {
51  parent::createContentAndDiscardCreatedContent();
52  $this->assertAssertionDataSet('createContentNDiscardCreatedContent');
53 
54  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
55  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
56  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
57  }
58 
64  {
65  parent::createAndCopyContentAndDiscardCopiedContent();
66  $this->assertAssertionDataSet('createNCopyContentNDiscardCopiedContent');
67 
68  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
69  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
70  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
71  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
72  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1 (copy 1)'));
73  }
74 
79  public function modifyContent()
80  {
81  parent::modifyContent();
82  $this->assertAssertionDataSet('modifyContent');
83 
84  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
85  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
86  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
87  }
88 
93  public function deleteContent()
94  {
95  parent::deleteContent();
96  $this->assertAssertionDataSet('deleteContent');
97 
98  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
99  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
100  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
101  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
102  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
103  }
104 
110  {
111  parent::deleteLocalizedContentAndDeleteContent();
112  $this->assertAssertionDataSet('deleteLocalizedContentNDeleteContent');
113 
114  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
115  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
116  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3', '[Translate to Dansk:] Regular Element #3'));
117  }
118 
123  public function copyContent()
124  {
125  parent::copyContent();
126  $this->assertAssertionDataSet('copyContent');
127 
128  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
129  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
130  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2 (copy 1)'));
131  }
132 
137  public function localizeContent()
138  {
139  parent::localizeContent();
140  $this->assertAssertionDataSet('localizeContent');
141 
142  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
143  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
144  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
145  }
146 
151  public function changeContentSorting()
152  {
153  parent::changeContentSorting();
154  $this->assertAssertionDataSet('changeContentSorting');
155 
156  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
157  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
158  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
159  }
160 
166  {
167  parent::changeContentSortingAndDeleteMovedRecord();
168  $this->assertAssertionDataSet('changeContentSortingNDeleteMovedRecord');
169 
170  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
171  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
172  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
173  }
174 
180  {
181  parent::changeContentSortingAndDeleteLiveRecord();
182  $this->assertAssertionDataSet('changeContentSortingNDeleteLiveRecord');
183 
184  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
185  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
186  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
187  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
188  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
189  }
190 
195  public function moveContentToDifferentPage()
196  {
197  parent::moveContentToDifferentPage();
198  $this->assertAssertionDataSet('moveContentToDifferentPage');
199 
200  $responseSectionsSource = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
201  $this->assertThat($responseSectionsSource, $this->getRequestSectionHasRecordConstraint()
202  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
203  $responseSectionsTarget = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
204  $this->assertThat($responseSectionsTarget, $this->getRequestSectionHasRecordConstraint()
205  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
206  }
207 
213  {
214  parent::moveContentToDifferentPageAndChangeSorting();
215  $this->assertAssertionDataSet('moveContentToDifferentPageNChangeSorting');
216 
217  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
218  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
219  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
220  }
221 
230  public function createPage()
231  {
232  parent::createPage();
233  $this->assertAssertionDataSet('createPage');
234 
235  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
236  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
237  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
238  }
239 
244  public function modifyPage()
245  {
246  parent::modifyPage();
247  $this->assertAssertionDataSet('modifyPage');
248 
249  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
250  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
251  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
252  }
253 
258  public function deletePage()
259  {
260  parent::deletePage();
261  $this->assertAssertionDataSet('deletePage');
262 
263  $response = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId, false);
264  $this->assertContains('RuntimeException', $response->getError());
265  }
266 
271  public function copyPage()
272  {
273  parent::copyPage();
274  $this->assertAssertionDataSet('copyPage');
275 
276  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
277  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
278  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
279  }
280 
285  public function localizePage()
286  {
287  parent::localizePage();
288  $this->assertAssertionDataSet('localizePage');
289 
290  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
291  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
292  ->setTable(self::TABLE_Page)->setField('title')->setValues('[Translate to Dansk:] Relations'));
293  }
294 
299  public function changePageSorting()
300  {
301  parent::changePageSorting();
302  $this->assertAssertionDataSet('changePageSorting');
303 
304  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
305  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
306  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
307  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
308  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
309  }
310 
315  public function movePageToDifferentPage()
316  {
317  parent::movePageToDifferentPage();
318  $this->assertAssertionDataSet('movePageToDifferentPage');
319 
320  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
321  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
322  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
323  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
324  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
325  }
326 
332  {
333  parent::movePageToDifferentPageAndChangeSorting();
334  $this->assertAssertionDataSet('movePageToDifferentPageNChangeSorting');
335 
336  $responseSectionsPage = $this->getFrontendResponse(self::VALUE_PageId, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
337  $this->assertThat($responseSectionsPage, $this->getRequestSectionHasRecordConstraint()
338  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
339  $this->assertThat($responseSectionsPage, $this->getRequestSectionHasRecordConstraint()
340  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
341  $responseSectionsWebsite = $this->getFrontendResponse(self::VALUE_PageIdWebsite, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
342  $this->assertThat($responseSectionsWebsite, $this->getRequestSectionStructureHasRecordConstraint()
343  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
344  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Relations', 'DataHandlerTest'));
345  }
346 
354  {
355  parent::movePageToDifferentPageAndCreatePageAfterMovedPage();
356  $this->assertAssertionDataSet('movePageToDifferentPageNCreatePageAfterMovedPage');
357 
358  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdWebsite, 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
359  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
360  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
361  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Testing #1', 'DataHandlerTest'));
362  }
363 
369  {
370  parent::createContentAndCopyDraftPage();
371  $this->assertAssertionDataSet('createContentAndCopyDraftPage');
372 
373  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
374  $this->assertThat($responseSectionsLive, $this->getRequestSectionDoesNotHaveRecordConstraint()
375  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
376  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
377  $this->assertThat($responseSectionsDraft, $this->getRequestSectionHasRecordConstraint()
378  ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
379  }
380 
386  {
387  parent::createContentAndCopyLivePage();
388  $this->assertAssertionDataSet('createContentAndCopyLivePage');
389 
390 // $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
391 // $this->assertThat($responseSectionsLive, $this->getRequestSectionDoesNotHaveRecordConstraint()
392 // ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
393 // $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
394 // $this->assertThat($responseSectionsDraft, $this->getRequestSectionDoesNotHaveRecordConstraint()
395 // ->setTable(static::TABLE_Content)->setField('header')->setValues('Testing #1'));
396  }
397 
403  {
404  parent::createPageAndCopyDraftParentPage();
405  $this->assertAssertionDataSet('createPageAndCopyDraftParentPage');
406 
407  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
408  $this->assertThat($responseSectionsLive, $this->getRequestSectionDoesNotHaveRecordConstraint()
409  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
410  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
411  $this->assertThat($responseSectionsDraft, $this->getRequestSectionHasRecordConstraint()
412  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
413  }
414 
420  {
421  parent::createPageAndCopyLiveParentPage();
422  $this->assertAssertionDataSet('createPageAndCopyLiveParentPage');
423 
424 // $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
425 // $this->assertThat($responseSectionsLive, $this->getRequestSectionDoesNotHaveRecordConstraint()
426 // ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
427 // $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, self::VALUE_BackendUserId, self::VALUE_WorkspaceId)->getResponseSections();
428 // $this->assertThat($responseSectionsDraft, $this->getRequestSectionDoesNotHaveRecordConstraint()
429 // ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
430  }
431 
437  {
438  parent::createNestedPagesAndCopyDraftParentPage();
439  $this->assertAssertionDataSet('createNestedPagesAndCopyDraftParentPage');
440 
441  $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
442  $this->assertThat($responseSectionsLive, $this->getRequestSectionDoesNotHaveRecordConstraint()
443  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
444  $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
445  $this->assertThat($responseSectionsDraft, $this->getRequestSectionHasRecordConstraint()
446  ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
447  }
448 
454  {
455  parent::createNestedPagesAndCopyLiveParentPage();
456  $this->assertAssertionDataSet('createNestedPagesAndCopyLiveParentPage');
457 
458 // $responseSectionsLive = $this->getFrontendResponse($this->recordIds['copiedPageId'])->getResponseSections();
459 // $this->assertThat($responseSectionsLive, $this->getRequestSectionDoesNotHaveRecordConstraint()
460 // ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
461 // $responseSectionsDraft = $this->getFrontendResponse($this->recordIds['copiedPageId'], 0, static::VALUE_BackendUserId, static::VALUE_WorkspaceId)->getResponseSections();
462 // $this->assertThat($responseSectionsDraft, $this->getRequestSectionDoesNotHaveRecordConstraint()
463 // ->setTable(static::TABLE_Page)->setField('title')->setValues('Testing #1'));
464  }
465 
466 }