mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 14:26:54 +08:00
added tests
This commit is contained in:
@ -55,6 +55,7 @@
|
||||
"yiisoft/yii2-codeception": "self.version",
|
||||
"yiisoft/yii2-debug": "self.version",
|
||||
"yiisoft/yii2-elasticsearch": "self.version",
|
||||
"yiisoft/yii2-imagine": "self.version",
|
||||
"yiisoft/yii2-gii": "self.version",
|
||||
"yiisoft/yii2-jui": "self.version",
|
||||
"yiisoft/yii2-mongodb": "self.version",
|
||||
@ -81,6 +82,7 @@
|
||||
"ext-mongo": ">=1.3.0",
|
||||
"ext-pdo": "*",
|
||||
"ext-pdo_mysql": "*",
|
||||
"imagine/imagine": "v0.5.0",
|
||||
"smarty/smarty": "*",
|
||||
"swiftmailer/swiftmailer": "*",
|
||||
"twig/twig": "*"
|
||||
@ -91,6 +93,7 @@
|
||||
"ext-mongo": "required by yii2-mongo extension",
|
||||
"ext-pdo": "required by yii2-sphinx extension",
|
||||
"ext-pdo_mysql": "required by yii2-sphinx extension",
|
||||
"imagine/imagine": "required by yii2-imagine extension",
|
||||
"smarty/smarty": "required by yii2-smarty extension",
|
||||
"swiftmailer/swiftmailer": "required by yii2-swiftmailer extension",
|
||||
"twig/twig": "required by yii2-twig extension"
|
||||
@ -103,6 +106,7 @@
|
||||
"yii\\debug\\": "extensions/",
|
||||
"yii\\elasticsearch\\": "extensions/",
|
||||
"yii\\gii\\": "extensions/",
|
||||
"yii\\imagine\\" : "extensions/",
|
||||
"yii\\jui\\": "extensions/",
|
||||
"yii\\mongodb\\": "extensions/",
|
||||
"yii\\redis\\": "extensions/",
|
||||
|
BIN
tests/unit/data/imagine/GothamRnd-Light.otf
Normal file
BIN
tests/unit/data/imagine/GothamRnd-Light.otf
Normal file
Binary file not shown.
BIN
tests/unit/data/imagine/large.jpg
Normal file
BIN
tests/unit/data/imagine/large.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
BIN
tests/unit/data/imagine/xparent.gif
Normal file
BIN
tests/unit/data/imagine/xparent.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
118
tests/unit/extensions/imagine/AbstractImageTest.php
Normal file
118
tests/unit/extensions/imagine/AbstractImageTest.php
Normal file
@ -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();
|
||||
}
|
31
tests/unit/extensions/imagine/ImageGdTest.php
Normal file
31
tests/unit/extensions/imagine/ImageGdTest.php
Normal file
@ -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;
|
||||
}
|
||||
|
||||
}
|
30
tests/unit/extensions/imagine/ImageGmagickTest.php
Normal file
30
tests/unit/extensions/imagine/ImageGmagickTest.php
Normal file
@ -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;
|
||||
}
|
||||
|
||||
}
|
30
tests/unit/extensions/imagine/ImageImagickTest.php
Normal file
30
tests/unit/extensions/imagine/ImageImagickTest.php
Normal file
@ -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;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user