View | Details | Raw Unified | Return to bug 34978
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Plugins/Plugins.t (-24 / +28 lines)
Lines 22-27 use File::Basename; Link Here
22
use File::Spec;
22
use File::Spec;
23
use File::Temp                qw( tempdir tempfile );
23
use File::Temp                qw( tempdir tempfile );
24
use FindBin                   qw($Bin);
24
use FindBin                   qw($Bin);
25
use List::MoreUtils           qw(none);
25
use Module::Load::Conditional qw(can_load);
26
use Module::Load::Conditional qw(can_load);
26
use Test::MockModule;
27
use Test::MockModule;
27
use Test::NoWarnings;
28
use Test::NoWarnings;
Lines 194-200 subtest 'GetPlugins() tests' => sub { Link Here
194
195
195
subtest 'InstallPlugins() tests' => sub {
196
subtest 'InstallPlugins() tests' => sub {
196
197
197
    plan tests => 6;
198
    plan tests => 8;
198
199
199
    $schema->storage->txn_begin;
200
    $schema->storage->txn_begin;
200
201
Lines 204-224 subtest 'InstallPlugins() tests' => sub { Link Here
204
205
205
    # Tests for the exclude parameter
206
    # Tests for the exclude parameter
206
    # Test the returned plugins of the InstallPlugins subroutine
207
    # Test the returned plugins of the InstallPlugins subroutine
208
    my $excluded_plugins  = [ "Koha::Plugin::Test", "Koha::Plugin::MarcFieldValues" ];
207
    my $plugins           = Koha::Plugins->new( { enable_plugins => 1 } );
209
    my $plugins           = Koha::Plugins->new( { enable_plugins => 1 } );
208
    my @installed_plugins = $plugins->InstallPlugins( { exclude => [ "Koha::Plugin::Test", "Koha::Plugin::MarcFieldValues" ] } );
210
    my @installed_plugins = $plugins->InstallPlugins( { exclude => $excluded_plugins } );
209
    my $plugin_classes    = join( " ", map { $_->{class} } @installed_plugins );
210
211
211
    my $result = grep { $plugin_classes !~ $_ } [ ":Test |:Test\$", ":MarcFieldValues |:MarcFieldValues\$" ]
212
    foreach my $excluded_plugin ( @{$excluded_plugins} ) {
212
        && $plugin_classes =~ ":TestItemBarcodeTransform |:TestItemBarcodeTransform\$";
213
        ok(
213
    ok( $result, "Excluded plugins are not returned" );
214
            none { $_ eq $excluded_plugin } ( map { $_->{class} } @installed_plugins ),
215
            "Excluded plugin not returned ($excluded_plugin)"
216
        );
217
    }
214
218
215
    # Test the plugins in the database
219
    # Test the plugins in the database
216
    my @plugins = $plugins->GetPlugins( { all => 1, error => 1 } );
220
    my @plugins = $plugins->GetPlugins( { all => 1, error => 1 } );
217
    $plugin_classes = join( " ", map { $_->{class} } @plugins );
221
    foreach my $excluded_plugin ( @{$excluded_plugins} ) {
218
222
        ok(
219
    $result = grep { $plugin_classes !~ $_ } [ ":Test |:Test\$", ":MarcFieldValues |:MarcFieldValues\$" ]
223
            none { $_ eq $excluded_plugin } ( map { $_->{class} } @plugins ),
220
        && $plugin_classes =~ ":TestItemBarcodeTransform |:TestItemBarcodeTransform\$";
224
            "Excluded plugin not installed ($excluded_plugin)"
221
    ok( $result, "Excluded plugins are not installed" );
225
        );
226
    }
222
227
223
    # Remove installed plugins data
228
    # Remove installed plugins data
224
    Koha::Plugins::Methods->delete;
229
    Koha::Plugins::Methods->delete;
Lines 226-234 subtest 'InstallPlugins() tests' => sub { Link Here
226
231
227
    # Tests for the include parameter
232
    # Tests for the include parameter
228
    # Test the returned plugins of the InstallPlugins subroutine
233
    # Test the returned plugins of the InstallPlugins subroutine
229
    @installed_plugins = $plugins->InstallPlugins( { include => [ "Koha::Plugin::Test", "Koha::Plugin::MarcFieldValues" ] } );
234
    @installed_plugins =
235
        $plugins->InstallPlugins( { include => [ "Koha::Plugin::Test", "Koha::Plugin::MarcFieldValues" ] } );
230
236
231
    $result = 1;
237
    my $result = 1;
232
    foreach my $plugin_class ( map { $_->{class} } @installed_plugins ) {
238
    foreach my $plugin_class ( map { $_->{class} } @installed_plugins ) {
233
        $result = 0 unless ( "$plugin_class" =~ ":Test\$" || "$plugin_class" =~ ":MarcFieldValues\$" );
239
        $result = 0 unless ( "$plugin_class" =~ ":Test\$" || "$plugin_class" =~ ":MarcFieldValues\$" );
234
    }
240
    }
Lines 244-260 subtest 'InstallPlugins() tests' => sub { Link Here
244
    ok( $result, "Only included plugins are installed" );
250
    ok( $result, "Only included plugins are installed" );
245
251
246
    # Tests when both include and exclude parameter are used simultaneously
252
    # Tests when both include and exclude parameter are used simultaneously
247
    throws_ok
253
    throws_ok {
248
        {
254
        $plugins->InstallPlugins( { exclude => ["Koha::Plugin::Test"], include => ["Koha::Plugin::Test"] } );
249
            $plugins->InstallPlugins( { exclude => [ "Koha::Plugin::Test" ], include => [ "Koha::Plugin::Test" ] } );
255
    }
250
        }
256
    'Koha::Exceptions::BadParameter';
251
        'Koha::Exceptions::BadParameter';
257
252
    # Tests when the plugin to be installled is not found
258
    # Tests when the plugin to be installled is not found
253
    throws_ok
259
    throws_ok {
254
        {
260
        $plugins->InstallPlugins( { include => ["Koha::Plugin::NotfoundPlugin"] } );
255
            $plugins->InstallPlugins( { include => [ "Koha::Plugin::NotfoundPlugin" ] } );
261
    }
256
        }
262
    'Koha::Exceptions::BadParameter';
257
        'Koha::Exceptions::BadParameter';
258
263
259
    $schema->storage->txn_rollback;
264
    $schema->storage->txn_rollback;
260
};
265
};
261
- 

Return to bug 34978