‪TYPO3CMS  11.5
ClipboardTest.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 
25 use TYPO3\TestingFramework\Core\Functional\Framework\DataHandling\Scenario\DataHandlerFactory;
26 use TYPO3\TestingFramework\Core\Functional\Framework\DataHandling\Scenario\DataHandlerWriter;
27 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
28 
32 class ‪ClipboardTest extends FunctionalTestCase
33 {
35 
36  protected const ‪LANGUAGE_PRESETS = [];
37 
38  protected ‪$coreExtensionsToLoad = ['workspaces'];
39 
42 
43  protected function ‪setUp(): void
44  {
45  parent::setUp();
46 
47  $this->subject = GeneralUtility::makeInstance(Clipboard::class);
48  $this->backendUser = $this->setUpBackendUserFromFixture(1);
50 
51  $this->withDatabaseSnapshot(function () {
52  $this->‪setUpDatabase();
53  });
54  }
55 
56  protected function ‪tearDown(): void
57  {
58  unset($this->subject, $this->backendUser);
59  parent::tearDown();
60  }
61 
62  protected function ‪setUpDatabase(): void
63  {
64  $scenarioFile = __DIR__ . '/../Fixtures/CommonScenario.yaml';
65  $factory = DataHandlerFactory::fromYamlFile($scenarioFile);
66  $writer = DataHandlerWriter::withBackendUser($this->backendUser);
67  $writer->invokeFactory($factory);
68  static::failIfArrayIsNotEmpty(
69  $writer->getErrors()
70  );
71  }
72 
76  public function ‪localizationsAreResolvedDataProvider(): array
77  {
78  return [
79  'live workspace with live & version localizations' => [
80  1100,
81  0,
82  'pages',
83  [
84  'FR: Welcome',
85  'FR-CA: Welcome',
86  ],
87  ],
88  'draft workspace with live & version localizations' => [
89  1100,
90  1,
91  'pages',
92  [
93  'FR: Welcome',
94  'FR-CA: Welcome',
95  'ES: Bienvenido',
96  ],
97  ],
98  'live workspace with live localizations only' => [
99  1400,
100  0,
101  'pages',
102  [
103  'FR: ACME in your Region',
104  'FR-CA: ACME in your Region',
105  ],
106  ],
107  'draft workspace with live localizations only' => [
108  1400,
109  1,
110  'pages',
111  [
112  'FR: ACME in your Region',
113  'FR-CA: ACME in your Region',
114  ],
115  ],
116  'live workspace with version localizations only' => [
117  1500,
118  0,
119  'pages',
120  [],
121  ],
122  'draft workspace with version localizations only' => [
123  1500,
124  1,
125  'pages',
126  [
127  'FR: Interne',
128  ],
129  ],
130  'Record is not of currently selected table' => [
131  1500,
132  1,
133  '_FILE',
134  [
135  '<span class="text-muted">FR: Interne</span>',
136  ],
137  ],
138  ];
139  }
140 
145  public function ‪localizationsAreResolved(
146  int $pageId,
147  int $workspaceId,
148  string $table,
149  array $expectation
150  ): void {
151  $this->backendUser->workspace = $workspaceId;
152  $this->subject->clipData['normal']['el'] = ["pages|$pageId" => 'some value'];
153  $this->subject->current = 'normal';
154  $normalTab = $this->subject->getClipboardData($table)['tabs'][0];
155  array_shift($normalTab['items']);
156  $actualTitles = [];
157  foreach ($normalTab['items'] as $item) {
158  $actualTitles[] = $item['title'];
159  }
160 
161  self::assertEqualsCanonicalizing($expectation, $actualTitles);
162  }
163 }
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\$backendUser
‪BackendUserAuthentication $backendUser
Definition: ClipboardTest.php:40
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard
Definition: ClipboardTest.php:18
‪TYPO3\CMS\Backend\Clipboard\Clipboard
Definition: Clipboard.php:49
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\localizationsAreResolvedDataProvider
‪array localizationsAreResolvedDataProvider()
Definition: ClipboardTest.php:75
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\setUpDatabase
‪setUpDatabase()
Definition: ClipboardTest.php:61
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait
Definition: SiteBasedTestTrait.php:36
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\$subject
‪Clipboard $subject
Definition: ClipboardTest.php:39
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\setUp
‪setUp()
Definition: ClipboardTest.php:42
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\localizationsAreResolved
‪localizationsAreResolved(int $pageId, int $workspaceId, string $table, array $expectation)
Definition: ClipboardTest.php:144
‪TYPO3\CMS\Core\Core\Bootstrap\initializeLanguageObject
‪static initializeLanguageObject()
Definition: Bootstrap.php:598
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\LANGUAGE_PRESETS
‪const LANGUAGE_PRESETS
Definition: ClipboardTest.php:35
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\$coreExtensionsToLoad
‪$coreExtensionsToLoad
Definition: ClipboardTest.php:37
‪TYPO3\CMS\Core\Core\Bootstrap
Definition: Bootstrap.php:70
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest
Definition: ClipboardTest.php:33
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Backend\Tests\Functional\Clipboard\ClipboardTest\tearDown
‪tearDown()
Definition: ClipboardTest.php:55