1
0
mirror of https://github.com/Intervention/image.git synced 2025-03-15 22:49:40 +01:00

Fix tests

This commit is contained in:
Oliver Vogel 2023-11-25 11:42:19 +01:00
parent 7dc31dfb32
commit ebfe8cfef9
46 changed files with 182 additions and 287 deletions

View File

@ -12,10 +12,10 @@ class DrawLineModifier extends DrawModifier
foreach ($image as $frame) {
imageline(
$frame->native(),
$this->drawable->getStart()->x(),
$this->drawable->getStart()->y(),
$this->drawable->getEnd()->x(),
$this->drawable->getEnd()->y(),
$this->drawable->start()->x(),
$this->drawable->start()->y(),
$this->drawable->end()->x(),
$this->drawable->end()->y(),
$this->driver()->colorToNative(
$this->backgroundColor(),
$image->colorspace()

View File

@ -16,7 +16,7 @@ class PngEncoder extends DriverEncoder
$compression = Imagick::COMPRESSION_ZIP;
$image = $image->modify(new LimitColorsModifier($this->color_limit));
$imagick = $image->core()->frame()->native();
$imagick = $image->core()->native();
$imagick->setFormat($format);
$imagick->setImageFormat($format);
$imagick->setCompression($compression);

View File

@ -11,7 +11,7 @@ class DrawLineModifier extends DrawModifier
public function apply(ImageInterface $image): ImageInterface
{
$drawing = new ImagickDraw();
$drawing->setStrokeWidth($this->drawable->getWidth());
$drawing->setStrokeWidth($this->drawable->width());
$drawing->setStrokeColor(
$this->driver()->colorToNative(
$this->backgroundColor(),
@ -20,10 +20,10 @@ class DrawLineModifier extends DrawModifier
);
$drawing->line(
$this->drawable->getStart()->x(),
$this->drawable->getStart()->y(),
$this->drawable->getEnd()->x(),
$this->drawable->getEnd()->y(),
$this->drawable->start()->x(),
$this->drawable->start()->y(),
$this->drawable->end()->x(),
$this->drawable->end()->y(),
);
foreach ($image as $frame) {

View File

@ -1,32 +0,0 @@
<?php
namespace Intervention\Image\Interfaces;
interface FactoryInterface
{
/**
* Create new image in the given size
*
* @param int $width
* @param int $height
* @return ImageInterface
*/
public function newImage(int $width, int $height): ImageInterface;
/**
* Create new animated image
*
* @param callable $callback
* @return ImageInterface
*/
public function newAnimation(callable $callback): ImageInterface;
/**
* Create new driver specific core image object
*
* @param int $width
* @param int $height
* @param null|ColorInterface $background
*/
public function newCore(int $width, int $height, ?ColorInterface $background = null);
}

View File

@ -1,28 +0,0 @@
<?php
declare(strict_types=1);
namespace Intervention\Image\Tests\Drivers;
use Intervention\Image\Drivers\AbstractDriver;
use Intervention\Image\Encoders\PngEncoder as GenericEncoder;
use Intervention\Image\Drivers\Encoders\PngEncoder as SpecializedEncoder;
use Intervention\Image\Tests\TestCase;
use Mockery;
/**
* @covers \Intervention\Image\Drivers\AbstractDriver
*
* @internal
*/
class AbstractDriverTest extends TestCase
{
public function testResolve(): void
{
$driver = Mockery::mock(AbstractDriver::class)->makePartial();
$encoder = new GenericEncoder();
$this->assertInstanceOf(GenericEncoder::class, $encoder);
$result = $driver->resolve(new GenericEncoder());
$this->assertInstanceOf(SpecializedEncoder::class, $result);
}
}

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\Base64ImageDecoder;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\BinaryImageDecoder;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\DataUriImageDecoder;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\FilePointerImageDecoder;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\ImageObjectDecoder;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -2,10 +2,11 @@
namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
use Intervention\Image\Collection;
use Intervention\Image\Drivers\Gd\Encoders\AvifEncoder;
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\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**
@ -16,9 +17,12 @@ class AvifEncoderTest extends TestCase
{
protected function getTestImage(): Image
{
return new Image(new Collection([
new Frame(imagecreatetruecolor(3, 2))
]));
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void

View File

@ -2,10 +2,11 @@
namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
use Intervention\Image\Collection;
use Intervention\Image\Drivers\Gd\Encoders\BmpEncoder;
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\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**
@ -16,9 +17,12 @@ class BmpEncoderTest extends TestCase
{
protected function getTestImage(): Image
{
$frame = new Frame(imagecreatetruecolor(3, 2));
return new Image(new Collection([$frame]));
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void

View File

@ -2,10 +2,11 @@
namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
use Intervention\Image\Collection;
use Intervention\Image\Drivers\Gd\Encoders\GifEncoder;
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\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
@ -32,7 +33,10 @@ class GifEncoderTest extends TestCase
$frame3 = new Frame($gd3);
$frame3->setDelay(1);
return new Image(new Collection([$frame1, $frame2, $frame3]));
return new Image(
new Driver(),
new Core([$frame1, $frame2, $frame3])
);
}
public function testEncode(): void
@ -46,7 +50,7 @@ class GifEncoderTest extends TestCase
public function testEncodeReduced(): void
{
$image = $this->createTestImage('gradient.gif');
$gd = $image->frame()->core();
$gd = $image->core()->native();
$this->assertEquals(15, imagecolorstotal($gd));
$encoder = new GifEncoder(2);
$result = $encoder->encode($image);

View File

@ -2,10 +2,11 @@
namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
use Intervention\Image\Collection;
use Intervention\Image\Drivers\Gd\Encoders\JpegEncoder;
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\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**
@ -16,9 +17,12 @@ class JpegEncoderTest extends TestCase
{
protected function getTestImage(): Image
{
$frame = new Frame(imagecreatetruecolor(3, 2));
return new Image(new Collection([$frame]));
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void

View File

@ -2,10 +2,11 @@
namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
use Intervention\Image\Collection;
use Intervention\Image\Drivers\Gd\Encoders\PngEncoder;
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\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
@ -19,9 +20,12 @@ class PngEncoderTest extends TestCase
protected function getTestImage(): Image
{
$frame = new Frame(imagecreatetruecolor(3, 2));
return new Image(new Collection([$frame]));
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void
@ -35,7 +39,7 @@ class PngEncoderTest extends TestCase
public function testEncodeReduced(): void
{
$image = $this->createTestImage('tile.png');
$gd = $image->frame()->core();
$gd = $image->core()->native();
$this->assertEquals(3, imagecolorstotal($gd));
$encoder = new PngEncoder(2);
$result = $encoder->encode($image);

View File

@ -4,10 +4,11 @@ declare(strict_types=1);
namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
use Intervention\Image\Collection;
use Intervention\Image\Drivers\Gd\Encoders\WebpEncoder;
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\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**
@ -17,9 +18,12 @@ final class WebpEncoderTest extends TestCase
{
protected function getTestImage(): Image
{
$frame = new Frame(imagecreatetruecolor(3, 2));
return new Image(new Collection([$frame]));
return new Image(
new Driver(),
new Core([
new Frame(imagecreatetruecolor(3, 2))
])
);
}
public function testEncode(): void

View File

@ -1,40 +0,0 @@
<?php
namespace Intervention\Image\Tests\Drivers\Gd;
use GdImage;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Drivers\Gd\Factory;
use Intervention\Image\Tests\TestCase;
/**
* @requires extension gd
* @covers \Intervention\Image\Drivers\Gd\Factory
*/
class FactoryTest extends TestCase
{
public function testNewImage(): void
{
$factory = new Factory();
$image = $factory->newImage(3, 2);
$this->assertInstanceOf(Image::class, $image);
}
public function testNewAnimation(): void
{
$factory = new Factory();
$image = $factory->newAnimation(function ($animation) {
$animation->add($this->getTestImagePath('blue.gif'), 1.2);
$animation->add($this->getTestImagePath('red.gif'), 1.2);
});
$this->assertInstanceOf(Image::class, $image);
$this->assertEquals(2, $image->count());
}
public function testNewCore(): void
{
$factory = new Factory();
$core = $factory->newCore(3, 2);
$this->assertInstanceOf(GdImage::class, $core);
}
}

View File

@ -1,30 +0,0 @@
<?php
namespace Intervention\Image\Tests\Drivers\Gd;
use Intervention\Image\Drivers\Gd\Font;
use Intervention\Image\Tests\TestCase;
class FontTest extends TestCase
{
public function testGetSize(): void
{
$font = new Font();
$font->setSize(12);
$this->assertEquals(9, $font->size());
}
public function testGetGdFont(): void
{
$font = new Font();
$this->assertEquals(1, $font->getGdFont());
$font->setFilename(12);
$this->assertEquals(12, $font->getGdFont());
}
public function testCapHeight(): void
{
$font = new Font();
$this->assertEquals(8, $font->capHeight());
}
}

View File

@ -3,8 +3,9 @@
namespace Intervention\Image\Tests\Drivers\Gd;
use GdImage;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Tests\TestCase;
@ -25,10 +26,10 @@ class FrameTest extends TestCase
$this->assertInstanceOf(Frame::class, $frame);
}
public function testGetCore(): void
public function testGetNative(): void
{
$frame = $this->getTestFrame();
$this->assertInstanceOf(GdImage::class, $frame->core());
$this->assertInstanceOf(GdImage::class, $frame->native());
}
public function testSetCore(): void
@ -37,7 +38,7 @@ class FrameTest extends TestCase
$core2 = imagecreatetruecolor(3, 3);
$frame = new Frame($core1);
$this->assertEquals(2, $frame->size()->height());
$result = $frame->setCore($core2);
$result = $frame->setNative($core2);
$this->assertInstanceOf(Frame::class, $result);
$this->assertEquals(3, $frame->size()->height());
}
@ -103,6 +104,6 @@ class FrameTest extends TestCase
public function testToImage(): void
{
$frame = $this->getTestFrame();
$this->assertInstanceOf(Image::class, $frame->toImage());
$this->assertInstanceOf(Image::class, $frame->toImage(new Driver()));
}
}

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Gd;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Drivers\Gd\Image;
use Intervention\Image\Image;
use Intervention\Image\Drivers\Gd\InputHandler;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Tests\TestCase;

View File

@ -10,7 +10,7 @@ use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
/**
* @requires extension gd
* @covers \Intervention\Image\Modifiers\DrawPixelModifier
* @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawEllipseModifier
*/
class DrawEllipseModifierTest extends TestCase
{
@ -20,9 +20,9 @@ class DrawEllipseModifierTest extends TestCase
{
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$drawable = new Ellipse(10, 10);
$drawable->background('b53717');
$image->modify(new DrawEllipseModifier(new Point(14, 14), $drawable));
$drawable = new Ellipse(10, 10, new Point(14, 14));
$drawable->setBackgroundColor('b53717');
$image->modify(new DrawEllipseModifier($drawable));
$this->assertEquals('b53717', $image->pickColor(14, 14)->toHex());
}
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
use Intervention\Image\Drivers\Gd\Modifiers\DrawLineModifier;
use Intervention\Image\Modifiers\DrawLineModifier;
use Intervention\Image\Geometry\Line;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Tests\TestCase;
@ -10,7 +10,7 @@ use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
/**
* @requires extension gd
* @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawRectangleModifier
* @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawLineModifier
*/
class DrawLineModifierTest extends TestCase
{
@ -21,8 +21,8 @@ class DrawLineModifierTest extends TestCase
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$line = new Line(new Point(0, 0), new Point(10, 0), 4);
$line->background('b53517');
$image->modify(new DrawLineModifier(new Point(0, 0), $line));
$line->setBackgroundColor('b53517');
$image->modify(new DrawLineModifier($line));
$this->assertEquals('b53517', $image->pickColor(0, 0)->toHex());
}
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
use Intervention\Image\Drivers\Gd\Modifiers\DrawPixelModifier;
use Intervention\Image\Modifiers\DrawPixelModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
use Intervention\Image\Drivers\Gd\Modifiers\DrawPolygonModifier;
use Intervention\Image\Modifiers\DrawPolygonModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Polygon;
use Intervention\Image\Tests\TestCase;
@ -21,7 +21,7 @@ class DrawPolygonModifierTest extends TestCase
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$drawable = new Polygon([new Point(0, 0), new Point(15, 15), new Point(20, 20)]);
$drawable->background('b53717');
$drawable->setBackgroundColor('b53717');
$image->modify(new DrawPolygonModifier($drawable));
$this->assertEquals('b53717', $image->pickColor(14, 14)->toHex());
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
use Intervention\Image\Drivers\Gd\Modifiers\DrawRectangleModifier;
use Intervention\Image\Modifiers\DrawRectangleModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Tests\TestCase;
@ -20,9 +20,9 @@ class DrawRectangleModifierTest extends TestCase
{
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$rectangle = new Rectangle(300, 200);
$rectangle->background('ffffff');
$image->modify(new DrawRectangleModifier(new Point(14, 14), $rectangle));
$rectangle = new Rectangle(300, 200, new Point(14, 14));
$rectangle->setBackgroundColor('ffffff');
$image->modify(new DrawRectangleModifier($rectangle));
$this->assertEquals('ffffff', $image->pickColor(14, 14)->toHex());
}
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
use Intervention\Image\Drivers\Gd\Modifiers\ResolutionModifier;
use Intervention\Image\Modifiers\ResolutionModifier;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;

View File

@ -5,7 +5,7 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
use Intervention\Image\Colors\Cmyk\Colorspace as CmykColorspace;
use Intervention\Image\Colors\Rgb\Colorspace as RgbColorspace;
use Intervention\Image\Drivers\Imagick\Decoders\BinaryImageDecoder;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
class BinaryImageDecoderTest extends TestCase

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
use Intervention\Image\Drivers\Imagick\Decoders\FilePointerImageDecoder;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;

View File

@ -3,7 +3,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
use Intervention\Image\Drivers\Imagick\Decoders\ImageObjectDecoder;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;

View File

@ -4,8 +4,10 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Encoders\AvifEncoder;
use Intervention\Image\Drivers\Imagick\Image;
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\TestCase;
/**
@ -19,7 +21,10 @@ class AvifEncoderTest extends TestCase
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');
return new Image($imagick);
return new Image(
new Driver(),
new Core($imagick)
);
}
public function testEncode(): void

View File

@ -4,8 +4,10 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Encoders\BmpEncoder;
use Intervention\Image\Drivers\Imagick\Image;
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\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
@ -22,7 +24,10 @@ class BmpEncoderTest extends TestCase
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');
return new Image($imagick);
return new Image(
new Driver(),
new Core($imagick)
);
}
public function testEncode(): void
@ -36,7 +41,7 @@ class BmpEncoderTest extends TestCase
public function testEncodeReduced(): void
{
$image = $this->createTestImage('gradient.bmp');
$imagick = $image->frame()->core();
$imagick = $image->core()->native();
$this->assertEquals(15, $imagick->getImageColors());
$encoder = new BmpEncoder(2);
$result = $encoder->encode($image);

View File

@ -4,8 +4,10 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Encoders\GifEncoder;
use Intervention\Image\Drivers\Imagick\Image;
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\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
@ -36,7 +38,10 @@ class GifEncoderTest extends TestCase
$frame->setImageDelay(50);
$imagick->addImage($frame);
return new Image($imagick);
return new Image(
new Driver(),
new Core($imagick)
);
}
public function testEncode(): void
@ -50,7 +55,7 @@ class GifEncoderTest extends TestCase
public function testEncodeReduced(): void
{
$image = $this->createTestImage('gradient.gif');
$imagick = $image->frame()->core();
$imagick = $image->core()->native();
$this->assertEquals(15, $imagick->getImageColors());
$encoder = new GifEncoder(2);
$result = $encoder->encode($image);

View File

@ -4,8 +4,10 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Encoders\JpegEncoder;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\JpegEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**
@ -19,7 +21,10 @@ class JpegEncoderTest extends TestCase
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');
return new Image($imagick);
return new Image(
new Driver(),
new Core($imagick)
);
}
public function testEncode(): void

View File

@ -6,8 +6,10 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Encoders\PngEncoder;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\PngEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
@ -23,7 +25,10 @@ final class PngEncoderTest extends TestCase
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'jpg');
return new Image($imagick);
return new Image(
new Driver(),
new Core($imagick)
);
}
public function testEncode(): void
@ -37,7 +42,7 @@ final class PngEncoderTest extends TestCase
public function testEncodeReduced(): void
{
$image = $this->createTestImage('tile.png');
$imagick = $image->frame()->core();
$imagick = $image->core()->native();
$this->assertEquals(3, $imagick->getImageColors());
$encoder = new PngEncoder(2);
$result = $encoder->encode($image);

View File

@ -6,8 +6,10 @@ namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Encoders\WebpEncoder;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Image;
use Intervention\Image\Tests\TestCase;
/**
@ -20,7 +22,10 @@ final class WebpEncoderTest extends TestCase
$imagick = new Imagick();
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');
return new Image($imagick);
return new Image(
new Driver(),
new Core($imagick)
);
}
public function testEncode(): void

View File

@ -1,40 +0,0 @@
<?php
namespace Intervention\Image\Tests\Drivers\Imagick;
use Imagick;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Drivers\Imagick\Factory;
use Intervention\Image\Tests\TestCase;
/**
* @requires extension imagick
* @covers \Intervention\Image\Drivers\Imagick\Factory
*/
class FactoryTest extends TestCase
{
public function testNewImage(): void
{
$factory = new Factory();
$image = $factory->newImage(3, 2);
$this->assertInstanceOf(Image::class, $image);
}
public function testNewAnimation(): void
{
$factory = new Factory();
$image = $factory->newAnimation(function ($animation) {
$animation->add($this->getTestImagePath('blue.gif'), 1.2);
$animation->add($this->getTestImagePath('red.gif'), 1.2);
});
$this->assertInstanceOf(Image::class, $image);
$this->assertEquals(2, $image->count());
}
protected function testNewCore(): void
{
$factory = new Factory();
$core = $factory->newCore(3, 2);
$this->assertInstanceOf(Imagick::class, $core);
}
}

View File

@ -4,8 +4,9 @@ namespace Intervention\Image\Tests\Drivers\Imagick;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Drivers\Imagick\Frame;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Image;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Tests\TestCase;
@ -46,7 +47,7 @@ class FrameTest extends TestCase
$result = $frame->setDelay(2.5);
$this->assertInstanceOf(Frame::class, $result);
$this->assertEquals(2.5, $frame->delay());
$this->assertEquals(250, $frame->core()->getImageDelay());
$this->assertEquals(250, $frame->native()->getImageDelay());
}
public function testSetGetDispose()
@ -94,6 +95,6 @@ class FrameTest extends TestCase
public function testToImage(): void
{
$frame = $this->getTestFrame();
$this->assertInstanceOf(Image::class, $frame->toImage());
$this->assertInstanceOf(Image::class, $frame->toImage(new Driver()));
}
}

View File

@ -4,7 +4,7 @@ namespace Intervention\Image\Tests\Drivers\Imagick;
use SplFileInfo;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Drivers\Imagick\Image;
use Intervention\Image\Image;
use Intervention\Image\Drivers\Imagick\InputHandler;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Tests\TestCase;

View File

@ -16,9 +16,9 @@ class DrawEllipseModifierTest extends TestCase
{
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$drawable = new Ellipse(10, 10);
$drawable->background('b53717');
$image->modify(new DrawEllipseModifier(new Point(14, 14), $drawable));
$drawable = new Ellipse(10, 10, new Point(14, 14));
$drawable->setBackgroundColor('b53717');
$image->modify(new DrawEllipseModifier($drawable));
$this->assertEquals('b53717', $image->pickColor(14, 14)->toHex());
}
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
use Intervention\Image\Drivers\Imagick\Modifiers\DrawLineModifier;
use Intervention\Image\Modifiers\DrawLineModifier;
use Intervention\Image\Geometry\Line;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Tests\TestCase;
@ -17,8 +17,8 @@ class DrawLineModifierTest extends TestCase
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$line = new Line(new Point(0, 0), new Point(10, 0), 4);
$line->background('b53517');
$image->modify(new DrawLineModifier(new Point(0, 0), $line));
$line->setBackgroundColor('b53517');
$image->modify(new DrawLineModifier($line));
$this->assertEquals('b53517', $image->pickColor(0, 0)->toHex());
}
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
use Intervention\Image\Drivers\Imagick\Modifiers\DrawPixelModifier;
use Intervention\Image\Modifiers\DrawPixelModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
use Intervention\Image\Drivers\Imagick\Modifiers\DrawPolygonModifier;
use Intervention\Image\Modifiers\DrawPolygonModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Polygon;
use Intervention\Image\Tests\TestCase;
@ -17,7 +17,7 @@ class DrawPolygonModifierTest extends TestCase
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$drawable = new Polygon([new Point(0, 0), new Point(15, 15), new Point(20, 20)]);
$drawable->background('b53717');
$drawable->setBackgroundColor('b53717');
$image->modify(new DrawPolygonModifier($drawable));
$this->assertEquals('b53717', $image->pickColor(14, 14)->toHex());
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
use Intervention\Image\Drivers\Imagick\Modifiers\DrawRectangleModifier;
use Intervention\Image\Modifiers\DrawRectangleModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Tests\TestCase;
@ -16,9 +16,9 @@ class DrawRectangleModifierTest extends TestCase
{
$image = $this->createTestImage('trim.png');
$this->assertEquals('00aef0', $image->pickColor(14, 14)->toHex());
$rectangle = new Rectangle(300, 200);
$rectangle->background('ffffff');
$image->modify(new DrawRectangleModifier(new Point(14, 14), $rectangle));
$rectangle = new Rectangle(300, 200, new Point(14, 14));
$rectangle->setBackgroundColor('ffffff');
$image->modify(new DrawRectangleModifier($rectangle));
$this->assertEquals('ffffff', $image->pickColor(14, 14)->toHex());
}
}

View File

@ -2,7 +2,7 @@
namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
use Intervention\Image\Drivers\Imagick\Modifiers\ResolutionModifier;
use Intervention\Image\Modifiers\ResolutionModifier;
use Intervention\Image\Tests\TestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;

View File

@ -5,7 +5,9 @@ namespace Intervention\Image\Tests;
use Intervention\Image\Colors\Rgb\Colorspace;
use Intervention\Image\EncodedImage;
use Intervention\Image\Image;
use Intervention\Image\Interfaces\AnalyzerInterface;
use Intervention\Image\Interfaces\CollectionInterface;
use Intervention\Image\Interfaces\ColorspaceInterface;
use Intervention\Image\Interfaces\CoreInterface;
use Intervention\Image\Interfaces\DriverInterface;
use Intervention\Image\Interfaces\EncodedImageInterface;
@ -20,6 +22,7 @@ class ImageTest extends TestCase
{
protected $modifier_mock;
protected $encoder_mock;
protected $analyzer_mock;
public function setUp(): void
{
@ -33,8 +36,14 @@ class ImageTest extends TestCase
new EncodedImage('foo')
);
$analyzer = Mockery::mock(AnalyzerInterface::class);
$analyzer->shouldReceive('analyze')->andReturn(
Mockery::mock(ColorspaceInterface::class)
);
$this->encoder_mock = $encoder;
$this->modifier_mock = $modifier;
$this->analyzer_mock = $analyzer;
}
private function testImage(): Image
@ -44,12 +53,12 @@ class ImageTest extends TestCase
$core->shouldReceive('height')->andReturn(200);
$core->shouldReceive('count')->andReturn(12);
$core->shouldReceive('loops')->andReturn(12);
$core->shouldReceive('colorspace')->andReturn(new Colorspace());
$core->shouldReceive('resolve')->andReturn(new GreyscaleModifier());
$driver = Mockery::mock(DriverInterface::class);
$driver->shouldReceive('resolve')->with($this->modifier_mock)->andReturn($this->modifier_mock);
$driver->shouldReceive('resolve')->with($this->encoder_mock)->andReturn($this->encoder_mock);
$driver->shouldReceive('resolve')->with($this->analyzer_mock)->andReturn($this->analyzer_mock);
$exif = Mockery::mock(CollectionInterface::class);