80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
|     require dirname(__FILE__).'/../lib/WideImage.php';
 | |
| 
 | |
|     define('TEST_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
 | |
|     define('IMG_PATH', TEST_PATH.'images'.DIRECTORY_SEPARATOR);
 | |
| 
 | |
|     abstract class WideImage_TestCase extends PHPUnit_Framework_TestCase
 | |
|     {
 | |
|         public function load($file)
 | |
|         {
 | |
|             return WideImage::load(IMG_PATH.$file);
 | |
|         }
 | |
| 
 | |
|         public function assertValidImage($image)
 | |
|         {
 | |
|             $this->assertInstanceOf('WideImage_Image', $image);
 | |
|             $this->assertTrue($image->isValid());
 | |
|         }
 | |
| 
 | |
|         public function assertDimensions($image, $width, $height)
 | |
|         {
 | |
|             $this->assertEquals($width, $image->getWidth());
 | |
|             $this->assertEquals($height, $image->getHeight());
 | |
|         }
 | |
| 
 | |
|         public function assertTransparentColorMatch($img1, $img2)
 | |
|         {
 | |
|             $tc1 = $img1->getTransparentColorRGB();
 | |
|             $tc2 = $img2->getTransparentColorRGB();
 | |
|             $this->assertEquals($tc1, $tc2);
 | |
|         }
 | |
| 
 | |
|         public function assertTransparentColorAt($img, $x, $y)
 | |
|         {
 | |
|             $this->assertEquals($img->getTransparentColor(), $img->getColorAt($x, $y));
 | |
|         }
 | |
| 
 | |
|         public function assertRGBWithinMargin($rec, $r, $g, $b, $a, $margin)
 | |
|         {
 | |
|             if (is_array($r)) {
 | |
|                 $a = $r['alpha'];
 | |
|                 $b = $r['blue'];
 | |
|                 $g = $r['green'];
 | |
|                 $r = $r['red'];
 | |
|             }
 | |
| 
 | |
|             $result =
 | |
|                 abs($rec['red'] - $r) <= $margin &&
 | |
|                 abs($rec['green'] - $g) <= $margin &&
 | |
|                 abs($rec['blue'] - $b) <= $margin;
 | |
| 
 | |
|             $result = $result && ($a === null || abs($rec['alpha'] - $a) <= $margin);
 | |
| 
 | |
|             $this->assertTrue($result,
 | |
|                 "RGBA [{$rec['red']}, {$rec['green']}, {$rec['blue']}, {$rec['alpha']}] ".
 | |
|                 "doesn't match RGBA [$r, $g, $b, $a] within margin [$margin].");
 | |
|         }
 | |
| 
 | |
|         public function assertRGBAt($img, $x, $y, $rgba)
 | |
|         {
 | |
|             if (is_array($rgba)) {
 | |
|                 $cmp = $img->getRGBAt($x, $y);
 | |
|             } else {
 | |
|                 $cmp = $img->getColorAt($x, $y);
 | |
|             }
 | |
|             $this->assertSame($cmp, $rgba);
 | |
|         }
 | |
| 
 | |
|         public function assertRGBNear($rec, $r, $g = null, $b = null, $a = null)
 | |
|         {
 | |
|             $this->assertRGBWithinMargin($rec, $r, $g, $b, $a, 2);
 | |
|         }
 | |
| 
 | |
|         public function assertRGBEqual($rec, $r, $g = null, $b = null, $a = null)
 | |
|         {
 | |
|             $this->assertRGBWithinMargin($rec, $r, $g, $b, $a, 0);
 | |
|         }
 | |
|     }
 | 
