diff --git a/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php b/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php index ba911a7561769c31c331a15d6b89dc28d67f9fc7..6dce0f49c498350b9a6e8c8e01287046ee0f1b0c 100644 --- a/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php +++ b/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php @@ -100,16 +100,6 @@ class InstallUtility implements \TYPO3\CMS\Core\SingletonInterface { */ protected $registry; - /** - * __construct - */ - public function __construct() { - $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); - /** @var $installToolSqlParser \TYPO3\CMS\Install\Service\SqlSchemaMigrationService */ - $this->installToolSqlParser = $this->objectManager->get('TYPO3\\CMS\\Install\\Service\\SqlSchemaMigrationService'); - $this->dependencyUtility = $this->objectManager->get('TYPO3\\CMS\\Extensionmanager\\Utility\\DependencyUtility'); - } - /** * Helper function to install an extension * also processes db updates and clears the cache if the extension asks for it diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php index 37967dbb6b4e6eefd86f920b8d2559c96f6ac902..881f941ecbad1ebf59c0ed34ccaa0ac61073689a 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php @@ -93,9 +93,21 @@ class ExtensionManagementServiceTest extends \TYPO3\CMS\Core\Tests\UnitTestCase $managementMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Service\\ExtensionManagementService', array( 'dummy' )); + $extensionModelMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Domain\\Model\\Extension', array('getExtensionKey')); $extensionModelMock->_set('extensionKey', 'foobar'); $extensionModelMock->_set('version', '1.0.0'); + + $dependencyUtilityMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Utility\\DependencyUtility'); + $dependencyUtilityMock->expects($this->atLeastOnce())->method('buildExtensionDependenciesTree'); + $installUtilityMock = $this->getMock('TYPO3\\CMS\\Extensionmanager\\Utility\\InstallUtility'); + $installUtilityMock->expects($this->any())->method('enrichExtensionWithDetails')->will($this->returnValue(array())); + $extensionModelUtilityMock = $this->getMock('TYPO3\\CMS\\Extensionmanager\\Utility\\ExtensionModelUtility'); + $extensionModelUtilityMock->expects($this->any())->method('mapExtensionArrayToModel')->will($this->returnValue($extensionModelMock)); + $managementMock->_set('dependencyUtility', $dependencyUtilityMock); + $managementMock->_set('installUtility', $installUtilityMock); + $managementMock->_set('extensionModelUtility', $extensionModelUtilityMock); + $downloadQueue = array( $extensionModelMock ); @@ -115,12 +127,24 @@ class ExtensionManagementServiceTest extends \TYPO3\CMS\Core\Tests\UnitTestCase $managementMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Service\\ExtensionManagementService', array( 'dummy' )); + $extensionModelMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Domain\\Model\\Extension', array('getExtensionKey')); $extensionModelMock->_set('extensionKey', 'foobar'); $extensionModelMock->_set('version', '1.0.0'); $downloadQueue = array( $extensionModelMock ); + + $dependencyUtilityMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Utility\\DependencyUtility'); + $dependencyUtilityMock->expects($this->atLeastOnce())->method('buildExtensionDependenciesTree'); + $installUtilityMock = $this->getMock('TYPO3\\CMS\\Extensionmanager\\Utility\\InstallUtility'); + $installUtilityMock->expects($this->any())->method('enrichExtensionWithDetails')->will($this->returnValue(array())); + $extensionModelUtilityMock = $this->getMock('TYPO3\\CMS\\Extensionmanager\\Utility\\ExtensionModelUtility'); + $extensionModelUtilityMock->expects($this->any())->method('mapExtensionArrayToModel')->will($this->returnValue($extensionModelMock)); + $managementMock->_set('dependencyUtility', $dependencyUtilityMock); + $managementMock->_set('installUtility', $installUtilityMock); + $managementMock->_set('extensionModelUtility', $extensionModelUtilityMock); + $downloadQueueMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Domain\\Model\\DownloadQueue', array('removeExtensionFromQueue', 'addExtensionToInstallQueue')); $downloadUtilityMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Utility\\DownloadUtility', array('download')); $downloadQueueMock->expects($this->once())->method('removeExtensionFromQueue')->with($extensionModelMock); @@ -137,12 +161,24 @@ class ExtensionManagementServiceTest extends \TYPO3\CMS\Core\Tests\UnitTestCase $managementMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Service\\ExtensionManagementService', array( 'dummy' )); + $extensionModelMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Domain\\Model\\Extension', array('getExtensionKey')); $extensionModelMock->_set('extensionKey', 'foobar'); $extensionModelMock->_set('version', '1.0.0'); $downloadQueue = array( $extensionModelMock ); + + $dependencyUtilityMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Utility\\DependencyUtility'); + $dependencyUtilityMock->expects($this->atLeastOnce())->method('buildExtensionDependenciesTree'); + $installUtilityMock = $this->getMock('TYPO3\\CMS\\Extensionmanager\\Utility\\InstallUtility'); + $installUtilityMock->expects($this->any())->method('enrichExtensionWithDetails')->will($this->returnValue(array())); + $extensionModelUtilityMock = $this->getMock('TYPO3\\CMS\\Extensionmanager\\Utility\\ExtensionModelUtility'); + $extensionModelUtilityMock->expects($this->any())->method('mapExtensionArrayToModel')->will($this->returnValue($extensionModelMock)); + $managementMock->_set('dependencyUtility', $dependencyUtilityMock); + $managementMock->_set('installUtility', $installUtilityMock); + $managementMock->_set('extensionModelUtility', $extensionModelUtilityMock); + $downloadQueueMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Domain\\Model\\DownloadQueue', array('removeExtensionFromQueue', 'addExtensionToInstallQueue')); $downloadUtilityMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Utility\\DownloadUtility', array('download')); $extensionModelMock->expects($this->atLeastOnce())->method('getExtensionKey')->will($this->returnValue('foobar')); @@ -201,7 +237,7 @@ class ExtensionManagementServiceTest extends \TYPO3\CMS\Core\Tests\UnitTestCase public function installDependenciesCallsInstall() { $managementMock = $this->getAccessibleMock( 'TYPO3\\CMS\\Extensionmanager\\Service\\ExtensionManagementService', - array('emitWillInstallExtensions') + array('emitWillInstallExtensions', 'emitHasInstalledExtension') ); $installQueue = array( 'foobar' => array( @@ -224,7 +260,8 @@ class ExtensionManagementServiceTest extends \TYPO3\CMS\Core\Tests\UnitTestCase */ public function installDependenciesReturnsResolvedDependencies() { $managementMock = $this->getAccessibleMock('TYPO3\\CMS\\Extensionmanager\\Service\\ExtensionManagementService', array( - 'emitWillInstallExtensions' + 'emitWillInstallExtensions', + 'emitHasInstalledExtension' )); $installQueue = array( 'foobar' => 'foobar'