blob: b6d66312869c0fb3614d1b292eaf052ededa8c8c [file] [log] [blame]
<?php
/**
* ezcGraphCairoOODriverTest
*
* 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 Graph
* @version //autogen//
* @subpackage Tests
* @copyright Copyright (C) 2005-2010 eZ Systems AS. All rights reserved.
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
*/
/**
* Tests for ezcGraph class.
*
* @package Graph
* @subpackage Tests
*/
class ezcGraphCairoOODriverTest extends ezcTestImageCase
{
protected $driver;
protected $tempDir;
protected $basePath;
protected $testFiles = array(
'png' => 'png.png',
);
public static function suite()
{
return new PHPUnit_Framework_TestSuite( __CLASS__ );
}
protected function setUp()
{
if ( !ezcBaseFeatures::hasExtensionSupport( 'cairo' ) )
{
$this->markTestSkipped( 'This test needs pecl/cairo support.' );
}
static $i = 0;
$this->tempDir = $this->createTempDir( 'ezcGraphCairoDriverTest' . sprintf( '_%03d_', ++$i ) ) . '/';
$this->basePath = dirname( __FILE__ ) . '/data/';
$this->driver = new ezcGraphCairoOODriver();
$this->driver->options->width = 200;
$this->driver->options->height = 100;
$this->driver->options->font->path = $this->basePath . 'font.ttf';
}
protected function tearDown()
{
unset( $this->driver );
if ( !$this->hasFailed() )
{
$this->removeTempDir();
}
}
public function testRenderPngToOutput()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawLine(
new ezcGraphCoordinate( 12, 45 ),
new ezcGraphCoordinate( 134, 12 ),
ezcGraphColor::fromHex( '#3465A4' )
);
$this->assertEquals(
$this->driver->getMimeType(),
'image/png',
'Wrong mime type returned.'
);
ob_start();
// Suppress header already sent warning
@$this->driver->renderToOutput();
file_put_contents( $filename, ob_get_clean() );
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testGetResource()
{
$this->driver->drawLine(
new ezcGraphCoordinate( 12, 45 ),
new ezcGraphCoordinate( 134, 12 ),
ezcGraphColor::fromHex( '#3465A4' )
);
ob_start();
// Suppress header already sent warning
@$this->driver->renderToOutput();
ob_end_clean();
$resource = $this->driver->getResource();
$this->assertTrue( $resource['surface'] instanceof CairoImageSurface );
$this->assertTrue( $resource['context'] instanceof CairoContext );
}
public function testDrawLine()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawLine(
new ezcGraphCoordinate( 12, 45 ),
new ezcGraphCoordinate( 134, 12 ),
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawLineWithDifferentWidths()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawLine(
new ezcGraphCoordinate( 12, 45 ),
new ezcGraphCoordinate( 134, 12 ),
ezcGraphColor::fromHex( '#3465A4' ),
3
);
$this->driver->drawLine(
new ezcGraphCoordinate( 12, 35 ),
new ezcGraphCoordinate( 134, 2 ),
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawPolygonThreePointsFilled()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$return = $this->driver->drawPolygon(
array(
new ezcGraphCoordinate( 45, 12 ),
new ezcGraphCoordinate( 122, 34 ),
new ezcGraphCoordinate( 12, 71 ),
),
ezcGraphColor::fromHex( '#3465A4' ),
true
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
$this->assertEquals(
$return,
array(
new ezcGraphCoordinate( 45, 12 ),
new ezcGraphCoordinate( 122, 34 ),
new ezcGraphCoordinate( 12, 71 ),
),
'Expected point array as return value.'
);
}
public function testDrawTransparentPolygon()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawPolygon(
array(
new ezcGraphCoordinate( 45, 12 ),
new ezcGraphCoordinate( 122, 34 ),
new ezcGraphCoordinate( 12, 71 ),
),
ezcGraphColor::fromHex( '#3465A47F' ),
true
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawPolygonThreePointsNotFilled()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawPolygon(
array(
new ezcGraphCoordinate( 45, 12 ),
new ezcGraphCoordinate( 122, 34 ),
new ezcGraphCoordinate( 12, 71 ),
),
ezcGraphColor::fromHex( '#3465A4' ),
false
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawPolygonFivePoints()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawPolygon(
array(
new ezcGraphCoordinate( 45, 12 ),
new ezcGraphCoordinate( 122, 34 ),
new ezcGraphCoordinate( 12, 71 ),
new ezcGraphCoordinate( 3, 45 ),
new ezcGraphCoordinate( 60, 32 ),
),
ezcGraphColor::fromHex( '#3465A4' ),
true
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircleSectorAcute()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$return = $this->driver->drawCircleSector(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
12.5,
25,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
$this->assertEquals(
$return,
array(
new ezcGraphCoordinate( 100., 50. ),
new ezcGraphCoordinate( 139., 54. ),
new ezcGraphCoordinate( 137., 58. ),
new ezcGraphCoordinate( 136., 58.5 ),
),
'Expected point array as return value.',
1.
);
}
public function testDrawCircleSectorAcuteNonFilled()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircleSector(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
12.5,
45,
ezcGraphColor::fromHex( '#3465A4' ),
false
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircleSectorAcuteReverse()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircleSector(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
25,
12.5,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircleSectorObtuse()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircleSector(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
25,
273,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircularArcAcute()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->imageMapResolution = 90;
$return = $this->driver->drawCircularArc(
new ezcGraphCoordinate( 100, 50 ),
150,
80,
10,
12.5,
55,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
$this->assertEquals(
$return,
array(
new ezcGraphCoordinate( 173., 59. ),
new ezcGraphCoordinate( 143., 83. ),
new ezcGraphCoordinate( 153., 83. ),
new ezcGraphCoordinate( 183., 59. ),
),
'Expected point array as return value.',
1.
);
}
public function testDrawCircularArcAcuteReverse()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircularArc(
new ezcGraphCoordinate( 100, 50 ),
150,
80,
10,
55,
12.5,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircularArcObtuse()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircularArc(
new ezcGraphCoordinate( 100, 50 ),
150,
70,
10,
25,
300,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircularArcAcuteBorder()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircularArc(
new ezcGraphCoordinate( 100, 50 ),
150,
80,
10,
12.5,
55,
ezcGraphColor::fromHex( '#3465A4' ),
false
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
0
);
}
public function testDrawCircleFilled()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->imageMapResolution = 90;
$return = $this->driver->drawCircle(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
ezcGraphColor::fromHex( '#3465A4' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
$this->assertEquals(
$return,
array(
new ezcGraphCoordinate( 140., 50. ),
new ezcGraphCoordinate( 100., 70. ),
new ezcGraphCoordinate( 60., 50. ),
new ezcGraphCoordinate( 100., 30. ),
),
'Expected point array as return value.',
1.
);
}
public function testDrawCircleNonFilled()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawCircle(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
ezcGraphColor::fromHex( '#3465A4' ),
false
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawImagePng()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawImage(
$this->basePath . $this->testFiles['png'],
new ezcGraphCoordinate( 10, 10 ),
100,
50
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircleRadialFill()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$return = $this->driver->drawCircle(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
new ezcGraphRadialGradient(
new ezcGraphCoordinate( 80, 40),
80,
40,
ezcGraphColor::fromHex( '#729FCF' ),
ezcGraphColor::fromHex( '#3465A4' )
)
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawCircleLinearFill()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$return = $this->driver->drawCircle(
new ezcGraphCoordinate( 100, 50 ),
80,
40,
new ezcGraphLinearGradient(
$start = new ezcGraphCoordinate( 80, 40 ),
$end = new ezcGraphCoordinate( 130, 55 ),
ezcGraphColor::fromHex( '#82BFFF' ),
ezcGraphColor::fromHex( '#3465A4' )
)
);
$this->driver->drawCircle(
$start,
2, 2, ezcGraphColor::fromHex( '#CC0000' )
);
$this->driver->drawCircle(
$end,
2, 2, ezcGraphColor::fromHex( '#CC0000' )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxShortString()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$return = $this->driver->drawTextBox(
'Short',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
$this->assertEquals(
$return,
array(
new ezcGraphCoordinate( 10., 10. ),
new ezcGraphCoordinate( 160., 10. ),
new ezcGraphCoordinate( 160., 80. ),
new ezcGraphCoordinate( 10., 80. ),
),
'Expected point array as return value.',
1.
);
}
public function testDrawTextBoxShortStringRotated10Degrees()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$return = $this->driver->drawTextBox(
'Short',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT,
new ezcGraphRotation( 10 )
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxShortStringRotated45Degrees()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$return = $this->driver->drawTextBox(
'Short',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT,
new ezcGraphRotation( 45, new ezcGraphCoordinate( 100, 50 ) )
);
$this->driver->render( $filename );
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxShortStringRotated340Degrees()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$return = $this->driver->drawTextBox(
'Short',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT,
new ezcGraphRotation( 340, new ezcGraphCoordinate( 200, 100 ) )
);
$this->driver->render( $filename );
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxLongString()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'ThisIsAPrettyLongString',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxLongSpacedString()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'This Is A Pretty Long String',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxManualBreak()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
"New\nLine",
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxStringSampleRight()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawPolygon(
array(
new ezcGraphCoordinate( 20, 20 ),
new ezcGraphCoordinate( 110, 20 ),
new ezcGraphCoordinate( 110, 30 ),
new ezcGraphCoordinate( 20, 30 ),
),
ezcGraphColor::fromHex( '#eeeeec' ),
true
);
$this->driver->drawTextBox(
'sample 4',
new ezcGraphCoordinate( 21, 21 ),
88,
8,
ezcGraph::RIGHT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxStringRight()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'ThisIsAPrettyLongString',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::RIGHT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxLongSpacedStringRight()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'This Is A Pretty Long String',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::RIGHT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxStringCenter()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'ThisIsAPrettyLongString',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::CENTER
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxLongSpacedStringCenter()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'This Is A Pretty Long String',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::CENTER
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxStringRightBottom()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'ThisIsAPrettyLongString',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::RIGHT | ezcGraph::BOTTOM
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxLongSpacedStringRightMiddle()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'This Is A Pretty Long String',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::RIGHT | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxStringCenterMiddle()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'ThisIsAPrettyLongString',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::CENTER | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextBoxLongSpacedStringCenterBottom()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'This Is A Pretty Long String',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::CENTER | ezcGraph::BOTTOM
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawSmallStringWithSpecialChars()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawPolygon(
array(
new ezcGraphCoordinate( 47, 54 ),
new ezcGraphCoordinate( 47, 84 ),
new ezcGraphCoordinate( 99, 84 ),
new ezcGraphCoordinate( 99, 54 ),
),
ezcGraphColor::fromHex( '#DDDDDD' ),
true
);
$this->driver->drawTextBox(
'Safari (13.8%)',
new ezcGraphCoordinate( 47, 54 ),
52,
30,
ezcGraph::LEFT
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
10
);
}
public function testDrawTooLongTextException()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
try
{
$this->driver->drawTextBox(
'This is very long text which is not supposed to fit in the bounding box.',
new ezcGraphCoordinate( 10, 10 ),
1,
20,
ezcGraph::LEFT
);
$this->driver->render( $filename );
}
catch ( ezcGraphFontRenderingException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphFontRenderingException.' );
}
public function testDrawTextWithTextShadow()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->textShadow = true;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextWithCustomTextShadow()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->textShadow = true;
$this->driver->options->font->textShadowColor = '#888888';
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextWithBackground()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = false;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextWithBorder()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->minimizeBorder = false;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextWithMinimizedBorderAndBackgroundTopLeft()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT | ezcGraph::TOP
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawRotatedTextWithMinimizedBorderAndBackgroundTopLeft()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::LEFT | ezcGraph::TOP,
new ezcGraphRotation( 15 )
);
$this->driver->render( $filename );
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextWithMinimizedBorderAndBackgroundMiddleCenter()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::CENTER | ezcGraph::MIDDLE
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testDrawTextWithMinimizedBorderAndBackgroundBottomRight()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->options->font->border = ezcGraphColor::fromHex( '#555555' );
$this->driver->options->font->background = ezcGraphColor::fromHex( '#DDDDDD' );
$this->driver->options->font->minimizeBorder = true;
$this->driver->options->font->padding = 2;
$this->driver->drawTextBox(
'Some test string',
new ezcGraphCoordinate( 10, 10 ),
150,
70,
ezcGraph::RIGHT | ezcGraph::BOTTOM
);
$this->driver->render( $filename );
$this->assertTrue(
file_exists( $filename ),
'No image was generated.'
);
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testShortenStringMoreChars()
{
$filename = $this->tempDir . __FUNCTION__ . '.png';
$this->driver->drawTextBox(
'Teststring foo',
new ezcGraphCoordinate( 10, 10 ),
24,
6,
ezcGraph::LEFT
);
$this->driver->render( $filename );
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . 'ezcGraphCairoDriverTest' . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
}
?>