mirror of
https://github.com/Intervention/image.git
synced 2025-08-20 12:41:23 +02:00
Fix bug & add tests
This commit is contained in:
@@ -86,7 +86,7 @@ abstract class AbstractDecoder extends DriverSpecialized implements DecoderInter
|
||||
default => $this->buildFilePointer($path_or_data), // data
|
||||
};
|
||||
|
||||
// extract exif data via file path
|
||||
// extract exif data
|
||||
$data = @exif_read_data($source, null, true);
|
||||
if (is_resource($source)) {
|
||||
fclose($source);
|
||||
|
@@ -41,6 +41,12 @@ trait CanDecodeGif
|
||||
);
|
||||
}
|
||||
|
||||
return new Image(new Driver(), $core);
|
||||
// create image
|
||||
$image = new Image(new Driver(), $core);
|
||||
|
||||
// set media type
|
||||
$image->origin()->setMediaType('image/gif');
|
||||
|
||||
return $image;
|
||||
}
|
||||
}
|
||||
|
57
tests/Drivers/Gd/Traits/CanDecodeGifTest.php
Normal file
57
tests/Drivers/Gd/Traits/CanDecodeGifTest.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Intervention\Image\Tests\Drivers\Gd\Traits;
|
||||
|
||||
use Intervention\Image\Drivers\Gd\Decoders\Traits\CanDecodeGif;
|
||||
use Intervention\Image\Interfaces\ImageInterface;
|
||||
use Intervention\Image\Tests\TestCase;
|
||||
use Mockery;
|
||||
|
||||
class CanDecodeGifTest extends TestCase
|
||||
{
|
||||
public function testDecodeGifFromBinaryAnimation(): void
|
||||
{
|
||||
$decoder = Mockery::mock(new class () {
|
||||
use CanDecodeGif;
|
||||
})->makePartial();
|
||||
|
||||
$result = $decoder->decodeGif($this->getTestImageData('animation.gif'));
|
||||
$this->assertInstanceOf(ImageInterface::class, $result);
|
||||
$this->assertEquals('image/gif', $result->origin()->mediaType());
|
||||
}
|
||||
|
||||
public function testDecodeGifFromBinaryStatic(): void
|
||||
{
|
||||
$decoder = Mockery::mock(new class () {
|
||||
use CanDecodeGif;
|
||||
})->makePartial();
|
||||
|
||||
$result = $decoder->decodeGif($this->getTestImageData('red.gif'));
|
||||
$this->assertInstanceOf(ImageInterface::class, $result);
|
||||
$this->assertEquals('image/gif', $result->origin()->mediaType());
|
||||
}
|
||||
|
||||
public function testDecodeGifFromPathAnimation(): void
|
||||
{
|
||||
$decoder = Mockery::mock(new class () {
|
||||
use CanDecodeGif;
|
||||
})->makePartial();
|
||||
|
||||
$result = $decoder->decodeGif($this->getTestImagePath('animation.gif'));
|
||||
$this->assertInstanceOf(ImageInterface::class, $result);
|
||||
$this->assertEquals('image/gif', $result->origin()->mediaType());
|
||||
}
|
||||
|
||||
public function testDecodeGifFromPathStatic(): void
|
||||
{
|
||||
$decoder = Mockery::mock(new class () {
|
||||
use CanDecodeGif;
|
||||
})->makePartial();
|
||||
|
||||
$result = $decoder->decodeGif($this->getTestImagePath('red.gif'));
|
||||
$this->assertInstanceOf(ImageInterface::class, $result);
|
||||
$this->assertEquals('image/gif', $result->origin()->mediaType());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user