TYPO3 CMS  TYPO3_6-2
ActionTest.php
Go to the documentation of this file.
1 <?php
3 
17 require_once dirname(dirname(__FILE__)) . '/AbstractActionTestCase.php';
18 
23 
27  protected $assertionDataSetDirectory = 'typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/PublishAll/DataSet/';
28 
37  public function createContents() {
38  parent::createContents();
39  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
40  $this->assertAssertionDataSet('createContents');
41 
42  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
43  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
44  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1', 'Testing #2'));
45  }
46 
52  parent::createContentAndDiscardCreatedContent();
53  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
54  $this->assertAssertionDataSet('createContentNDiscardCreatedContent');
55 
56  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
57  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
58  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
59  }
60 
66  parent::createAndCopyContentAndDiscardCopiedContent();
67  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
68  $this->assertAssertionDataSet('createNCopyContentNDiscardCopiedContent');
69 
70  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
71  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
72  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
73  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
74  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1 (copy 1)'));
75  }
76 
81  public function modifyContent() {
82  parent::modifyContent();
83  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
84  $this->assertAssertionDataSet('modifyContent');
85 
86  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
87  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
88  ->setTable(self::TABLE_Content)->setField('header')->setValues('Testing #1'));
89  }
90 
95  public function deleteContent() {
96  parent::deleteContent();
97  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
98  $this->assertAssertionDataSet('deleteContent');
99 
100  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
101  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
102  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
103  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
104  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
105  }
106 
112  parent::deleteLocalizedContentAndDeleteContent();
113  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
114  $this->assertAssertionDataSet('deleteLocalizedContentNDeleteContent');
115 
116  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections();
117  $this->assertThat($responseSections, $this->getRequestSectionDoesNotHaveRecordConstraint()
118  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #3', '[Translate to Dansk:] Regular Element #3'));
119  }
120 
125  public function copyContent() {
126  parent::copyContent();
127  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
128  $this->assertAssertionDataSet('copyContent');
129 
130  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
131  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
132  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2 (copy 1)'));
133  }
134 
139  public function localizeContent() {
140  parent::localizeContent();
141  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
142  $this->assertAssertionDataSet('localizeContent');
143 
144  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections();
145  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
146  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', '[Translate to Dansk:] Regular Element #2'));
147  }
148 
153  public function changeContentSorting() {
154  parent::changeContentSorting();
155  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
156  $this->assertAssertionDataSet('changeContentSorting');
157 
158  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
159  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
160  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
161  }
162 
167  public function moveContentToDifferentPage() {
168  parent::moveContentToDifferentPage();
169  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
170  $this->assertAssertionDataSet('moveContentToDifferentPage');
171 
172  $responseSectionsSource = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
173  $this->assertThat($responseSectionsSource, $this->getRequestSectionHasRecordConstraint()
174  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1'));
175  $responseSectionsTarget = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0)->getResponseSections();
176  $this->assertThat($responseSectionsTarget, $this->getRequestSectionHasRecordConstraint()
177  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #2'));
178  }
179 
185  parent::moveContentToDifferentPageAndChangeSorting();
186  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
187  $this->assertAssertionDataSet('moveContentToDifferentPageNChangeSorting');
188 
189  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdTarget, 0)->getResponseSections();
190  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
191  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
192  }
193 
202  public function createPage() {
203  parent::createPage();
204  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
205  $this->assertAssertionDataSet('createPage');
206 
207  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0)->getResponseSections();
208  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
209  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
210  }
211 
216  public function modifyPage() {
217  parent::modifyPage();
218  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
219  $this->assertAssertionDataSet('modifyPage');
220 
221  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
222  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
223  ->setTable(self::TABLE_Page)->setField('title')->setValues('Testing #1'));
224  }
225 
230  public function deletePage() {
231  parent::deletePage();
232  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
233  $this->assertAssertionDataSet('deletePage');
234 
235  $response = $this->getFrontendResponse(self::VALUE_PageId, 0, 0, 0, FALSE);
236  $this->assertContains('PageNotFoundException', $response->getError());
237  }
238 
243  public function copyPage() {
244  parent::copyPage();
245  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
246  $this->assertAssertionDataSet('copyPage');
247 
248  $responseSections = $this->getFrontendResponse($this->recordIds['newPageId'], 0)->getResponseSections();
249  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
250  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
251  }
252 
257  public function localizePage() {
258  parent::localizePage();
259  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
260  $this->assertAssertionDataSet('localizePage');
261 
262  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, self::VALUE_LanguageId)->getResponseSections();
263  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
264  ->setTable(self::TABLE_Page)->setField('title')->setValues('[Translate to Dansk:] Relations'));
265  }
266 
271  public function changePageSorting() {
272  parent::changePageSorting();
273  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
274  $this->assertAssertionDataSet('changePageSorting');
275 
276  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
277  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
278  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
279  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
280  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
281  }
282 
287  public function movePageToDifferentPage() {
288  parent::movePageToDifferentPage();
289  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
290  $this->assertAssertionDataSet('movePageToDifferentPage');
291 
292  $responseSections = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
293  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
294  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
295  $this->assertThat($responseSections, $this->getRequestSectionHasRecordConstraint()
296  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
297  }
298 
304  parent::movePageToDifferentPageAndChangeSorting();
305  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
306  $this->assertAssertionDataSet('movePageToDifferentPageNChangeSorting');
307 
308  $responseSectionsPage = $this->getFrontendResponse(self::VALUE_PageId, 0)->getResponseSections();
309  $this->assertThat($responseSectionsPage, $this->getRequestSectionHasRecordConstraint()
310  ->setTable(self::TABLE_Page)->setField('title')->setValues('Relations'));
311  $this->assertThat($responseSectionsPage, $this->getRequestSectionHasRecordConstraint()
312  ->setTable(self::TABLE_Content)->setField('header')->setValues('Regular Element #1', 'Regular Element #2'));
313  $responseSectionsWebsite = $this->getFrontendResponse(self::VALUE_PageIdWebsite, 0)->getResponseSections();
314  $this->assertThat($responseSectionsWebsite, $this->getRequestSectionStructureHasRecordConstraint()
315  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
316  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Relations', 'DataHandlerTest'));
317  }
318 
326  parent::movePageToDifferentPageAndCreatePageAfterMovedPage();
327  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
328  $this->assertAssertionDataSet('movePageToDifferentPageNCreatePageAfterMovedPage');
329 
330  $responseSections = $this->getFrontendResponse(self::VALUE_PageIdWebsite, 0)->getResponseSections();
331  $this->assertThat($responseSections, $this->getRequestSectionStructureHasRecordConstraint()
332  ->setRecordIdentifier(self::TABLE_Page . ':' . self::VALUE_PageIdWebsite)->setRecordField('__pages')
333  ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Testing #1', 'DataHandlerTest'));
334  }
335 
341  // @todo These two log entries could be avoided in DataHandlerHook, but are expected
342  // "[newlog()] Error: You cannot swap versions for a record you do not have access to edit!"
343  $this->expectedErrorLogEntries = 2;
344 
345  parent::createPlaceholdersAndDeleteDraftParentPage();
346  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
347  $this->assertAssertionDataSet('createPlaceholdersAndDeleteDraftParentPage');
348  }
349 
355  parent::createPlaceholdersAndDeleteLiveParentPage();
356  $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
357  $this->assertAssertionDataSet('createPlaceholdersAndDeleteLiveParentPage');
358  }
359 
360 }
getFrontendResponse($pageId, $languageId=0, $backendUserId=0, $workspaceId=0, $failOnFailure=TRUE)