1
0
mirror of https://github.com/Intervention/image.git synced 2025-09-02 02:12:37 +02:00

Refactor encoder tests

This commit is contained in:
Oliver Vogel
2024-03-26 15:17:02 +01:00
parent f035f7d516
commit c261654599
15 changed files with 33 additions and 286 deletions

View File

@@ -6,31 +6,17 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\AvifEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')]
#[CoversClass(\Intervention\Image\Encoders\AvifEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\AvifEncoder::class)]
final class AvifEncoderTest extends BaseTestCase
final class AvifEncoderTest extends GdTestCase
{
protected function getTestImage(): Image
{
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new AvifEncoder(10);
$result = $encoder->encode($image);
$this->assertMediaType('image/avif', (string) $result);

View File

@@ -6,31 +6,17 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\BmpEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')]
#[CoversClass(\Intervention\Image\Encoders\BmpEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\BmpEncoder::class)]
final class BmpEncoderTest extends BaseTestCase
final class BmpEncoderTest extends GdTestCase
{
protected function getTestImage(): Image
{
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new BmpEncoder();
$result = $encoder->encode($image);
$this->assertMediaType(['image/bmp', 'image/x-ms-bmp'], (string) $result);

View File

@@ -6,11 +6,7 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\GifEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')]
@@ -18,30 +14,9 @@ use Intervention\Image\Tests\GdTestCase;
#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\GifEncoder::class)]
final class GifEncoderTest extends GdTestCase
{
protected function getTestImage(): Image
{
$gd1 = imagecreatetruecolor(30, 20);
imagefill($gd1, 0, 0, imagecolorallocate($gd1, 255, 0, 0));
$gd2 = imagecreatetruecolor(30, 20);
imagefill($gd2, 0, 0, imagecolorallocate($gd2, 0, 255, 0));
$gd3 = imagecreatetruecolor(30, 20);
imagefill($gd3, 0, 0, imagecolorallocate($gd3, 0, 0, 255));
$frame1 = new Frame($gd1);
$frame1->setDelay(1);
$frame2 = new Frame($gd2);
$frame2->setDelay(.2);
$frame3 = new Frame($gd3);
$frame3->setDelay(1);
return new Image(
new Driver(),
new Core([$frame1, $frame2, $frame3])
);
}
public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestAnimation();
$encoder = new GifEncoder();
$result = $encoder->encode($image);
$this->assertMediaType('image/gif', (string) $result);

View File

@@ -6,31 +6,17 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\JpegEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')]
#[CoversClass(\Intervention\Image\Encoders\JpegEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\JpegEncoder::class)]
final class JpegEncoderTest extends BaseTestCase
final class JpegEncoderTest extends GdTestCase
{
protected function getTestImage(): Image
{
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new JpegEncoder(75);
$result = $encoder->encode($image);
$this->assertMediaType('image/jpeg', (string) $result);

View File

@@ -6,11 +6,7 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\PngEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')]
@@ -18,19 +14,9 @@ use Intervention\Image\Tests\GdTestCase;
#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\PngEncoder::class)]
final class PngEncoderTest extends GdTestCase
{
protected function getTestImage(): Image
{
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new PngEncoder();
$result = $encoder->encode($image);
$this->assertMediaType('image/png', (string) $result);

View File

@@ -6,31 +6,17 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')]
#[CoversClass(\Intervention\Image\Encoders\WebpEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\WebpEncoder::class)]
final class WebpEncoderTest extends BaseTestCase
final class WebpEncoderTest extends GdTestCase
{
protected function getTestImage(): Image
{
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new WebpEncoder(75);
$result = $encoder->encode($image);
$this->assertMediaType('image/webp', (string) $result);