Skip to content

Commit

Permalink
Refactor encoder tests
Browse files Browse the repository at this point in the history
  • Loading branch information
olivervogel committed Mar 26, 2024
1 parent f035f7d commit c261654
Show file tree
Hide file tree
Showing 15 changed files with 33 additions and 286 deletions.
20 changes: 3 additions & 17 deletions tests/Unit/Drivers/Gd/Encoders/AvifEncoderTest.php
Expand Up @@ -6,31 +6,17 @@

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);
Expand Down
20 changes: 3 additions & 17 deletions tests/Unit/Drivers/Gd/Encoders/BmpEncoderTest.php
Expand Up @@ -6,31 +6,17 @@

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);
Expand Down
27 changes: 1 addition & 26 deletions tests/Unit/Drivers/Gd/Encoders/GifEncoderTest.php
Expand Up @@ -6,42 +6,17 @@

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')]
#[CoversClass(\Intervention\Image\Encoders\GifEncoder::class)]
#[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);
Expand Down
20 changes: 3 additions & 17 deletions tests/Unit/Drivers/Gd/Encoders/JpegEncoderTest.php
Expand Up @@ -6,31 +6,17 @@

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);
Expand Down
16 changes: 1 addition & 15 deletions tests/Unit/Drivers/Gd/Encoders/PngEncoderTest.php
Expand Up @@ -6,31 +6,17 @@

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')]
#[CoversClass(\Intervention\Image\Encoders\PngEncoder::class)]
#[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);
Expand Down
20 changes: 3 additions & 17 deletions tests/Unit/Drivers/Gd/Encoders/WebpEncoderTest.php
Expand Up @@ -6,31 +6,17 @@

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);
Expand Down
22 changes: 3 additions & 19 deletions tests/Unit/Drivers/Imagick/Encoders/AvifEncoderTest.php
Expand Up @@ -6,33 +6,17 @@

use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\AvifEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\ImagickTestCase;

#[RequiresPhpExtension('imagick')]
#[CoversClass(\Intervention\Image\Encoders\AvifEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\AvifEncoder::class)]
final class AvifEncoderTest extends BaseTestCase
final class AvifEncoderTest extends ImagickTestCase
{
protected function getTestImage(): Image
{
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');

return new Image(
new Driver(),
new Core($imagick)
);
}

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);
Expand Down
18 changes: 1 addition & 17 deletions tests/Unit/Drivers/Imagick/Encoders/BmpEncoderTest.php
Expand Up @@ -6,33 +6,17 @@

use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\BmpEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\ImagickTestCase;

#[RequiresPhpExtension('imagick')]
#[CoversClass(\Intervention\Image\Encoders\BmpEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\BmpEncoder::class)]
final class BmpEncoderTest extends ImagickTestCase
{
protected function getTestImage(): Image
{
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');

return new Image(
new Driver(),
new Core($imagick)
);
}

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);
Expand Down
32 changes: 1 addition & 31 deletions tests/Unit/Drivers/Imagick/Encoders/GifEncoderTest.php
Expand Up @@ -6,47 +6,17 @@

use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\GifEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\ImagickTestCase;

#[RequiresPhpExtension('imagick')]
#[CoversClass(\Intervention\Image\Encoders\GifEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\GifEncoder::class)]
final class GifEncoderTest extends ImagickTestCase
{
protected function getTestImage(): Image
{
$imagick = new Imagick();

$frame = new Imagick();
$frame->newImage(30, 20, new ImagickPixel('red'), 'png');
$frame->setImageDelay(50);
$imagick->addImage($frame);

$frame = new Imagick();
$frame->newImage(30, 20, new ImagickPixel('green'), 'png');
$frame->setImageDelay(50);
$imagick->addImage($frame);

$frame = new Imagick();
$frame->newImage(30, 20, new ImagickPixel('blue'), 'png');
$frame->setImageDelay(50);
$imagick->addImage($frame);

return new Image(
new Driver(),
new Core($imagick)
);
}

public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new GifEncoder();
$result = $encoder->encode($image);
$this->assertMediaType('image/gif', (string) $result);
Expand Down
18 changes: 1 addition & 17 deletions tests/Unit/Drivers/Imagick/Encoders/HeicEncoderTest.php
Expand Up @@ -6,33 +6,17 @@

use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\HeicEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\ImagickTestCase;

#[RequiresPhpExtension('imagick')]
#[CoversClass(\Intervention\Image\Encoders\HeicEncoder::class)]
#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\HeicEncoder::class)]
final class HeicEncoderTest extends ImagickTestCase
{
protected function getTestImage(): Image
{
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'jpg');

return new Image(
new Driver(),
new Core($imagick)
);
}

public function testEncode(): void
{
$image = $this->getTestImage();
$image = $this->createTestImage(3, 2);
$encoder = new HeicEncoder(75);
$result = $encoder->encode($image);
$this->assertMediaType('image/heic', (string) $result);
Expand Down

0 comments on commit c261654

Please sign in to comment.