The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl 1.t'

#########################

# change 'tests => 1' to 'tests => last_test_to_print';

use Test::More tests => 27;
BEGIN { use_ok('Image::LibRSVG') };

#########################

# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.

my $rsvg = new Image::LibRSVG();

open( FILE, "< examples/artscontrol.svg" );
my $content = join "", <FILE>;
close( FILE );

ok( defined $rsvg );

## convert
ok( $rsvg->convert( "examples/artscontrol.svg", "examples/test.png" ) );
ok( ! $rsvg->convert( "examples/artscontrol.sv", "examples/test.png" ) );
ok( $rsvg->loadFromString( $content ) );

## convertAtZoom
ok( $rsvg->convertAtZoom( "examples/artscontrol.svg", "examples/test.png", 1.5, 1.5 ) );
ok( ! $rsvg->convertAtZoom( "examples/artscontrol.sv", "examples/test.png", 1.5, 1.5 ) );
ok( $rsvg->loadFromStringAtZoom( $content, 1.5, 1.5 ) );

## convertAtMaxSize
ok( $rsvg->convertAtMaxSize( "examples/artscontrol.svg", "examples/test.png", 200, 300 ) );
ok( ! $rsvg->convertAtMaxSize( "examples/artscontrol.sv", "examples/test.png", 200, 300 ) );
ok( $rsvg->loadFromStringAtMaxSize( $content, 200, 300 ) );

## convertAtSize
ok( $rsvg->convertAtSize( "examples/artscontrol.svg", "examples/test.png", 200, 300 ) );
ok( ! $rsvg->convertAtSize( "examples/artscontrol.sv", "examples/test.png", 200, 300 ) );
ok( $rsvg->loadFromStringAtSize( $content, 200, 300 ) );

## convertAtZoomWithMax
ok( $rsvg->convertAtZoomWithMax( "examples/artscontrol.svg", "examples/test.png", 1.5, 1.5, 200, 300 ) );
ok( ! $rsvg->convertAtZoomWithMax( "examples/artscontrol.sv", "examples/test.png", 1.5, 1.5, 200, 300 ) );
ok( $rsvg->loadFromStringAtZoomWithMax( $content, 1.5, 1.5, 200, 300 ) );

## loading & saving
ok( $rsvg->loadImage( "examples/artscontrol.svg" ) );
ok( $rsvg->saveAs( "examples/test.png" ) );

## get pictures as scalar
ok( $rsvg->getImageBitmap() );

## check when loading fails
ok( ! $rsvg->loadImage( "examples/artscontrol.sv" ) );
ok( ! $rsvg->saveAs( "examples/test.png" ) );

## if we use z-lib let's give it a try
if( Image::LibRSVG->isGzCompressionSupported() ) {
    ok( $rsvg->loadImage( "examples/artscontrol.svg.gz" ) );
    ok( $rsvg->saveAs( "examples/test.png" ) );
} else {
    ok(1);
    ok(1);
}

## formats
ok( ref( Image::LibRSVG->getKnownFormats() ) eq "ARRAY" );
ok( ref( Image::LibRSVG->getSupportedFormats() ) eq "ARRAY" );
ok( Image::LibRSVG->isFormatSupported("png") );