Antonio Ramirez
11 years ago
8 changed files with 213 additions and 0 deletions
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,118 @@ |
|||||||
|
<?php |
||||||
|
namespace yiiunit\extensions\imagine; |
||||||
|
|
||||||
|
use Yii; |
||||||
|
use Imagine\Image\Point; |
||||||
|
use yiiunit\VendorTestCase; |
||||||
|
|
||||||
|
Yii::setAlias('@yii/imagine', __DIR__ . '/../../../../extensions/yii/imagine'); |
||||||
|
|
||||||
|
abstract class AbstractImageTest extends VendorTestCase |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @var yii\imagine\Image |
||||||
|
*/ |
||||||
|
protected $image; |
||||||
|
protected $imageFile; |
||||||
|
protected $watermarkFile; |
||||||
|
protected $runtimeTextFile; |
||||||
|
protected $runtimeWatermarkFile; |
||||||
|
|
||||||
|
protected function setUp() |
||||||
|
{ |
||||||
|
$this->imageFile = Yii::getAlias('@yiiunit/data/imagine/large') . '.jpg'; |
||||||
|
$this->watermarkFile = Yii::getAlias('@yiiunit/data/imagine/xparent') . '.gif'; |
||||||
|
$this->runtimeTextFile = Yii::getAlias('@yiiunit/runtime/image-text-test') . '.png'; |
||||||
|
$this->runtimeWatermarkFile = Yii::getAlias('@yiiunit/runtime/image-watermark-test') . '.png'; |
||||||
|
parent::setUp(); |
||||||
|
} |
||||||
|
|
||||||
|
protected function tearDown() |
||||||
|
{ |
||||||
|
@unlink($this->runtimeTextFile); |
||||||
|
@unlink($this->runtimeWatermarkFile); |
||||||
|
} |
||||||
|
|
||||||
|
public function testText() { |
||||||
|
if(!$this->isFontTestSupported()) { |
||||||
|
$this->markTestSkipped('Skipping ImageGdTest Gd not installed'); |
||||||
|
} |
||||||
|
|
||||||
|
$fontFile = Yii::getAlias('@yiiunit/data/imagine/GothamRnd-Light') . '.otf'; |
||||||
|
|
||||||
|
$img = $this->image->text($this->imageFile, 'Yii-2 Image', [ |
||||||
|
'font' => $fontFile, |
||||||
|
'size' => 12, |
||||||
|
'color' => '000' |
||||||
|
]); |
||||||
|
|
||||||
|
$img->save($this->runtimeTextFile); |
||||||
|
$this->assertTrue(file_exists($this->runtimeTextFile)); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public function testCrop() |
||||||
|
{ |
||||||
|
$point = [20,20]; |
||||||
|
$img = $this->image->crop($this->imageFile, 100, 100, $point); |
||||||
|
|
||||||
|
$this->assertEquals(100, $img->getSize()->getWidth()); |
||||||
|
$this->assertEquals(100, $img->getSize()->getHeight()); |
||||||
|
|
||||||
|
$point = new Point(20, 20); |
||||||
|
$img = $this->image->crop($this->imageFile, 100, 100, $point); |
||||||
|
$this->assertEquals(100, $img->getSize()->getWidth()); |
||||||
|
$this->assertEquals(100, $img->getSize()->getHeight()); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public function testWatermark() |
||||||
|
{ |
||||||
|
$img = $this->image->watermark($this->imageFile, $this->watermarkFile); |
||||||
|
$img->save($this->runtimeWatermarkFile); |
||||||
|
$this->assertTrue(file_exists($this->runtimeWatermarkFile)); |
||||||
|
} |
||||||
|
|
||||||
|
public function testFrame() |
||||||
|
{ |
||||||
|
$frameSize = 5; |
||||||
|
$original = $this->image->getImagine()->open($this->imageFile); |
||||||
|
$originalSize = $original->getSize(); |
||||||
|
$img = $this->image->frame($this->imageFile, $frameSize, '666', 0); |
||||||
|
$size = $img->getSize(); |
||||||
|
|
||||||
|
$this->assertEquals($size->getWidth(), $originalSize->getWidth() + ($frameSize * 2)); |
||||||
|
} |
||||||
|
|
||||||
|
public function testThumbnail() |
||||||
|
{ |
||||||
|
$img = $this->image->thumbnail($this->imageFile, 120, 120); |
||||||
|
|
||||||
|
$this->assertEquals(120, $img->getSize()->getWidth()); |
||||||
|
$this->assertEquals(120, $img->getSize()->getHeight()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @expectedException \yii\base\InvalidConfigException |
||||||
|
*/ |
||||||
|
public function testShouldThrowExceptionOnDriverInvalidArgument() { |
||||||
|
$this->image->setDriver('fake-driver'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @expectedException \InvalidArgumentException |
||||||
|
*/ |
||||||
|
public function testShouldThrowExceptionOnCropInvalidArgument() { |
||||||
|
$this->image->crop($this->imageFile, 100, 100, new \stdClass()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @expectedException \InvalidArgumentException |
||||||
|
*/ |
||||||
|
public function testShouldThrowExceptionOnWatermarkInvalidArgument() { |
||||||
|
$this->image->watermark($this->imageFile, $this->watermarkFile, new \stdClass()); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
abstract protected function isFontTestSupported(); |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace yiiunit\extensions\imagine; |
||||||
|
|
||||||
|
use yii\imagine\Image; |
||||||
|
|
||||||
|
/** |
||||||
|
* @group vendor |
||||||
|
* @group imagine |
||||||
|
*/ |
||||||
|
class ImageGdTest extends AbstractImageTest |
||||||
|
{ |
||||||
|
|
||||||
|
protected function setUp() |
||||||
|
{ |
||||||
|
if (!function_exists('gd_info')) { |
||||||
|
$this->markTestSkipped('Skipping ImageGdTest, Gd not installed'); |
||||||
|
} else { |
||||||
|
$this->image = new Image(); |
||||||
|
$this->image->setDriver(Image::DRIVER_GD2); |
||||||
|
parent::setUp(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected function isFontTestSupported() |
||||||
|
{ |
||||||
|
$infos = gd_info(); |
||||||
|
return isset($infos['FreeType Support']) ? $infos['FreeType Support'] : false; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace yiiunit\extensions\imagine; |
||||||
|
|
||||||
|
use yii\imagine\Image; |
||||||
|
|
||||||
|
/** |
||||||
|
* @group vendor |
||||||
|
* @group imagine |
||||||
|
*/ |
||||||
|
class ImageGmagickTest extends AbstractImageTest |
||||||
|
{ |
||||||
|
|
||||||
|
protected function setUp() |
||||||
|
{ |
||||||
|
if (!class_exists('Gmagick')) { |
||||||
|
$this->markTestSkipped('Skipping ImageGmagickTest, Gmagick is not installed'); |
||||||
|
} else { |
||||||
|
$this->image = new Image(); |
||||||
|
$this->image->setDriver(Image::DRIVER_GMAGICK); |
||||||
|
parent::setUp(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected function isFontTestSupported() |
||||||
|
{ |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace yiiunit\extensions\imagine; |
||||||
|
|
||||||
|
use yii\imagine\Image; |
||||||
|
|
||||||
|
/** |
||||||
|
* @group vendor |
||||||
|
* @group imagine |
||||||
|
*/ |
||||||
|
class ImageImagickTest extends AbstractImageTest |
||||||
|
{ |
||||||
|
|
||||||
|
protected function setUp() |
||||||
|
{ |
||||||
|
if (!class_exists('Imagick')) { |
||||||
|
$this->markTestSkipped('Skipping ImageImagickTest, Imagick is not installed'); |
||||||
|
} else { |
||||||
|
$this->image = new Image(); |
||||||
|
$this->image->setDriver(Image::DRIVER_IMAGICK); |
||||||
|
parent::setUp(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected function isFontTestSupported() |
||||||
|
{ |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue