public function setUp() { parent::setUp(); exec(eZINI::instance("image.ini")->variable("ImageMagick", "Executable") . " -version 2>&1", $output, $returnValue); if ($returnValue !== 0) { $this->markTestSkipped('ImageMagick is not installed'); } $this->imageManager = eZImageManager::instance(); $this->imageManager->readINISettings(); ezpINIHelper::setINISetting('image.ini', 'ImageConverterSettings', 'ImageConverters', array('ImageMagick')); }
/** * Test scenario for image alias using filters from multiple image handlers * for issue #15773: Infinite loop in ImageManager when using filters from multiple image handlers * * Test Outline * ------------ * 1. Setup alias with filters from multiple image handlers * 2. Load image manager * 3. Backup max_execution_time, set it to 60 seconds * 4. Convert image * 5. Restore max_execution_time * * @result: * The operation times out after 60 seconds * @expected: * The conversion call returns true * @link http://issues.ez.no/15773 */ public function testMultiHandlerAlias() { if (!self::gdIsEnabled() && !self::imageMagickIsEnabled()) { $this->markTestSkipped('Neither GD nor ImageMagick are enabled'); } $aliasList = $this->imageIni->variable('AliasSettings', 'AliasList'); array_push($aliasList, 'multihandler'); $this->imageIni->setVariable('AliasSettings', 'AliasList', $aliasList); $this->imageIni->setVariable('multihandler', 'Reference', ''); $this->imageIni->setVariable('multihandler', 'Filters', array('luminance/gray', 'filter/swirl=210')); $sourcePath = 'tests/tests/lib/ezimage/data/andernach.jpg'; $targetPath = 'tests/tests/lib/ezimage/data/andernach_result.jpg'; $img = eZImageManager::instance(); $img->readINISettings(); $timeLimit = ini_get('max_execution_time'); set_time_limit(60); $result = $img->convert($sourcePath, $targetPath, 'multihandler'); set_time_limit($timeLimit); $this->assertEquals(true, $result); }
/** * Reset a shared instance of the eZImageManager class and factory variable. * As used by {@link eZImageManager::instance()} and {@link eZImageManager::factory()} * * @since 4.3 */ static function resetInstance() { self::$instance = null; self::$factory = false; }