diff --git a/packages/zend-barcode/library/Zend/Barcode/Renderer/Image.php b/packages/zend-barcode/library/Zend/Barcode/Renderer/Image.php index 9df9943c7..1ba585fe7 100644 --- a/packages/zend-barcode/library/Zend/Barcode/Renderer/Image.php +++ b/packages/zend-barcode/library/Zend/Barcode/Renderer/Image.php @@ -93,7 +93,7 @@ public function __construct($options = null) * Set height of the result image * * @param null|integer $value - * @return Zend_Image_Barcode_Abstract + * @return self * @throws Zend_Barcode_Renderer_Exception */ public function setHeight($value) @@ -151,26 +151,25 @@ public function getWidth() * Set an image resource to draw the barcode inside * * @param $image - * @return Zend_Barcode_Renderer + * @return self * @throws Zend_Barcode_Renderer_Exception */ public function setResource($image) { - if (gettype($image) != 'resource' || get_resource_type($image) != 'gd') { - // require_once 'Zend/Barcode/Renderer/Exception.php'; - throw new Zend_Barcode_Renderer_Exception( - 'Invalid image resource provided to setResource()' - ); + if ((gettype($image) === 'resource' && get_resource_type($image) === 'gd') || get_class($image) === 'GdImage') { + $this->_resource = $image; + return $this; } - $this->_resource = $image; - return $this; + throw new Zend_Barcode_Renderer_Exception( + 'Invalid image resource provided to setResource()' + ); } /** * Set the image type to produce (png, jpeg, gif) * * @param string $value - * @return Zend_Barcode_RendererAbstract + * @return self * @throws Zend_Barcode_Renderer_Exception */ public function setImageType($value) diff --git a/tests/Zend/Barcode/FactoryTest.php b/tests/Zend/Barcode/FactoryTest.php index b29ff939f..df1fea4e3 100644 --- a/tests/Zend/Barcode/FactoryTest.php +++ b/tests/Zend/Barcode/FactoryTest.php @@ -352,8 +352,12 @@ public function testProxyBarcodeRendererDrawAsImage() 'GD extension is required to run this test'); } $resource = Zend_Barcode::draw('code25', 'image'); - $this->assertTrue(gettype($resource) == 'resource', 'Image must be a resource'); - $this->assertTrue(get_resource_type($resource) == 'gd', 'Image must be a GD resource'); + if (PHP_VERSION_ID < 80000) { + $this->assertTrue(gettype($resource) == 'resource', 'Image must be a resource'); + $this->assertTrue(get_resource_type($resource) == 'gd', 'Image must be a GD resource'); + } else { + $this->assertTrue(get_class($resource) === 'GdImage'); + } } public function testProxyBarcodeRendererDrawAsPdf() diff --git a/tests/Zend/Barcode/Renderer/ImageTest.php b/tests/Zend/Barcode/Renderer/ImageTest.php index 50f31cbed..3922bd1ba 100644 --- a/tests/Zend/Barcode/Renderer/ImageTest.php +++ b/tests/Zend/Barcode/Renderer/ImageTest.php @@ -129,9 +129,13 @@ public function testDrawReturnResource() $barcode = new Zend_Barcode_Object_Code39(array('text' => '0123456789')); $this->_renderer->setBarcode($barcode); $resource = $this->_renderer->draw(); - $this->assertTrue(gettype($resource) == 'resource', 'Image must be a resource'); - $this->assertTrue(get_resource_type($resource) == 'gd', + if (PHP_VERSION_ID < 80000) { + $this->assertTrue(gettype($resource) == 'resource', 'Image must be a resource'); + $this->assertTrue(get_resource_type($resource) == 'gd', 'Image must be a GD resource'); + } else { + $this->assertTrue(get_class($resource) === 'GdImage'); + } } public function testDrawWithExistantResourceReturnResource() @@ -143,9 +147,13 @@ public function testDrawWithExistantResourceReturnResource() $imageResource = imagecreatetruecolor(500, 500); $this->_renderer->setResource($imageResource); $resource = $this->_renderer->draw(); - $this->assertTrue(gettype($resource) == 'resource', 'Image must be a resource'); - $this->assertTrue(get_resource_type($resource) == 'gd', + if (PHP_VERSION_ID < 80000) { + $this->assertTrue(gettype($resource) == 'resource', 'Image must be a resource'); + $this->assertTrue(get_resource_type($resource) == 'gd', 'Image must be a GD resource'); + } else { + $this->assertTrue(get_class($resource) === 'GdImage'); + } $this->assertSame($resource, $imageResource); } diff --git a/tests/Zend/Barcode/Renderer/TestCommon.php b/tests/Zend/Barcode/Renderer/TestCommon.php index aceda53e7..c9e4e8a87 100644 --- a/tests/Zend/Barcode/Renderer/TestCommon.php +++ b/tests/Zend/Barcode/Renderer/TestCommon.php @@ -34,7 +34,7 @@ abstract class Zend_Barcode_Renderer_TestCommon extends PHPUnit_Framework_TestCa { /** - * @var Zend_Barcode_Renderer + * @var Zend_Barcode_Renderer_RendererAbstract */ protected $_renderer = null;