X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=t%2FCreators.t;h=6e825d63bb3ae98d47445efb926f241fd5bdbc96;hb=bc269304f42ce653036805f8574261f7d30b95ac;hp=85701c2c906a83647fcb157636722df199df098b;hpb=108e901043f0766f8c103f3826b5af1cdb6daaa4;p=koha.git diff --git a/t/Creators.t b/t/Creators.t index 85701c2c90..6e825d63bb 100755 --- a/t/Creators.t +++ b/t/Creators.t @@ -1,12 +1,20 @@ #!/usr/bin/perl # -# This Koha test module is a stub! -# Add more tests here!!! +# This module will excercise pdf creation routines +# +# When run with KEEP_PDF enviroment variable it will keep +# test.pdf for manual inspection. This can be used to verify +# that ttf font configuration is complete like: +# +# KEEP_PDF=1 KOHA_CONF=/etc/koha/sites/srvgit/koha-conf.xml prove t/Creators.t +# +# sample of utf-8 text, font name and type will be on bottom of second page use strict; use warnings; -use Test::More tests => 16; +use File::Temp qw/ tempfile /; +use Test::More tests => 41; BEGIN { use_ok('C4::Creators'); @@ -34,18 +42,43 @@ $pdf_creator->FontSize(); # Reset font size before testing text width etc below ok($pdf_creator->Page(), "testing Page() works"); -is($pdf_creator->StrWidth("test", "H", 12), '19.344', "testing StrWidth() returns correct point width"); +my $expected_width; +my $expected_offset; +if (C4::Context->config('ttf')) { + $expected_width = '23.044921875'; + $expected_offset = '33.044921875'; +} else { + $expected_width = '19.344'; + $expected_offset = '29.344'; +} + +is($pdf_creator->StrWidth("test", "H", 12), $expected_width, "testing StrWidth() returns correct point width"); @result = $pdf_creator->Text(10, 10, "test"); is($result[0], '10', "testing Text() writes from a given x-value"); -is($result[1], '29.344', "testing Text() writes to the correct x-value"); +is($result[1], $expected_offset, "testing Text() writes to the correct x-value"); -open(my $fh, '>', 'test.pdf'); -select $fh; +my $font_types = C4::Creators::Lib::get_font_types(); +isa_ok( $font_types, 'ARRAY', 'get_font_types' ); -ok($pdf_creator->End(), "testing End() works"); +my $y = 50; +foreach my $font ( @$font_types ) { + ok( $pdf_creator->Font( $font->{type} ), 'Font ' . $font->{type} ); + ok( $pdf_creator->Text(10, $y, "\x{10C}evap\x{10D}i\x{107} " . $font->{name} . ' - ' . $font->{type} ), 'Text ' . $font->{name}); + $y += $pdf_creator->FontSize() * 1.2; +} + +SKIP: { + skip "Skipping because without proper fonts these two tests fail", + 2 if ! $ENV{KOHA_CONF}; -close($fh); -ok( -s 'test.pdf', 'test.pdf created' ); + my ($fh, $filename) = tempfile(); + open( $fh, '>', $filename ); + select $fh; -unlink 'test.pdf'; + ok($pdf_creator->End(), "testing End() works"); + + close($fh); + ok( -s $filename , "test file $filename created OK" ); + unlink $filename unless $ENV{KEEP_PDF}; +}