From 05fd88e69b9d52f5eef8a6cfa926c57a4cba19e5 Mon Sep 17 00:00:00 2001 From: Alex Arnaud Date: Fri, 2 Feb 2018 13:54:18 +0000 Subject: [PATCH] Bug 20119 - Add unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [2018-03-15] Rebased-by: Alex Arnaud Signed-off-by: Séverine QUEUNE --- C4/Installer/PerlDependencies.pm | 6 +++- C4/Letters.pm | 1 + t/db_dependent/Letters.t | 59 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 64 insertions(+), 2 deletions(-) diff --git a/C4/Installer/PerlDependencies.pm b/C4/Installer/PerlDependencies.pm index 8961453..0ee9859 100644 --- a/C4/Installer/PerlDependencies.pm +++ b/C4/Installer/PerlDependencies.pm @@ -873,7 +873,11 @@ our $PERL_DEPS = { 'min_ver' => '5.01', # also required for Zebra installs: about page: bug 20061 }, - + 'CAM::PDF' => { + 'usage' => 'Tests', + 'required' => 0, + 'min_ver' => '1.60', + }, }; 1; diff --git a/C4/Letters.pm b/C4/Letters.pm index 58b99e4..63b851c 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -26,6 +26,7 @@ use Encode; use Carp; use Template; use Module::Load::Conditional qw(can_load); +use PDF::FromHTML; use C4::Members; use C4::Members::Attributes qw(GetBorrowerAttributes); diff --git a/t/db_dependent/Letters.t b/t/db_dependent/Letters.t index d8e96a6..29ce8ea 100644 --- a/t/db_dependent/Letters.t +++ b/t/db_dependent/Letters.t @@ -18,7 +18,7 @@ # along with Koha; if not, see . use Modern::Perl; -use Test::More tests => 76; +use Test::More tests => 77; use Test::MockModule; use Test::Warn; @@ -742,3 +742,60 @@ subtest 'Test limit parameter for SendQueuedMessages' => sub { is( $messages_processed, 2, 'Processed 2 message with limit of 3 and 2 unprocessed messages' ); }; + +subtest 'PrintClaimOrderNotice' => sub { + plan tests => 6; + + my $bookseller = $builder->build({ source => 'Aqbookseller' }); + + my $basket = $builder->build({ + source => 'Aqbasket', + value => { + booksellerid => $bookseller->{id} + } + }); + + my $biblio = $builder->build({ + source => 'Biblio', + value => { + title => 'Surprise' + } + }); + + my $order = $builder->build({ + source => 'Aqorder', + value => { + basketno => $basket->{basketno}, + biblionumber => $biblio->{biblionumber} + } + }); + + my $letter_code = 'ACQCLAIM'; + my $content = 'Title: <>'; + + $dbh->do(qq{ + INSERT INTO letter + (module, code, name, is_html, title, content, message_transport_type) + VALUES + ('claimacquisition', '$letter_code', 'Claim', 1, 'Claim', '$content', 'print') + }); + + my @orderids = ( $order->{ordernumber} ); + is(C4::Letters::PrintClaimOrderNotice(), undef, 'returns undef with no args'); + is(C4::Letters::PrintClaimOrderNotice(\@orderids), undef, 'returns undef with no letter code'); + is(C4::Letters::PrintClaimOrderNotice(undef, $letter_code), undef, 'returns undef with no serial ids'); + is(C4::Letters::PrintClaimOrderNotice([], $letter_code), undef, 'returns undef with no serial ids'); + + my $pdf = C4::Letters::PrintClaimOrderNotice(\@orderids, $letter_code); + is(substr($pdf, 0, 4), '%PDF', 'output is a PDF'); + + SKIP: { + eval { require CAM::PDF }; + + skip "CAM::PDF is not installed", 1 if $@; + + my $cam = CAM::PDF->new($pdf); + my $text = $cam->getPageContent(1); + like($text, qr/Title: Surprise/, 'PDF contains Title: Surprise'); + } +}; -- 2.1.4