PHP Classes

File: EvaCloudImageTest.php

Recommend this page to a friend!
  Classes of Allo   Eva Cloud Image   ???   Download  
File: ???
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: 12 years ago
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(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);
    }
}