‪TYPO3CMS  11.5
WorkspaceServiceTest.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 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
23 
27 class ‪WorkspaceServiceTest extends FunctionalTestCase
28 {
29  protected ‪$coreExtensionsToLoad = ['workspaces'];
30 
34  protected function ‪setUp(): void
35  {
36  parent::setUp();
37  $this->setUpBackendUserFromFixture(1);
39  $this->importCSVDataSet(__DIR__ . '/../Fixtures/sys_workspace.csv');
40  }
41 
45  public function ‪emptyWorkspaceReturnsEmptyArray(): void
46  {
47  $service = new ‪WorkspaceService();
48  $result = $service->selectVersionsInWorkspace(90);
49  self::assertEmpty($result, 'The workspace 90 contains no changes and the result was supposed to be empty');
50  self::assertIsArray($result, 'Even the empty result from workspace 90 is supposed to be an array');
51  }
52 
57  {
58  $this->importCSVDataSet(__DIR__ . '/../Fixtures/pages.csv');
59  $service = new ‪WorkspaceService();
60  $result = $service->selectVersionsInWorkspace(91, -99, 2);
61  self::assertIsArray($result, 'The result from workspace 91 is supposed to be an array');
62  self::assertCount(
63  1,
64  $result['pages'],
65  'The result is supposed to contain one version for this page in workspace 91'
66  );
67  self::assertEquals(102, $result['pages'][0]['uid'], 'Wrong workspace overlay record picked');
68  self::assertEquals(1, $result['pages'][0]['livepid'], 'Real pid wasn\'t resolved correctly');
69  }
70 
74  public function ‪versionsCanBeFoundRecursive(): void
75  {
76  $this->importCSVDataSet(__DIR__ . '/../Fixtures/pages.csv');
77  $service = new ‪WorkspaceService();
78  $result = $service->selectVersionsInWorkspace(91, -99, 1, 99);
79  self::assertIsArray($result, 'The result from workspace 91 is supposed to be an array');
80  self::assertCount(
81  4,
82  $result['pages'],
83  'The result is supposed to contain four versions for this page in workspace 91'
84  );
85  }
86 
91  {
92  $this->importCSVDataSet(__DIR__ . '/../Fixtures/pages.csv');
93  $service = new ‪WorkspaceService();
94  // testing stage 1
95  $result = $service->selectVersionsInWorkspace(91, 1, 1, 99);
96  self::assertIsArray($result, 'The result from workspace 91 is supposed to be an array');
97  self::assertCount(
98  2,
99  $result['pages'],
100  'The result is supposed to contain two versions for this page in workspace 91'
101  );
102  self::assertEquals(102, $result['pages'][0]['uid'], 'First records is supposed to have the uid 102');
103  self::assertEquals(105, $result['pages'][1]['uid'], 'First records is supposed to have the uid 105');
104  // testing stage 2
105  $result = $service->selectVersionsInWorkspace(91, 2, 1, 99);
106  self::assertIsArray($result, 'The result from workspace 91 is supposed to be an array');
107  self::assertCount(
108  2,
109  $result['pages'],
110  'The result is supposed to contain two versions for this page in workspace 91'
111  );
112  self::assertEquals(104, $result['pages'][0]['uid'], 'First records is supposed to have the uid 106');
113  self::assertEquals(106, $result['pages'][1]['uid'], 'First records is supposed to have the uid 106');
114  }
115 
120  {
121  $this->importCSVDataSet(__DIR__ . '/Fixtures/WorkspaceServiceTestMovedContent.csv');
122  // Test if the placeholder can be found when we ask using recursion (same result)
123  $service = new ‪WorkspaceService();
124  $result = $service->selectVersionsInWorkspace(91, -99, 5, 99);
125  self::assertCount(1, $result['pages'], 'Wrong amount of page versions found within workspace 91');
126  self::assertEquals(103, $result['pages'][0]['uid'], 'Wrong move-to pointer found for page 3 in workspace 91');
127  self::assertEquals(5, $result['pages'][0]['wspid'], 'Wrong workspace-pointer found for page 3 in workspace 91');
128  self::assertEquals(2, $result['pages'][0]['livepid'], 'Wrong live-pointer found for page 3 in workspace 91');
129  self::assertCount(1, $result['tt_content'], 'Wrong amount of tt_content versions found within workspace 91');
130  self::assertEquals(106, $result['tt_content'][0]['uid'], 'Wrong move-to pointer found for page 3 in workspace 91');
131  self::assertEquals(7, $result['tt_content'][0]['wspid'], 'Wrong workspace-pointer found for page 3 in workspace 91');
132  self::assertEquals(2, $result['tt_content'][0]['livepid'], 'Wrong live-pointer found for page 3 in workspace 91');
133  }
134 
139  {
140  $this->importCSVDataSet(__DIR__ . '/Fixtures/WorkspaceServiceTestMovedContent.csv');
141  // Test if the placeholder can be found when we ask using recursion (same result)
142  $service = new ‪WorkspaceService();
143  $result = $service->selectVersionsInWorkspace(91, -99, 3, 99);
144  self::assertCount(1, $result, 'Wrong amount of versions found within workspace 91');
145  self::assertCount(1, $result['pages'], 'Wrong amount of page versions found within workspace 91');
146  self::assertEquals(103, $result['pages'][0]['uid'], 'Wrong move-to pointer found for page 3 in workspace 91');
147  }
148 
153  {
154  $this->importCSVDataSet(__DIR__ . '/Fixtures/WorkspaceServiceTestMovedContent.csv');
155  $workspaceService = new ‪WorkspaceService();
156  $result = $workspaceService->getPagesWithVersionsInTable(91);
157  $expected = [
158  'sys_category' => [],
159  'sys_file_collection' => [],
160  'sys_file_metadata' => [],
161  'sys_file_reference' => [],
162  'backend_layout' => [],
163  'sys_template' => [],
164  'tt_content' => [
165  1 => true,
166  7 => true,
167  ],
168  ];
169  self::assertSame($expected, $result);
170  }
171 
176  {
177  $this->importCSVDataSet(__DIR__ . '/Fixtures/WorkspaceServiceTestMovedContent.csv');
178  $workspaceService = new ‪WorkspaceService();
179  $result = $workspaceService->hasPageRecordVersions(91, 7);
180  self::assertTrue($result);
181  }
182 
187  {
188  $this->importCSVDataSet(__DIR__ . '/Fixtures/WorkspaceServiceTestMovedContent.csv');
189  $workspaceService = new ‪WorkspaceService();
190  $result = $workspaceService->hasPageRecordVersions(91, 3);
191  self::assertFalse($result);
192  }
193 }
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\hasPageRecordVersionsReturnsTrueForPageWithVersions
‪hasPageRecordVersionsReturnsTrueForPageWithVersions()
Definition: WorkspaceServiceTest.php:175
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest
Definition: WorkspaceServiceTest.php:28
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\versionsCanBeFoundRecursive
‪versionsCanBeFoundRecursive()
Definition: WorkspaceServiceTest.php:74
‪TYPO3\CMS\Workspaces\Tests\Functional\Service
Definition: WorkspaceServiceTest.php:18
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\setUp
‪setUp()
Definition: WorkspaceServiceTest.php:34
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\movedElementsCanBeFoundUsingTheirLiveUid
‪movedElementsCanBeFoundUsingTheirLiveUid()
Definition: WorkspaceServiceTest.php:138
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\$coreExtensionsToLoad
‪$coreExtensionsToLoad
Definition: WorkspaceServiceTest.php:29
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\hasPageRecordVersionsReturnsFalseForPageWithoutVersions
‪hasPageRecordVersionsReturnsFalseForPageWithoutVersions()
Definition: WorkspaceServiceTest.php:186
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\versionsCanBeFilteredToSpecificStage
‪versionsCanBeFilteredToSpecificStage()
Definition: WorkspaceServiceTest.php:90
‪TYPO3\CMS\Core\Core\Bootstrap\initializeLanguageObject
‪static initializeLanguageObject()
Definition: Bootstrap.php:598
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\movedElementsCanBeFoundAtTheirDestination
‪movedElementsCanBeFoundAtTheirDestination()
Definition: WorkspaceServiceTest.php:119
‪TYPO3\CMS\Workspaces\Service\WorkspaceService
Definition: WorkspaceService.php:36
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\emptyWorkspaceReturnsEmptyArray
‪emptyWorkspaceReturnsEmptyArray()
Definition: WorkspaceServiceTest.php:45
‪TYPO3\CMS\Core\Core\Bootstrap
Definition: Bootstrap.php:70
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\versionsFromSpecificWorkspaceCanBeFound
‪versionsFromSpecificWorkspaceCanBeFound()
Definition: WorkspaceServiceTest.php:56
‪TYPO3\CMS\Workspaces\Tests\Functional\Service\WorkspaceServiceTest\getPagesWithVersionsInTableReturnsPagesWithVersionsInTable
‪getPagesWithVersionsInTableReturnsPagesWithVersionsInTable()
Definition: WorkspaceServiceTest.php:152