‪TYPO3CMS  11.5
ExtensionTest.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 
21 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
22 
26 class ‪ExtensionTest extends UnitTestCase
27 {
34  {
35  return [
36  'empty string' => [
37  '',
38  4,
39  ],
40  'existing category string' => [
41  'plugin',
42  3,
43  ],
44  'not existing category string' => [
45  'foo',
46  4,
47  ],
48  'string number 3' => [
49  '3',
50  3,
51  ],
52  'integer 3' => [
53  3,
54  3,
55  ],
56  'string number not in range -1' => [
57  '-1',
58  4,
59  ],
60  'integer not in range -1' => [
61  -1,
62  4,
63  ],
64  'string number not in range 11' => [
65  '11',
66  4,
67  ],
68  'integer not in range 11' => [
69  11,
70  4,
71  ],
72  'object' => [
73  new \stdClass(),
74  4,
75  ],
76  'array' => [
77  [],
78  4,
79  ],
80  ];
81  }
82 
89  public function ‪getCategoryIndexFromStringOrNumberReturnsIndex($input, $expected): void
90  {
91  $extension = new ‪Extension();
92  self::assertEquals($expected, $extension->getCategoryIndexFromStringOrNumber($input));
93  }
98  {
99  $serializedDependencies = [
100  'depends' => [
101  'php' => '5.1.0-0.0.0',
102  'typo3' => '4.2.0-4.4.99',
103  'fn_lib' => '',
104  ],
105  ];
106  $dependencyObjects = ‪Extension::createFromExtensionArray(['key' => 'no-name', 'constraints' => $serializedDependencies])->‪getDependencies();
107  self::assertInstanceOf(\SplObjectStorage::class, $dependencyObjects);
108  }
109 
114  {
115  $serializedDependencies = [
116  'depends' => [
117  'php' => '5.1.0-0.0.0',
118  'typo3' => '4.2.0-4.4.99',
119  'fn_lib' => '',
120  ],
121  ];
122 
123  $dependencyObjects = ‪Extension::createFromExtensionArray(['key' => 'no-name', 'constraints' => $serializedDependencies])->‪getDependencies();
124  $identifiers = [];
125  foreach ($dependencyObjects as $resultingDependency) {
126  $identifiers[] = $resultingDependency->getIdentifier();
127  }
128  self::assertSame($identifiers, ['php', 'typo3', 'fn_lib']);
129  }
130 
135  {
136  return [
137  'everything ok' => [
138  [
139  'depends' => [
140  'typo3' => '4.2.0-4.4.99',
141  ],
142  ],
143  [
144  '4.2.0',
145  '4.4.99',
146  ],
147  ],
148  'empty high value' => [
149  [
150  'depends' => [
151  'typo3' => '4.2.0-0.0.0',
152  ],
153  ],
154  [
155  '4.2.0',
156  '',
157  ],
158  ],
159  'empty low value' => [
160  [
161  'depends' => [
162  'typo3' => '0.0.0-4.4.99',
163  ],
164  ],
165  [
166  '',
167  '4.4.99',
168  ],
169  ],
170  'only one value' => [
171  [
172  'depends' => [
173  'typo3' => '4.4.99',
174  ],
175  ],
176  [
177  '4.4.99',
178  '',
179  ],
180  ],
181  ];
182  }
183 
190  public function ‪convertDependenciesToObjectSetsVersion(array $dependencies, array $returnValue): void
191  {
192  $serializedDependencies = serialize($dependencies);
193  $dependencyObjects = ‪Extension::createFromExtensionArray(['key' => 'no-name', 'constraints' => $serializedDependencies])->‪getDependencies();
194  foreach ($dependencyObjects as $resultingDependency) {
195  self::assertSame($returnValue[0], $resultingDependency->getLowestVersion());
196  self::assertSame($returnValue[1], $resultingDependency->getHighestVersion());
197  }
198  }
199 
204  {
205  $dependencies = [
206  'depends' => '',
207  ];
208  $serializedDependencies = serialize($dependencies);
209  $dependencyObjects = ‪Extension::createFromExtensionArray(['key' => 'no-name', 'constraints' => $serializedDependencies])->‪getDependencies();
210  self::assertSame(0, $dependencyObjects->count());
211  }
212 
216  public function ‪getDistributionImageTest(): void
217  {
218  $imageUrl = 'https://example.org/path/to/image.png';
219 
220  $extension = new ‪Extension();
221  $extension->setDistributionImage($imageUrl);
222 
223  self::assertEquals(
224  $imageUrl,
225  $extension->getDistributionImage()
226  );
227  }
228 
232  public function ‪getDistributionWelcomeImageTest(): void
233  {
234  $imageUrl = 'https://example.org/path/to/image.png';
235 
236  $extension = new ‪Extension();
237  $extension->setDistributionWelcomeImage($imageUrl);
238 
239  self::assertEquals(
240  $imageUrl,
241  $extension->getDistributionWelcomeImage()
242  );
243  }
244 }
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model
Definition: DependencyTest.php:18
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension
Definition: Extension.php:28
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\convertDependenciesToObjectCanDealWithEmptyStringDependencyValues
‪convertDependenciesToObjectCanDealWithEmptyStringDependencyValues()
Definition: ExtensionTest.php:203
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\getDistributionImageTest
‪getDistributionImageTest()
Definition: ExtensionTest.php:216
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest
Definition: ExtensionTest.php:27
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\convertDependenciesToObjectsCreatesObjectStorage
‪convertDependenciesToObjectsCreatesObjectStorage()
Definition: ExtensionTest.php:97
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\createFromExtensionArray
‪static Extension createFromExtensionArray(array $extensionArray)
Definition: Extension.php:625
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\convertDependenciesToObjectSetsVersionDataProvider
‪array convertDependenciesToObjectSetsVersionDataProvider()
Definition: ExtensionTest.php:134
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\getDependencies
‪SplObjectStorage< Dependency > getDependencies()
Definition: Extension.php:508
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\getCategoryIndexFromStringOrNumberReturnsIndex
‪getCategoryIndexFromStringOrNumberReturnsIndex($input, $expected)
Definition: ExtensionTest.php:89
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\convertDependenciesToObjectsSetsIdentifier
‪convertDependenciesToObjectsSetsIdentifier()
Definition: ExtensionTest.php:113
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\getCategoryIndexFromStringOrNumberReturnsIndexDataProvider
‪array getCategoryIndexFromStringOrNumberReturnsIndexDataProvider()
Definition: ExtensionTest.php:33
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\getDistributionWelcomeImageTest
‪getDistributionWelcomeImageTest()
Definition: ExtensionTest.php:232
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model\ExtensionTest\convertDependenciesToObjectSetsVersion
‪convertDependenciesToObjectSetsVersion(array $dependencies, array $returnValue)
Definition: ExtensionTest.php:190