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.
		
		
		
		
		
			
		
			
				
					
					
						
							120 lines
						
					
					
						
							3.1 KiB
						
					
					
				
			
		
		
	
	
							120 lines
						
					
					
						
							3.1 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', [ | |
| 			'font' => $fontFile, | |
| 			'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()); | |
|  | |
| 		$point = new 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'; | |
| 	} | |
|  | |
| 	/** | |
| 	 * @expectedException \InvalidArgumentException | |
| 	 */ | |
| 	public function testShouldThrowExceptionOnCropInvalidArgument() | |
| 	{ | |
| 		Image::crop($this->imageFile, 100, 100, new \stdClass()); | |
| 	} | |
|  | |
| 	/** | |
| 	 * @expectedException \InvalidArgumentException | |
| 	 */ | |
| 	public function testShouldThrowExceptionOnWatermarkInvalidArgument() | |
| 	{ | |
| 		Image::watermark($this->imageFile, $this->watermarkFile, new \stdClass()); | |
| 	} | |
|  | |
|  | |
| 	abstract protected function isFontTestSupported(); | |
| }
 | |
| 
 |