From 02712063d9d80362787fcd5ad6f2df9e039108f3 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Tue, 14 Nov 2023 09:41:24 +0000 Subject: [PATCH] Bug 35331: Add plugin hook tests prove t/db_dependent/Koha/Plugins/Ill_hooks.t Signed-off-by: David Nind Signed-off-by: Kyle M Hall --- t/db_dependent/Koha/Plugins/Ill_hooks.t | 73 +++++++++++++++++++++++++ t/lib/plugins/Koha/Plugin/Test.pm | 11 ++++ 2 files changed, 84 insertions(+) create mode 100755 t/db_dependent/Koha/Plugins/Ill_hooks.t diff --git a/t/db_dependent/Koha/Plugins/Ill_hooks.t b/t/db_dependent/Koha/Plugins/Ill_hooks.t new file mode 100755 index 0000000000..5abd6e6a56 --- /dev/null +++ b/t/db_dependent/Koha/Plugins/Ill_hooks.t @@ -0,0 +1,73 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 3 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, see . + +use Modern::Perl; +use File::Basename; +use Test::More tests => 4; + +use t::lib::Mocks; +use t::lib::TestBuilder; + +use Koha::Database; + +BEGIN { + # Mock pluginsdir before loading Plugins module + my $path = dirname(__FILE__) . '/../../../lib/plugins'; + t::lib::Mocks::mock_config( 'pluginsdir', $path ); + + use_ok('Koha::Plugins'); + use_ok('Koha::Plugins::Handler'); + use_ok('Koha::Plugin::Test'); +} + +my $schema = Koha::Database->new->schema; +my $builder = t::lib::TestBuilder->new; + +t::lib::Mocks::mock_config( 'enable_plugins', 1 ); + +subtest 'ill_table_actions hook' => sub { + + plan tests => 1; + + $schema->storage->txn_begin; + + my $plugins = Koha::Plugins->new; + $plugins->InstallPlugins; + + my $table_actions = Koha::Illrequest->get_staff_table_actions; + + is_deeply( + $table_actions, + [ + { + button_class => 'btn btn-default btn-sm', + button_link => '/cgi-bin/koha/ill/ill-requests.pl?method=illview&illrequest_id=', + append_column_data_to_link => 1, + button_link_translatable_text => 'ill_manage' + }, + { + button_link_text => 'Test text', + append_column_data_to_link => 1, + button_class => 'test class', + button_link => 'test link' + } + ], + 'get_staff_table_actions() should return core action plus a custom plugin actions' + ); + + Koha::Plugins::Methods->delete; + $schema->storage->txn_rollback; +}; diff --git a/t/lib/plugins/Koha/Plugin/Test.pm b/t/lib/plugins/Koha/Plugin/Test.pm index 1012663cdf..430c3a68b3 100644 --- a/t/lib/plugins/Koha/Plugin/Test.pm +++ b/t/lib/plugins/Koha/Plugin/Test.pm @@ -377,6 +377,17 @@ sub template_include_paths { ]; } +sub ill_table_actions { + my ( $self ) = @_; + + return { + button_link_text => 'Test text', + append_column_data_to_link => 1, + button_class => 'test class', + button_link => 'test link' + }; +} + sub _private_sub { return ""; } -- 2.30.2