Login   Register  
PHP Classes
elePHPant
Icontem

File: EvaCloudImageTest.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Allo  >  Eva Cloud Image  >  EvaCloudImageTest.php  >  Download  
File: EvaCloudImageTest.php
Role: Unit test script
Content type: text/plain
Description: Unit test script
Class: Eva Cloud Image
Resize, crop and rotate images
Author: By
Last change: Add c_fill mode
Date: 2012-08-16 08:08
Size: 9,300 bytes
 

Contents

Class file image Download
<?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(8count($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);
    }
}