@@ -, +, @@ --- Koha/Plugins/Base.pm | 14 ++++++++++++++ t/db_dependent/Plugins.t | 25 ++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) --- a/Koha/Plugins/Base.pm +++ a/Koha/Plugins/Base.pm @@ -272,6 +272,20 @@ sub _version_compare { return 0; } +=head2 is_enabled + +Method that returns wether the plugin is enabled or not + +$plugin->enable + +=cut + +sub is_enabled { + my ($self) = @_; + + return $self->retrieve_data( '__ENABLED__' ); +} + =head2 enable Method for enabling plugin --- a/t/db_dependent/Plugins.t +++ a/t/db_dependent/Plugins.t @@ -23,7 +23,7 @@ use File::Temp qw( tempdir tempfile ); use FindBin qw($Bin); use Module::Load::Conditional qw(can_load); use Test::MockModule; -use Test::More tests => 50; +use Test::More tests => 51; use C4::Context; use Koha::Database; @@ -109,6 +109,29 @@ subtest 'Version upgrade tests' => sub { $schema->storage->txn_rollback; }; +subtest 'is_enabled() tests' => sub { + + plan tests => 3; + $schema->storage->txn_begin; + + # Make sure there's no previous installs or leftovers on DB + Koha::Plugins::Methods->delete; + $schema->resultset('PluginData')->delete; + + my $plugin = Koha::Plugin::Test->new({ enable_plugins => 1, cgi => CGI->new }); + ok( $plugin->is_enabled, 'Plugins enabled by default' ); + + # disable + $plugin->disable; + ok( !$plugin->is_enabled, 'Calling ->disable disables the plugin' ); + + # enable + $plugin->enable; + ok( $plugin->is_enabled, 'Calling ->enable enabled the plugin' ); + + $schema->storage->txn_rollback; +}; + $schema->storage->txn_begin; Koha::Plugins::Methods->delete; --