You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							98 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							98 lines
						
					
					
						
							2.5 KiB
						
					
					
				<?php | 
						|
namespace yiiunit\extensions\imagine; | 
						|
 | 
						|
use Yii; | 
						|
use yii\imagine\Image; | 
						|
use Imagine\Image\Point; | 
						|
use yiiunit\VendorTestCase; | 
						|
 | 
						|
Yii::setAlias('@yii/imagine', __DIR__ . '/../../../../extensions/yii/imagine'); | 
						|
 | 
						|
abstract class AbstractImageTest extends VendorTestCase | 
						|
{ | 
						|
	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 = Image::text($this->imageFile, 'Yii-2 Image', $fontFile, [0, 0], [ | 
						|
			'size' => 12, | 
						|
			'color' => '000' | 
						|
		]); | 
						|
 | 
						|
		$img->save($this->runtimeTextFile); | 
						|
		$this->assertTrue(file_exists($this->runtimeTextFile)); | 
						|
 | 
						|
	} | 
						|
 | 
						|
	public function testCrop() | 
						|
	{ | 
						|
		$point = [20, 20]; | 
						|
		$img = Image::crop($this->imageFile, 100, 100, $point); | 
						|
 | 
						|
		$this->assertEquals(100, $img->getSize()->getWidth()); | 
						|
		$this->assertEquals(100, $img->getSize()->getHeight()); | 
						|
 | 
						|
	} | 
						|
 | 
						|
	public function testWatermark() | 
						|
	{ | 
						|
		$img = Image::watermark($this->imageFile, $this->watermarkFile); | 
						|
		$img->save($this->runtimeWatermarkFile); | 
						|
		$this->assertTrue(file_exists($this->runtimeWatermarkFile)); | 
						|
	} | 
						|
 | 
						|
	public function testFrame() | 
						|
	{ | 
						|
		$frameSize = 5; | 
						|
		$original = Image::getImagine()->open($this->imageFile); | 
						|
		$originalSize = $original->getSize(); | 
						|
		$img = Image::frame($this->imageFile, $frameSize, '666', 0); | 
						|
		$size = $img->getSize(); | 
						|
 | 
						|
		$this->assertEquals($size->getWidth(), $originalSize->getWidth() + ($frameSize * 2)); | 
						|
	} | 
						|
 | 
						|
	public function testThumbnail() | 
						|
	{ | 
						|
		$img = 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() | 
						|
	{ | 
						|
		Image::setImagine(null); | 
						|
		Image::$driver = 'fake-driver'; | 
						|
		Image::getImagine(); | 
						|
	} | 
						|
 | 
						|
	abstract protected function isFontTestSupported(); | 
						|
}
 | 
						|
 |