diff --git a/tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php b/tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php index c1818dfd6..d01cfec50 100644 --- a/tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php +++ b/tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php @@ -15,6 +15,19 @@ class ResizeCanvasModifierTest extends TestCase use CanCreateGdTestImage; public function testModify(): void + { + $image = $this->createTestImage(1, 1); + $this->assertEquals(1, $image->width()); + $this->assertEquals(1, $image->height()); + $image->modify(new ResizeCanvasModifier(3, 3, 'ff0', 'center')); + $this->assertEquals(3, $image->width()); + $this->assertEquals(3, $image->height()); + $this->assertColor(255, 255, 0, 255, $image->pickColor(0, 0)); + $this->assertColor(255, 0, 0, 255, $image->pickColor(1, 1)); + $this->assertColor(255, 255, 0, 255, $image->pickColor(2, 2)); + } + + public function testModifyWithTransparency(): void { $image = $this->readTestImage('tile.png'); $this->assertEquals(16, $image->width()); diff --git a/tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php b/tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php index 8d356b243..607b51cb9 100644 --- a/tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php +++ b/tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php @@ -15,6 +15,19 @@ class ResizeCanvasRelativeModifierTest extends TestCase use CanCreateGdTestImage; public function testModify(): void + { + $image = $this->createTestImage(1, 1); + $this->assertEquals(1, $image->width()); + $this->assertEquals(1, $image->height()); + $image->modify(new ResizeCanvasRelativeModifier(2, 2, 'ff0', 'center')); + $this->assertEquals(3, $image->width()); + $this->assertEquals(3, $image->height()); + $this->assertColor(255, 255, 0, 255, $image->pickColor(0, 0)); + $this->assertColor(255, 0, 0, 255, $image->pickColor(1, 1)); + $this->assertColor(255, 255, 0, 255, $image->pickColor(2, 2)); + } + + public function testModifyWithTransparency(): void { $image = $this->readTestImage('tile.png'); $this->assertEquals(16, $image->width()); diff --git a/tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php b/tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php index 2b5805bcc..0b3d64aac 100644 --- a/tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php +++ b/tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php @@ -15,6 +15,19 @@ class ResizeCanvasModifierTest extends TestCase use CanCreateImagickTestImage; public function testModify(): void + { + $image = $this->createTestImage(1, 1); + $this->assertEquals(1, $image->width()); + $this->assertEquals(1, $image->height()); + $image->modify(new ResizeCanvasModifier(3, 3, 'ff0', 'center')); + $this->assertEquals(3, $image->width()); + $this->assertEquals(3, $image->height()); + $this->assertColor(255, 255, 0, 255, $image->pickColor(0, 0)); + $this->assertColor(255, 0, 0, 255, $image->pickColor(1, 1)); + $this->assertColor(255, 255, 0, 255, $image->pickColor(2, 2)); + } + + public function testModifyWithTransparency(): void { $image = $this->readTestImage('tile.png'); $this->assertEquals(16, $image->width()); diff --git a/tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php b/tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php index 4c76cb80a..1e54a0acc 100644 --- a/tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php +++ b/tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php @@ -15,6 +15,19 @@ class ResizeCanvasRelativeModifierTest extends TestCase use CanCreateImagickTestImage; public function testModify(): void + { + $image = $this->createTestImage(1, 1); + $this->assertEquals(1, $image->width()); + $this->assertEquals(1, $image->height()); + $image->modify(new ResizeCanvasRelativeModifier(2, 2, 'ff0', 'center')); + $this->assertEquals(3, $image->width()); + $this->assertEquals(3, $image->height()); + $this->assertColor(255, 255, 0, 255, $image->pickColor(0, 0)); + $this->assertColor(255, 0, 0, 255, $image->pickColor(1, 1)); + $this->assertColor(255, 255, 0, 255, $image->pickColor(2, 2)); + } + + public function testModifyWithTransparency(): void { $image = $this->readTestImage('tile.png'); $this->assertEquals(16, $image->width()); diff --git a/tests/Traits/CanCreateGdTestImage.php b/tests/Traits/CanCreateGdTestImage.php index a6e8de1c2..165b9d2fb 100644 --- a/tests/Traits/CanCreateGdTestImage.php +++ b/tests/Traits/CanCreateGdTestImage.php @@ -17,6 +17,19 @@ public function readTestImage($filename = 'test.jpg'): Image ); } + public function createTestImage(int $width, int $height): Image + { + $gd = imagecreatetruecolor($width, $height); + imagefill($gd, 0, 0, imagecolorallocate($gd, 255, 0, 0)); + + return new Image( + new Driver(), + new Core([ + new Frame($gd) + ]) + ); + } + public function createTestAnimation(): Image { $gd1 = imagecreatetruecolor(3, 2); diff --git a/tests/Traits/CanCreateImagickTestImage.php b/tests/Traits/CanCreateImagickTestImage.php index 9196c993f..d96920841 100644 --- a/tests/Traits/CanCreateImagickTestImage.php +++ b/tests/Traits/CanCreateImagickTestImage.php @@ -2,7 +2,11 @@ namespace Intervention\Image\Tests\Traits; +use Imagick; +use ImagickPixel; +use Intervention\Image\Drivers\Imagick\Core; use Intervention\Image\Drivers\Imagick\Decoders\FilePathImageDecoder; +use Intervention\Image\Drivers\Imagick\Driver; use Intervention\Image\Image; trait CanCreateImagickTestImage @@ -13,4 +17,20 @@ public function readTestImage($filename = 'test.jpg'): Image sprintf('%s/../images/%s', __DIR__, $filename) ); } + + public function createTestImage(int $width, int $height): Image + { + $background = new ImagickPixel('rgb(255, 0, 0)'); + $imagick = new Imagick(); + $imagick->newImage($width, $height, $background, 'png'); + $imagick->setType(Imagick::IMGTYPE_UNDEFINED); + $imagick->setImageType(Imagick::IMGTYPE_UNDEFINED); + $imagick->setColorspace(Imagick::COLORSPACE_SRGB); + $imagick->setImageResolution(96, 96); + + return new Image( + new Driver(), + new Core($imagick) + ); + } }