| <?php |
| /** |
| * ezcImageConversionHandlerGdTest |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| * @package ImageConversion |
| * @version //autogentag// |
| * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 |
| */ |
| |
| require_once dirname( __FILE__ ) . "/test_case.php"; |
| |
| /** |
| * Test suite for ImageFiltersGd class. |
| * |
| * @package ImageConversion |
| * @version //autogentag// |
| */ |
| class ezcImageConversionFiltersGdTest extends ezcImageConversionTestCase |
| { |
| protected $handler; |
| |
| protected $imageReference; |
| |
| protected function getActiveResource() |
| { |
| /* |
| * @todo Possible bug in Reflection API? |
| * |
| echo "\n--- Handler object ---\n"; |
| var_dump( $this->handler ); |
| $obj = new ReflectionObject( $this->handler ); |
| echo "\n--- Handler reflection object ---\n"; |
| var_dump( $obj ); |
| $atts = $obj->getProperties(); |
| echo "\n--- Handler reflection attribute objects ---\n"; |
| var_dump( $atts ); |
| echo "\n--- Handler reflection has property activeReference ---\n"; |
| var_dump( $obj->hasProperty( "activeReference" ) ); |
| echo "\n--- Now trying ->getProperty( activeReference ) ---\n"; |
| $att = $obj->getProperty( "activeReference" ); |
| echo "\n--- Handler reflection attribute object for activeReference ---\n"; |
| var_dump( $att ); |
| $activeReference = $this->readAttribute( $this->handler, "activeReference" ); |
| $references = $this->readAttribute( $this->handler, "references" ); |
| */ |
| $handlerArr = ( array) $this->handler; |
| $reference = $handlerArr["\0ezcImageMethodcallHandler\0activeReference"]; |
| $referenceData = $handlerArr["\0ezcImageMethodcallHandler\0references"][$reference]; |
| return $referenceData["resource"]; |
| } |
| |
| public static function suite() |
| { |
| return new PHPUnit_Framework_TestSuite( "ezcImageConversionFiltersGdTest" ); |
| } |
| |
| protected function setUp() |
| { |
| try |
| { |
| $this->handler = new ezcImageGdHandler( ezcImageGdHandler::defaultSettings() ); |
| } |
| catch ( Exception $e ) |
| { |
| $this->markTestSkipped( $e->getMessage() ); |
| } |
| $this->imageReference = $this->handler->load( $this->testFiles["jpeg"] ); |
| } |
| |
| protected function tearDown() |
| { |
| unset( $this->handler ); |
| } |
| |
| public function testScaleBoth() |
| { |
| $this->handler->scale( 500, 500, ezcImageGeometryFilters::SCALE_BOTH ); |
| $this->assertEquals( |
| 500, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 377, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleDown_do() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scale( 500, 2, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->assertEquals( |
| 3, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 2, |
| imagesy( $this->getActiveResource() ), |
| "Height of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleDown_dont() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scale( 500, 200, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->assertEquals( |
| 150, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 113, |
| imagesy( $this->getActiveResource() ), |
| "Height of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleUp_do() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scale( 500, 300, ezcImageGeometryFilters::SCALE_UP ); |
| $this->assertEquals( |
| 398, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 300, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleUp_dont() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scale( 500, 2, ezcImageGeometryFilters::SCALE_UP ); |
| $this->assertEquals( |
| 150, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| $oldDim["y"], |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->scale( 500, 2, 23 ); |
| $this->fail( 'Exception not throwen on invalid scale direction.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scale( -23, 2, ezcImageGeometryFilters::SCALE_UP ); |
| $this->fail( 'Exception not throwen on invalid scale direction.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scale( 500, -23, ezcImageGeometryFilters::SCALE_UP ); |
| $this->fail( 'Exception not throwen on invalid scale direction.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testScaleWidthBoth() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleWidth( 50, ezcImageGeometryFilters::SCALE_BOTH ); |
| $this->assertEquals( |
| 50, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 37, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleWidthUp_1() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleWidth( 50, ezcImageGeometryFilters::SCALE_UP ); |
| $this->assertEquals( |
| 150, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 113, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleWidthUp_2() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleWidth( 300, ezcImageGeometryFilters::SCALE_UP ); |
| $this->assertEquals( |
| 300, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 226, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleWidthDown_1() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleWidth( 300, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->assertEquals( |
| 150, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 113, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleWidthDown_2() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleWidth( 50, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->assertEquals( |
| 50, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 38, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleWidthFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->scaleWidth( 'foo', ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scaleWidth( -23, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scaleWidth( 42, 23 ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testScaleHeightBoth() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleHeight( 50, ezcImageGeometryFilters::SCALE_BOTH ); |
| $this->assertEquals( |
| 66, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 50, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleHeightUp_1() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleHeight( 226, ezcImageGeometryFilters::SCALE_UP ); |
| $this->assertEquals( |
| 300, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 226, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleHeightUp_2() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleHeight( 50, ezcImageGeometryFilters::SCALE_UP ); |
| $this->assertEquals( |
| 150, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 113, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleHeightDown_1() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleHeight( 300, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->assertEquals( |
| 150, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 113, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleHeightDown_2() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleHeight( 50, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->assertEquals( |
| 66, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 50, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleHeightFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->scaleHeight( 'foo', ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scaleHeight( -23, ezcImageGeometryFilters::SCALE_DOWN ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scaleHeight( 42, 23 ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testScalePercent_1() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scalePercent( 50, 50 ); |
| $this->assertEquals( |
| 75, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 57, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScalePercent_2() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scalePercent( 200, 200 ); |
| $this->assertEquals( |
| 300, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 226, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScalePercentFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->scalePercent( -23, 100 ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scalePercent( 100, -23 ); |
| $this->fail( 'Exception not throwen on invalid height.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scalePercent( -23, -23 ); |
| $this->fail( 'Exception not throwen on invalid width and height.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testScaleExact_1() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleExact( 200, 200 ); |
| $this->assertEquals( |
| 200, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 200, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleExact_2() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleExact( 10, 200 ); |
| $this->assertEquals( |
| 10, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 200, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleExact_3() |
| { |
| $oldDim = array( |
| "x" => imagesx( $this->getActiveResource() ), |
| "y" => imagesy( $this->getActiveResource() ), |
| ); |
| $this->handler->scaleExact( 200, 10 ); |
| $this->assertEquals( |
| 200, |
| imagesx( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| $this->assertEquals( |
| 10, |
| imagesy( $this->getActiveResource() ), |
| "Width of scaled image incorrect." |
| ); |
| } |
| |
| public function testScaleExactFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->scaleExact( -23, 100 ); |
| $this->fail( 'Exception not throwen on invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scaleExact( 100, -23 ); |
| $this->fail( 'Exception not throwen on invalid height.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->scaleExact( -23, -23 ); |
| $this->fail( 'Exception not throwen on invalid width and height.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testScaleTransparent() |
| { |
| $ref = $this->handler->load( dirname( __FILE__ ) . "/data/watermark.png" ); |
| $this->handler->scale( 80, 80 ); |
| $this->handler->save( $ref, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| 10000 |
| ); |
| } |
| |
| public function testCrop_1() |
| { |
| $this->handler->crop( 50, 38, 50, 37 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCrop_2() |
| { |
| $this->handler->crop( 100, 75, -50, -37 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCrop_3() |
| { |
| $this->handler->crop( 50, 75, 250, 38 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCrop_4() |
| { |
| $this->handler->crop( 50, 75, 38, 250 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCrop_0_Offset() |
| { |
| $this->handler->crop( 0, 0, 10, 10 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCropTransparent() |
| { |
| $ref = $this->handler->load( dirname( __FILE__ ) . "/data/watermark.png" ); |
| $this->handler->crop( 20, 0, 10, 5 ); |
| $this->handler->save( $ref, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCropNegativeOffset_1() |
| { |
| $this->handler->crop( -100, -100, 50, 50 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCropNegativeOffset_2() |
| { |
| $this->handler->crop( -50, -50, 50, 50 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCropNegativeOffset_3() |
| { |
| $this->handler->crop( -50, -50, -50, -50 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCropFailureInvalidParams() |
| { |
| try |
| { |
| $this->handler->crop( 'foo', 23, 23, 23 ); |
| $this->fail( 'Exception not thrown on crop with invalid x coordinate.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->crop( 23, 'foo', 23, 23 ); |
| $this->fail( 'Exception not thrown on crop with invalid y coordinate.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->crop( 23, 23, 'foo', 23 ); |
| $this->fail( 'Exception not thrown on crop with invalid width.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->crop( 23, 23, 23, 'foo' ); |
| $this->fail( 'Exception not thrown on crop with invalid height.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testColorspaceGrey() |
| { |
| $this->handler->colorspace( ezcImageColorspaceFilters::COLORSPACE_GREY ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testColorspaceMonochrome() |
| { |
| $this->handler->colorspace( ezcImageColorspaceFilters::COLORSPACE_MONOCHROME ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testColorspaceSepia() |
| { |
| $this->handler->colorspace( ezcImageColorspaceFilters::COLORSPACE_SEPIA ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testColorspaceFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->colorspace( 23 ); |
| $this->fail( 'Exception not thrown on invalid colorspace.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testWatermarkAbsoluteNoScale() |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", 100, 80 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testWatermarkAbsoluteScale() |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", 10, 10, 130, 93 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| 500 |
| ); |
| } |
| |
| public function testWatermarkAbsoluteNoScaleNegativeOffset() |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", -50, -33 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| strtr( $this->getReferencePath(), array( "NegativeOffset" => "" ) ), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testWatermarkPercentNoScale() |
| { |
| $this->handler->watermarkPercent( dirname( __FILE__ ) . "/data/watermark.png", 10, 90 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testWatermarkAbsoluteFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/foo.png", -140, -103, 130, 93 ); |
| $this->fail( 'Exception not throwen on invalid watermark file.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", 'foo', -103, 130, 93 ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", -140, 'foo', 130, 93 ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", -140, -103, 'foo', 93 ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkAbsolute( dirname( __FILE__ ) . "/data/watermark.png", -140, -103, 130, 'foo' ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testWatermarkPercentScale() |
| { |
| $this->handler->watermarkPercent( dirname( __FILE__ ) . "/data/watermark.png", 80, 80, 20 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| 450 |
| ); |
| } |
| |
| public function testWatermarkPercentFailureInvalidParam() |
| { |
| try |
| { |
| $this->handler->watermarkPercent( dirname( __FILE__ ) . "/data/foo.png", 80, 80, 20 ); |
| $this->fail( 'Exception not throwen on invalid watermark file.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkPercent( dirname( __FILE__ ) . "/data/watermark.png", -80, 80, 20 ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkPercent( dirname( __FILE__ ) . "/data/watermark.png", 80, -80, 20 ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| |
| try |
| { |
| $this->handler->watermarkPercent( dirname( __FILE__ ) . "/data/watermark.png", 80, 80, -20 ); |
| $this->fail( 'Exception not throwen on invalid x coord.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testCropThumbnailVertical() |
| { |
| $this->handler->croppedThumbnail( 50, 50 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCropThumbnailHorizontal() |
| { |
| $this->handler->croppedThumbnail( 100, 50 ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testCroppedThumbnailFailures() |
| { |
| try |
| { |
| $this->handler->croppedThumbnail( -10, 50 ); |
| $this->fail( "CroppedThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->croppedThumbnail( "foo", 50 ); |
| $this->fail( "CroppedThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->croppedThumbnail( 50, -10 ); |
| $this->fail( "CroppedThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->croppedThumbnail( 50, false ); |
| $this->fail( "CroppedThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| |
| public function testFillThumbnailVertical() |
| { |
| $this->handler->filledThumbnail( 50, 50, array( 255, 0, 0 ) ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testFillThumbnailHorizontal() |
| { |
| $this->handler->filledThumbnail( 100, 50, array( 255, 0, 0 ) ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testFillThumbnailTooLargeColorArray() |
| { |
| $this->handler->filledThumbnail( 100, 50, array( 255, 0, 0, 400, 500, 600 ) ); |
| $this->handler->save( $this->imageReference, $this->getTempPath() ); |
| $this->assertImageSimilar( |
| $this->getReferencePath(), |
| $this->getTempPath(), |
| "Image not rendered as expected.", |
| ezcImageConversionTestCase::DEFAULT_SIMILARITY_GAP |
| ); |
| } |
| |
| public function testFilledThumbnailFailures() |
| { |
| try |
| { |
| $this->handler->filledThumbnail( -10, 50, array( 255, 0, 0 ) ); |
| $this->fail( "FilledThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->filledThumbnail( "foo", 50, array( 255, 0, 0 ) ); |
| $this->fail( "FilledThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->filledThumbnail( 50, -10, array( 255, 0, 0 ) ); |
| $this->fail( "FilledThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->filledThumbnail( 50, false, array( 255, 0, 0 ) ); |
| $this->fail( "FilledThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->filledThumbnail( 50, 50, array( 255, false, 0 ) ); |
| $this->fail( "FilledThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| try |
| { |
| $this->handler->filledThumbnail( 50, 50, array( "bar", 0, 0 ) ); |
| $this->fail( "FilledThumbnail filter accepted incorrect value." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| {} |
| } |
| } |
| ?> |