From f8ecca789ea6b00baac8dee05e4914d041792674 Mon Sep 17 00:00:00 2001
From: Jan Helke <typo3@helke.de>
Date: Fri, 16 Mar 2018 22:40:59 +0100
Subject: [PATCH] [TASK] Make ListUtilityTest notice free

Releases: master
Resolves: #84385
Change-Id: I0ba97419cd7a5dcf851ccd46e2db0e0dad699f42
Reviewed-on: https://review.typo3.org/56263
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
---
 .../Classes/Utility/ListUtility.php           |  2 +-
 .../Tests/Unit/Utility/ListUtilityTest.php    | 37 ++++++++++---------
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php b/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php
index 36fed5171d73..4abf6f4e4b1f 100644
--- a/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php
+++ b/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php
@@ -213,7 +213,7 @@ class ListUtility implements \TYPO3\CMS\Core\SingletonInterface
     {
         $extensions = $this->enrichExtensionsWithEmConfInformation($extensions);
         foreach ($extensions as $extensionKey => $properties) {
-            $terObject = $this->getExtensionTerData($extensionKey, $extensions[$extensionKey]['version']);
+            $terObject = $this->getExtensionTerData($extensionKey, $extensions[$extensionKey]['version'] ?? '');
             if ($terObject !== null) {
                 $extensions[$extensionKey]['terObject'] = $terObject;
                 $extensions[$extensionKey]['updateAvailable'] = false;
diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php
index 631a52cd0684..1a290ff05151 100644
--- a/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php
+++ b/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php
@@ -1,4 +1,5 @@
 <?php
+declare(strict_types=1);
 namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility;
 
 /*
@@ -14,18 +15,20 @@ namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Core\Package\Package;
+use TYPO3\CMS\Core\Package\PackageManager;
+use TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository;
+use TYPO3\CMS\Extensionmanager\Utility\EmConfUtility;
+use TYPO3\CMS\Extensionmanager\Utility\ListUtility;
+use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
+
 /**
  * List utility test
  */
-class ListUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
+class ListUtilityTest extends UnitTestCase
 {
     /**
-     * Subject is not notice free, disable E_NOTICES
-     */
-    protected static $suppressNotices = true;
-
-    /**
-     * @var \TYPO3\CMS\Extensionmanager\Utility\ListUtility
+     * @var ListUtility
      */
     protected $subject;
 
@@ -33,20 +36,20 @@ class ListUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
      */
     protected function setUp()
     {
-        $this->subject = $this->getMockBuilder(\TYPO3\CMS\Extensionmanager\Utility\ListUtility::class)
+        $this->subject = $this->getMockBuilder(ListUtility::class)
             ->setMethods(['emitPackagesMayHaveChangedSignal'])
             ->getMock();
-        $packageManagerMock = $this->getMockBuilder(\TYPO3\CMS\Core\Package\PackageManager::class)
+        $packageManagerMock = $this->getMockBuilder(PackageManager::class)
             ->disableOriginalConstructor()
             ->getMock();
         $packageManagerMock
                 ->expects($this->any())
                 ->method('getActivePackages')
                 ->will($this->returnValue([
-                    'lang' => $this->getMockBuilder(\TYPO3\CMS\Core\Package::class)->disableOriginalConstructor()->getMock(),
-                    'news' => $this->getMockBuilder(\TYPO3\CMS\Core\Package::class)->disableOriginalConstructor()->getMock(),
-                    'saltedpasswords' => $this->getMockBuilder(\TYPO3\CMS\Core\Package::class)->disableOriginalConstructor()->getMock(),
-                    'rsaauth' => $this->getMockBuilder(\TYPO3\CMS\Core\Package::class)->disableOriginalConstructor()->getMock(),
+                    'lang' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
+                    'news' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
+                    'saltedpasswords' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
+                    'rsaauth' => $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock(),
                 ]));
         $this->inject($this->subject, 'packageManager', $packageManagerMock);
     }
@@ -54,7 +57,7 @@ class ListUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
     /**
      * @return array
      */
-    public function getAvailableAndInstalledExtensionsDataProvider()
+    public function getAvailableAndInstalledExtensionsDataProvider(): array
     {
         return [
             'same extension lists' => [
@@ -136,7 +139,7 @@ class ListUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
     /**
      * @return array
      */
-    public function enrichExtensionsWithEmConfInformationDataProvider()
+    public function enrichExtensionsWithEmConfInformationDataProvider(): array
     {
         return [
             'simple key value array emconf' => [
@@ -168,8 +171,8 @@ class ListUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
      */
     public function enrichExtensionsWithEmConfInformation($extensions, $emConf, $expectedResult)
     {
-        $this->inject($this->subject, 'extensionRepository', $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository::class, ['findOneByExtensionKeyAndVersion', 'findHighestAvailableVersion'], [], '', false));
-        $emConfUtilityMock = $this->getMockBuilder(\TYPO3\CMS\Extensionmanager\Utility\EmConfUtility::class)->getMock();
+        $this->inject($this->subject, 'extensionRepository', $this->getAccessibleMock(ExtensionRepository::class, ['findOneByExtensionKeyAndVersion', 'findHighestAvailableVersion'], [], '', false));
+        $emConfUtilityMock = $this->getMockBuilder(EmConfUtility::class)->getMock();
         $emConfUtilityMock->expects($this->any())->method('includeEmConf')->will($this->returnValue($emConf));
         $this->inject($this->subject, 'emConfUtility', $emConfUtilityMock);
         $this->assertEquals($expectedResult, $this->subject->enrichExtensionsWithEmConfAndTerInformation($extensions));
-- 
GitLab