/** * @test */ public function getExtensionVersionForLoadedExtensionReturnsExtensionVersion() { ExtensionManagementUtility::clearExtensionKeyMap(); $uniqueSuffix = $this->getUniqueId('test'); $extensionKey = 'unloadedextension' . $uniqueSuffix; $packageMetaData = $this->getMock(MetaData::class, array('getVersion'), array($extensionKey)); $packageMetaData->expects($this->any())->method('getVersion')->will($this->returnValue('1.2.3')); $packageManager = $this->createMockPackageManagerWithMockPackage($extensionKey, array('getPackagePath', 'getPackageKey', 'getPackageMetaData')); /** @var \PHPUnit_Framework_MockObject_MockObject $package */ $package = $packageManager->getPackage($extensionKey); $package->expects($this->any())->method('getPackageMetaData')->will($this->returnValue($packageMetaData)); ExtensionManagementUtility::setPackageManager($packageManager); $this->assertEquals('1.2.3', ExtensionManagementUtility::getExtensionVersion($extensionKey)); }
/** * Creates a fake extension inside typo3temp/. No configuration is created, * just the folder, plus the extension is registered in $TYPO3_LOADED_EXT * * @return string The extension key */ protected function createFakeExtension() { $extKey = strtolower(uniqid('testing')); $absExtPath = PATH_site . 'typo3temp/' . $extKey . '/'; $relPath = 'typo3temp/' . $extKey . '/'; \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($absExtPath); $GLOBALS['TYPO3_LOADED_EXT'][$extKey] = array('siteRelPath' => $relPath); $GLOBALS['TYPO3_CONF_VARS']['EXT']['extListArray'][] = $extKey; $this->fakedExtensions[] = $extKey; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::clearExtensionKeyMap(); return $extKey; }
/** * @test */ public function getExtensionVersionForLoadedExtensionReturnsExtensionVersion() { ExtensionManagementUtility::clearExtensionKeyMap(); $className = $this->getUniqueId('ExtensionManagementUtility'); eval('namespace ' . __NAMESPACE__ . ';' . 'class ' . $className . ' extends \\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility {' . ' public static function isLoaded() {' . ' return TRUE;' . ' }' . '}'); $className = __NAMESPACE__ . '\\' . $className; ExtensionManagementUtility::clearExtensionKeyMap(); $uniqueSuffix = $this->getUniqueId('test'); $extensionKey = 'unloadedextension' . $uniqueSuffix; $packageMetaData = $this->getMock('TYPO3\\Flow\\Package\\MetaData', array('getVersion'), array($extensionKey)); $packageMetaData->expects($this->any())->method('getVersion')->will($this->returnValue('1.2.3')); $packageManager = $this->createMockPackageManagerWithMockPackage($extensionKey, array('getPackagePath', 'getPackageKey', 'getPackageMetaData')); /** @var \PHPUnit_Framework_MockObject_MockObject $package */ $package = $packageManager->getPackage($extensionKey); $package->expects($this->any())->method('getPackageMetaData')->will($this->returnValue($packageMetaData)); ExtensionManagementUtility::setPackageManager($packageManager); $this->assertEquals('1.2.3', ExtensionManagementUtility::getExtensionVersion($extensionKey)); }
/** * @test */ public function getExtensionVersionForLoadedExtensionReturnsExtensionVersion() { $namespace = 'TYPO3\\CMS\\Core\\Utility'; $className = uniqid('ExtensionManagementUtility'); eval('namespace ' . $namespace . ';' . 'class ' . $className . ' extends \\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility {' . ' public static function isLoaded() {' . ' return TRUE;' . ' }' . '}'); $className = $namespace . '\\' . $className; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::clearExtensionKeyMap(); $uniqueSuffix = uniqid('test'); $extensionKey = 'unloadedextension' . $uniqueSuffix; $GLOBALS['TYPO3_LOADED_EXT'][$extensionKey] = array('siteRelPath' => 'typo3/sysext/core/Tests/Unit/Utility/Fixtures/'); $this->assertEquals('1.2.3', $className::getExtensionVersion($extensionKey)); }