‪TYPO3CMS  ‪main
AbstractActionTestCase.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 
22 
24 {
26 
27  protected const ‪VALUE_PageId = 89;
28  protected const ‪VALUE_PageIdTarget = 90;
29  protected const ‪VALUE_PageIdWebsite = 1;
30  protected const ‪VALUE_ContentIdFirst = 330;
31  protected const ‪VALUE_ContentIdLast = 331;
32  protected const ‪VALUE_FileIdFirst = 1;
33  protected const ‪VALUE_FileIdLast = 21;
34  protected const ‪VALUE_LanguageId = 1;
35 
39  protected const ‪VALUE_FileReferenceContentLastFileFirst = 129;
40 
41  protected const ‪TABLE_Page = 'pages';
42  protected const ‪TABLE_Content = 'tt_content';
43  protected const ‪TABLE_File = 'sys_file';
44  protected const ‪TABLE_FileMetadata = 'sys_file_metadata';
45  protected const ‪TABLE_FileReference = 'sys_file_reference';
46 
47  protected const ‪FIELD_ContentImage = 'image';
48  protected const ‪FIELD_FileReferenceImage = 'uid_local';
49 
50  protected const ‪SCENARIO_DataSet = __DIR__ . '/DataSet/ImportDefault.csv';
51 
52  protected function ‪setUp(): void
53  {
54  parent::setUp();
55  // Show copied pages records in frontend request
56  ‪$GLOBALS['TCA']['pages']['ctrl']['hideAtCopy'] = false;
57  // Show copied tt_content records in frontend request
58  ‪$GLOBALS['TCA']['tt_content']['ctrl']['hideAtCopy'] = false;
59  $this->importCSVDataSet(static::SCENARIO_DataSet);
60  $this->importCSVDataSet(__DIR__ . '/../../Fixtures/sys_file_storage.csv');
62  'test',
63  $this->‪buildSiteConfiguration(1, '/'),
64  [
65  $this->‪buildDefaultLanguageConfiguration('EN', '/'),
66  $this->‪buildLanguageConfiguration('DA', '/da/', ['EN']),
67  $this->‪buildLanguageConfiguration('DE', '/de/', ['DA', 'EN']),
68  ]
69  );
70  $this->setUpFrontendRootPage(1, ['EXT:core/Tests/Functional/Fixtures/Frontend/JsonRenderer.typoscript']);
71  }
72 
80  public function ‪modifyContent(): void
81  {
82  $this->actionService->modifyRecord(self::TABLE_Content, self::VALUE_ContentIdLast, ['header' => 'Testing #1']);
83  }
84 
85  public function ‪deleteContent(): void
86  {
87  $this->actionService->deleteRecord(self::TABLE_Content, self::VALUE_ContentIdLast);
88  }
89 
90  public function ‪copyContent(): void
91  {
92  $newTableIds = $this->actionService->copyRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageId);
93  $this->recordIds['copiedContentId'] = $newTableIds[‪self::TABLE_Content][‪self::VALUE_ContentIdLast];
94  }
95 
99  public function ‪copyContentToLanguage(): void
100  {
101  $newTableIds = $this->actionService->copyRecordToLanguage(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_LanguageId);
102  $this->recordIds['localizedContentId'] = $newTableIds[‪self::TABLE_Content][‪self::VALUE_ContentIdLast];
103  }
104 
105  public function ‪localizeContent(): void
106  {
107  // Create translated page first
108  $newTableIds = $this->actionService->copyRecordToLanguage(self::TABLE_Page, self::VALUE_PageId, self::VALUE_LanguageId);
109  $this->recordIds['localizedPageId'] = $newTableIds[‪self::TABLE_Page][‪self::VALUE_PageId];
110  $newTableIds = $this->actionService->localizeRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_LanguageId);
111  $this->recordIds['localizedContentId'] = $newTableIds[‪self::TABLE_Content][‪self::VALUE_ContentIdLast];
112  }
113 
114  public function ‪changeContentSorting(): void
115  {
116  $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, -self::VALUE_ContentIdLast);
117  }
118 
124  public function ‪moveContentToDifferentPage()
125  {
126  return $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageIdTarget);
127  }
128 
129  public function ‪moveContentToDifferentPageAndChangeSorting(): void
130  {
131  $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdLast, self::VALUE_PageIdTarget);
132  $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, -self::VALUE_ContentIdLast);
133  }
134 
135  public function ‪createContentWithFileReference(): void
136  {
137  $newTableIds = $this->actionService->createNewRecords(
138  self::VALUE_PageId,
139  [
140  self::TABLE_Content => ['header' => 'Testing #1', self::FIELD_ContentImage => '__nextUid'],
141  self::TABLE_FileReference => ['title' => 'Image #1', self::FIELD_FileReferenceImage => self::VALUE_FileIdFirst],
142  ]
143  );
144  $this->recordIds['newContentId'] = $newTableIds[‪self::TABLE_Content][0];
145  }
146 
147  public function ‪modifyContentWithFileReference(): void
148  {
149  $this->actionService->modifyRecords(
150  self::VALUE_PageId,
151  [
152  self::TABLE_Content => ['uid' => self::VALUE_ContentIdLast, 'header' => 'Testing #1', self::FIELD_ContentImage => self::VALUE_FileReferenceContentLastFileLast . ',' . self::VALUE_FileReferenceContentLastFileFirst],
153  self::TABLE_FileReference => ['uid' => self::VALUE_FileReferenceContentLastFileFirst, 'title' => 'Image #1'],
154  ]
155  );
156  }
157 
158  public function ‪modifyContentAndAddFileReference(): void
159  {
160  $this->actionService->modifyRecords(
161  self::VALUE_PageId,
162  [
163  self::TABLE_Content => ['uid' => self::VALUE_ContentIdLast, self::FIELD_ContentImage => self::VALUE_FileReferenceContentLastFileLast . ',' . self::VALUE_FileReferenceContentLastFileFirst . ',__nextUid'],
164  self::TABLE_FileReference => ['uid' => '__NEW', 'title' => 'Image #3', self::FIELD_FileReferenceImage => self::VALUE_FileIdFirst],
165  ]
166  );
167  }
168 
169  public function ‪modifyContentAndDeleteFileReference(): void
170  {
171  $this->actionService->modifyRecord(
172  self::TABLE_Content,
173  self::VALUE_ContentIdLast,
174  [self::FIELD_ContentImage => self::VALUE_FileReferenceContentLastFileFirst],
175  [self::TABLE_FileReference => [self::VALUE_FileReferenceContentLastFileLast]]
176  );
177  }
178 
179  public function ‪modifyContentAndDeleteAllFileReference(): void
180  {
181  $this->actionService->modifyRecord(
182  self::TABLE_Content,
183  self::VALUE_ContentIdLast,
184  [self::FIELD_ContentImage => ''],
185  [self::TABLE_FileReference => [self::VALUE_FileReferenceContentLastFileFirst, self::VALUE_FileReferenceContentLastFileLast]]
186  );
187  }
188 
190  {
191  // Create content element with a file reference
192  $newTableIds = $this->actionService->createNewRecords(
193  self::VALUE_PageId,
194  [
195  self::TABLE_Content => ['header' => 'Testing #1', self::FIELD_ContentImage => '__nextUid'],
196  self::TABLE_FileReference => ['title' => 'Image #1', self::FIELD_FileReferenceImage => self::VALUE_FileIdFirst],
197  ]
198  );
199  $this->recordIds['newContentId'] = $newTableIds[‪self::TABLE_Content][0];
200  $this->recordIds['newSysFileReference'] = $newTableIds[‪self::TABLE_FileReference][0];
201  // Delete the file reference again, but keep the content element
202  $this->actionService->modifyRecord(
203  self::TABLE_Content,
204  $this->recordIds['newContentId'],
205  [self::FIELD_ContentImage => ''],
206  [self::TABLE_FileReference => [$this->recordIds['newSysFileReference']]]
207  );
208  }
209 }
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\modifyContentAndDeleteFileReference
‪modifyContentAndDeleteFileReference()
Definition: AbstractActionTestCase.php:168
‪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\FAL\AbstractActionTestCase\VALUE_LanguageId
‪const VALUE_LanguageId
Definition: AbstractActionTestCase.php:33
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_FileReferenceContentFirstFileFirst
‪const VALUE_FileReferenceContentFirstFileFirst
Definition: AbstractActionTestCase.php:35
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_ContentIdFirst
‪const VALUE_ContentIdFirst
Definition: AbstractActionTestCase.php:29
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_FileIdLast
‪const VALUE_FileIdLast
Definition: AbstractActionTestCase.php:32
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\TABLE_File
‪const TABLE_File
Definition: AbstractActionTestCase.php:42
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait
Definition: SiteBasedTestTrait.php:37
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\copyContentToLanguage
‪copyContentToLanguage()
Definition: AbstractActionTestCase.php:98
‪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\FAL\AbstractActionTestCase\createContentWithFileReference
‪createContentWithFileReference()
Definition: AbstractActionTestCase.php:134
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildSiteConfiguration
‪buildSiteConfiguration(int $rootPageId, string $base='')
Definition: SiteBasedTestTrait.php:88
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_ContentIdLast
‪const VALUE_ContentIdLast
Definition: AbstractActionTestCase.php:30
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\modifyContentWithFileReference
‪modifyContentWithFileReference()
Definition: AbstractActionTestCase.php:146
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\TABLE_FileReference
‪const TABLE_FileReference
Definition: AbstractActionTestCase.php:44
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\modifyContentAndAddFileReference
‪modifyContentAndAddFileReference()
Definition: AbstractActionTestCase.php:157
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_PageIdWebsite
‪const VALUE_PageIdWebsite
Definition: AbstractActionTestCase.php:28
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\TABLE_Content
‪const TABLE_Content
Definition: AbstractActionTestCase.php:41
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\AbstractDataHandlerActionTestCase
Definition: AbstractDataHandlerActionTestCase.php:37
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\localizeContent
‪localizeContent()
Definition: AbstractActionTestCase.php:104
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase
Definition: AbstractActionTestCase.php:24
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\FIELD_ContentImage
‪const FIELD_ContentImage
Definition: AbstractActionTestCase.php:46
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_FileIdFirst
‪const VALUE_FileIdFirst
Definition: AbstractActionTestCase.php:31
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\TABLE_FileMetadata
‪const TABLE_FileMetadata
Definition: AbstractActionTestCase.php:43
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL
Definition: AbstractActionTestCase.php:18
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\TABLE_Page
‪const TABLE_Page
Definition: AbstractActionTestCase.php:40
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\deleteContent
‪deleteContent()
Definition: AbstractActionTestCase.php:84
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\modifyContentAndDeleteAllFileReference
‪modifyContentAndDeleteAllFileReference()
Definition: AbstractActionTestCase.php:178
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\createContentWithFileReferenceAndDeleteFileReference
‪createContentWithFileReferenceAndDeleteFileReference()
Definition: AbstractActionTestCase.php:188
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_FileReferenceContentLastFileLast
‪const VALUE_FileReferenceContentLastFileLast
Definition: AbstractActionTestCase.php:37
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\moveContentToDifferentPageAndChangeSorting
‪moveContentToDifferentPageAndChangeSorting()
Definition: AbstractActionTestCase.php:128
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\changeContentSorting
‪changeContentSorting()
Definition: AbstractActionTestCase.php:113
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_FileReferenceContentFirstFileLast
‪const VALUE_FileReferenceContentFirstFileLast
Definition: AbstractActionTestCase.php:36
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\setUp
‪setUp()
Definition: AbstractActionTestCase.php:51
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\FIELD_FileReferenceImage
‪const FIELD_FileReferenceImage
Definition: AbstractActionTestCase.php:47
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\copyContent
‪copyContent()
Definition: AbstractActionTestCase.php:89
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\SCENARIO_DataSet
‪const SCENARIO_DataSet
Definition: AbstractActionTestCase.php:49
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildDefaultLanguageConfiguration
‪buildDefaultLanguageConfiguration(string $identifier, string $base)
Definition: SiteBasedTestTrait.php:98
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_PageId
‪const VALUE_PageId
Definition: AbstractActionTestCase.php:26
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\modifyContent
‪modifyContent()
Definition: AbstractActionTestCase.php:79
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_PageIdTarget
‪const VALUE_PageIdTarget
Definition: AbstractActionTestCase.php:27
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\moveContentToDifferentPage
‪mixed moveContentToDifferentPage()
Definition: AbstractActionTestCase.php:123
‪TYPO3\CMS\Core\Tests\Functional\DataScenarios\FAL\AbstractActionTestCase\VALUE_FileReferenceContentLastFileFirst
‪const VALUE_FileReferenceContentLastFileFirst
Definition: AbstractActionTestCase.php:38