/**
  * @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));
 }
예제 #2
0
 /**
  * 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));
 }