<?php 
require_once "PHPUnit/Autoload.php"; 
require_once "EvaCloudImage.php"; 
 
class EvaCloudImageTest extends PHPUnit_Framework_TestCase 
{ 
    protected $evaCloudImage; 
    protected $testUrl = 'http://localhost/EvaCloudImage/thumb/demo.jpg'; 
    protected $testConfig; 
 
    protected function setUp() { 
        $this->testConfig = array( 
            'debug' => false, 
            'error_redirect' => 'http://avnpc.com/pages/evacloudimage', 
            'libPath' => __DIR__ . '/lib', 
            'sourceRootPath' => __DIR__ . '/upload', 
            'thumbFileRootPath' => __DIR__ . '/thumb', 
            'thumbUrlRootPath' => __DIR__ . '/..' , 
            'saveImage' => false, 
        ); 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
    } 
 
 
    public function testUrl() 
    { 
        $this->evaCloudImage->setUrl($this->testUrl); 
        $this->assertEquals($this->testUrl, $this->evaCloudImage->getUrl()); 
    } 
 
    public function testImageNameArgs() 
    { 
        $this->evaCloudImage->setUrl($this->testUrl); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
 
        $this->evaCloudImage->setSourceImageName(''); 
        $this->evaCloudImage->setUrl('http://localhost/EvaCloudImage/thumb/demo,w_100.jpg'); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
        $this->assertEquals(array('w_100'), $this->evaCloudImage->getImageNameArgs()); 
 
 
        $this->evaCloudImage->setSourceImageName(''); 
        $this->evaCloudImage->setUrl('http://localhost/EvaCloudImage/thumb/demo,w_100,h_20.jpg'); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
        $this->assertEquals(array('w_100', 'h_20'), $this->evaCloudImage->getImageNameArgs()); 
 
        $this->evaCloudImage->setSourceImageName(''); 
        $this->evaCloudImage->setUrl('http://localhost/EvaCloudImage/thumb/demo,w_100,w_20.jpg'); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
        $this->assertEquals(array('w_100','w_20'), $this->evaCloudImage->getImageNameArgs()); 
 
        $this->evaCloudImage->setSourceImageName(''); 
        $this->evaCloudImage->setUrl('http://localhost/EvaCloudImage/thumb/demo,abc,def.jpg'); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
        $this->assertEquals(array('abc','def'), $this->evaCloudImage->getImageNameArgs()); 
 
        $this->evaCloudImage->setSourceImageName(''); 
        $this->evaCloudImage->setUrl('http://localhost/EvaCloudImage/thumb/demo,,,,.jpg'); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
        $this->assertEquals(array(), $this->evaCloudImage->getImageNameArgs()); 
 
 
        $this->evaCloudImage->setSourceImageName(''); 
        $this->evaCloudImage->setUrl('http://localhost/EvaCloudImage/thumb/demo,,abc,,.jpg'); 
        $this->assertEquals('demo.jpg', $this->evaCloudImage->getSourceImageName()); 
        $this->assertEquals(array('abc'), $this->evaCloudImage->getImageNameArgs()); 
    } 
 
 
    public function testArgsToParameters() 
    { 
        $params = $this->evaCloudImage->getTransferParameters(); 
        $this->evaCloudImage->setTransferParametersMerged(true); 
        $this->evaCloudImage->setImageNameArgs(array()); 
        $this->assertEquals($params, $this->evaCloudImage->getTransferParameters()); 
 
 
        $this->evaCloudImage->setTransferParametersMerged(false); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_100', 
            'h_20', 
            'q_10', 
            'r_50', 
            'x_100', 
            'y_200', 
            'c_100', 
            'g_200', 
        )); 
        $params = $this->evaCloudImage->getTransferParameters(); 
        $this->assertEquals('100', $params['width']); 
        $this->assertEquals('20', $params['height']); 
        $this->assertEquals('10', $params['quality']); 
        $this->assertEquals('50', $params['rotate']); 
        $this->assertEquals('100', $params['x']); 
        $this->assertEquals('200', $params['y']); 
        $this->assertEquals('100', $params['crop']); 
        $this->assertEquals('200', $params['gravity']); 
 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_', 
            'h_abc_', 
            'q', 
            'abc', 
            '_abc_', 
            '__abc_', 
            'r_100', 
            'r_200', 
        )); 
        $params = $this->evaCloudImage->getTransferParameters(); 
        $this->assertEquals(null, $params['width']); 
        $this->assertEquals('abc_', $params['height']); 
        $this->assertEquals('200', $params['rotate']); 
        $this->assertEquals(8, count($params)); 
    } 
 
 
    public function testUniqueName() 
    { 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_100', 
            'h_20', 
            'q_10', 
            'r_50', 
            'x_100', 
            'y_200', 
            'c_200', 
            'g_100', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(100, $params['width']); 
        $this->assertEquals(20, $params['height']); 
        $this->assertEquals(10, $params['quality']); 
        $this->assertEquals(50, $params['rotate']); 
        $this->assertEquals(100, $params['x']); 
        $this->assertEquals(200, $params['crop']); 
        $this->assertEquals(100, $params['gravity']); 
 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_100', 
            'h_0.2', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(100, $params['width']); 
        $this->assertEquals(0, $params['height']); 
 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_0.1', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(0.1, $params['width']); 
        $this->assertEquals(null, $params['height']); 
 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_0.1', 
            'h_0.2', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(0.2, $params['width']); 
        $this->assertEquals(null, $params['height']); 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_0.2', 
            'h_0.1', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(0.2, $params['width']); 
        $this->assertEquals(null, $params['height']); 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'c_abc', 
            'g_200', 
            'q_abc', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(null, $params['crop']); 
        $this->assertEquals(null, $params['gravity']); 
        $this->assertEquals(null, $params['quality']); 
 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'c_0', 
            'x_100', 
            'y_100', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(null, $params['crop']); 
        $this->assertEquals(null, $params['x']); 
        $this->assertEquals(null, $params['y']); 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'c_fill', 
            'w_100', 
        )); 
        $params = $this->evaCloudImage->getUniqueParameters(); 
        $this->assertEquals(null, $params['crop']); 
        $this->assertEquals(100, $params['width']); 
    } 
 
 
    public function testUniqueNameString() 
    { 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->assertEquals($this->evaCloudImage->getSourceImageName(), $this->evaCloudImage->getUniqueTargetImageName()); 
 
        $this->evaCloudImage = new EvaCloudImage($this->testUrl, $this->testConfig); 
        $this->evaCloudImage->getSourceImageName(); 
        $this->evaCloudImage->setImageNameArgs(array( 
            'w_100', 
            'h_20', 
            'q_10', 
            'r_50', 
            'x_100', 
            'y_200', 
            'c_200', 
            'g_100', 
        )); 
        $name = $this->evaCloudImage->getUniqueTargetImageName(); 
        $this->assertEquals('demo,c_200,g_100,h_20,q_10,r_50,w_100,x_100,y_200.jpg', $name); 
    } 
 
    public function testStaticUrl() 
    { 
        $url = EvaCloudImage::url('http://evacloudimage.avnpc.com/thumb/demo.jpg', array('w_100','h_200')); 
        $this->assertEquals('http://evacloudimage.avnpc.com/thumb/demo,h_200,w_100.jpg', $url); 
    } 
} 
 
 |