Koha/t/Creators.t
Dobrica Pavlinusic b1b8eaa091 Bug 12194: add more tests for pdf creation
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

Followed test plan, works as expected. (See comment#11)
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2015-10-22 09:42:21 -03:00

79 lines
2.5 KiB
Perl
Executable file

#!/usr/bin/perl
#
# 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 File::Temp qw/ tempfile /;
use Test::More tests => 41;
BEGIN {
use_ok('C4::Creators');
use_ok('C4::Creators::PDF');
}
my $pdf_creator = C4::Creators::PDF->new(InitVars => 0);
ok($pdf_creator, "testing new() works");
if (-e $pdf_creator->{filename}) {
pass('testing pdf file created');
}
else {
fail('testing pdf file created');
}
ok($pdf_creator->Add(""), "testing Add() works");
ok($pdf_creator->Bookmark({}), "testing Bookmark() works");
ok($pdf_creator->Compress(1), "testing Compress() works");
is($pdf_creator->Font("H"), "Ft1", "testing Font() works");
is($pdf_creator->FontSize(), '12', "testing FontSize() is set to 12 by default");
my @result = $pdf_creator->FontSize(14);
is($result[0], '14', "testing FontSize() can be set to a different value");
$pdf_creator->FontSize(); # Reset font size before testing text width etc below
ok($pdf_creator->Page(), "testing Page() works");
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], $expected_offset, "testing Text() writes to the correct x-value");
my $font_types = C4::Creators::Lib::get_font_types();
isa_ok( $font_types, 'ARRAY', 'get_font_types' );
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;
}
my ($fh, $filename) = tempfile();
open( $fh, '>', $filename );
select $fh;
ok($pdf_creator->End(), "testing End() works");
close($fh);
ok( -s $filename , "test file $filename created OK" );
unlink $filename unless $ENV{KEEP_PDF};