2 declare(strict_types = 1);
19 use TYPO3\CMS\Core\Package\PackageManager;
21 use TYPO3\CMS\Extensionmanager\Utility\EmConfUtility;
23 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
37 protected function setUp()
39 $this->subject = $this->getMockBuilder(ListUtility::class)
40 ->setMethods([
'emitPackagesMayHaveChangedSignal'])
42 $packageManagerMock = $this->getMockBuilder(PackageManager::class)
43 ->disableOriginalConstructor()
46 ->expects($this->any())
47 ->method(
'getActivePackages')
48 ->will($this->returnValue([
49 'lang' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
50 'news' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
51 'saltedpasswords' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
52 'rsaauth' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
54 $this->inject($this->subject,
'packageManager', $packageManagerMock);
63 'same extension lists' => [
67 'saltedpasswords' => [],
71 'lang' => [
'installed' =>
true],
72 'news' => [
'installed' =>
true],
73 'saltedpasswords' => [
'installed' =>
true],
74 'rsaauth' => [
'installed' =>
true]
77 'different extension lists' => [
81 'saltedpasswords' => [],
85 'lang' => [
'installed' =>
true],
86 'news' => [
'installed' =>
true],
87 'saltedpasswords' => [
'installed' =>
true],
88 'rsaauth' => [
'installed' =>
true]
91 'different extension lists - set2' => [
95 'saltedpasswords' => [],
100 'lang' => [
'installed' =>
true],
101 'news' => [
'installed' =>
true],
102 'saltedpasswords' => [
'installed' =>
true],
103 'rsaauth' => [
'installed' =>
true],
107 'different extension lists - set3' => [
112 'saltedpasswords' => [],
117 'lang' => [
'installed' =>
true],
119 'news' => [
'installed' =>
true],
120 'saltedpasswords' => [
'installed' =>
true],
121 'rsaauth' => [
'installed' =>
true],
136 $this->assertEquals($expectedResult, $this->subject->getAvailableAndInstalledExtensions($availableExtensions));
145 'simple key value array emconf' => [
147 'lang' => [
'property1' =>
'oldvalue'],
149 'saltedpasswords' => [],
153 'property1' =>
'property value1'
156 'lang' => [
'property1' =>
'oldvalue'],
157 'news' => [
'property1' =>
'property value1'],
158 'saltedpasswords' => [
'property1' =>
'property value1'],
159 'rsaauth' => [
'property1' =>
'property value1']
174 $this->inject($this->subject,
'extensionRepository', $this->getAccessibleMock(ExtensionRepository::class, [
'findOneByExtensionKeyAndVersion',
'findHighestAvailableVersion'], [],
'',
false));
175 $emConfUtilityMock = $this->getMockBuilder(EmConfUtility::class)->getMock();
176 $emConfUtilityMock->expects($this->any())->method(
'includeEmConf')->will($this->returnValue($emConf));
177 $this->inject($this->subject,
'emConfUtility', $emConfUtilityMock);
178 $this->assertEquals($expectedResult, $this->subject->enrichExtensionsWithEmConfAndTerInformation($extensions));