<?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);
}
}
|