@@ -, +, @@ -------------------- -- notice only 5 tests, and generate_as_pdf not tested. -- this will test the error and no error cases tweaked in Koha/Borrower/Discharge.pm $ sudo apt-get purge libpdf-fromhtml-perl -- 7 tests, all successful $ sudo dpkg -i /path/to/libpdf-fromhtml-perl... -- depends on how you get it. vary accordingly. -- 7 tests, all successful -- Note that is was a different 7th test. :) --- Koha/Borrower/Discharge.pm | 21 ++++++++++++++++----- t/db_dependent/Borrower_Discharge.t | 17 +++++++++++++++++ 2 files changed, 33 insertions(+), 5 deletions(-) --- a/Koha/Borrower/Discharge.pm +++ a/Koha/Borrower/Discharge.pm @@ -3,7 +3,9 @@ package Koha::Borrower::Discharge; use Modern::Perl; use CGI; use File::Temp qw( :POSIX ); +use Carp; +use C4::Templates qw ( gettemplate ); use C4::Members qw( GetPendingIssues ); use C4::Reserves qw( GetReservesFromBorrowernumber CancelReserve ); @@ -113,11 +115,20 @@ sub generate_as_pdf { open my $html_fh, '>:encoding(utf8)', $html_path; say $html_fh $html_content; close $html_fh; - require PDF::FromHTML; - my $pdf = PDF::FromHTML->new( encoding => 'utf-8' ); - $pdf->load_file( $html_path ); - $pdf->convert; - $pdf->write_file( $pdf_path ); + my $output = eval { require PDF::FromHTML; return; } || $@; + if ($output && $params->{testing}) { + carp $output; + $pdf_path = undef; + } + elsif ($output) { + die $output; + } + else { + my $pdf = PDF::FromHTML->new( encoding => 'utf-8' ); + $pdf->load_file( $html_path ); + $pdf->convert; + $pdf->write_file( $pdf_path ); + } return $pdf_path; } --- a/t/db_dependent/Borrower_Discharge.t +++ a/t/db_dependent/Borrower_Discharge.t @@ -2,6 +2,7 @@ use Modern::Perl; use Test::More; +use Test::Warn; use MARC::Record; use C4::Biblio qw( AddBiblio ); @@ -46,6 +47,22 @@ AddReturn( $barcode ); # Discharge possible without issue is( Koha::Borrower::Discharge::can_be_discharged({ borrowernumber => $borrowernumber }), 1, 'A patron without issues can be discharged' ); +is(Koha::Borrower::Discharge::generate_as_pdf,undef,"Confirm failure when lacking borrower number"); + +# Check if PDF::FromHTML is installed. +my $check = eval { require PDF::FromHTML; }; + +# Tests for if PDF::FromHTML is installed +if ($check) { + isnt( Koha::Borrower::Discharge::generate_as_pdf({ borrowernumber => $borrowernumber }), undef, "Temporary PDF generated." ); +} +# Tests for if PDF::FromHTML is not installed +else { + warning_like { Koha::Borrower::Discharge::generate_as_pdf({ borrowernumber => $borrowernumber, testing => 1 }) } + [ qr/Can't locate PDF\/FromHTML.pm in \@INC/ ], + "Expected failure because of missing PDF::FromHTML."; +} + # FIXME # At this point, there is a problem with the AutoCommit off # The transaction is bloked into DBIx::Class::Storage::DBI::_dbh_execute --