Lines 25-31
use File::Temp qw( tempdir tempfile );
Link Here
|
25 |
use FindBin qw($Bin); |
25 |
use FindBin qw($Bin); |
26 |
use Module::Load::Conditional qw(can_load); |
26 |
use Module::Load::Conditional qw(can_load); |
27 |
use Test::MockModule; |
27 |
use Test::MockModule; |
28 |
use Test::More tests => 55; |
28 |
use Test::More tests => 58; |
|
|
29 |
use Test::Warn; |
29 |
|
30 |
|
30 |
use C4::Context; |
31 |
use C4::Context; |
31 |
use Koha::Database; |
32 |
use Koha::Database; |
Lines 47-53
BEGIN {
Link Here
|
47 |
my $schema = Koha::Database->new->schema; |
48 |
my $schema = Koha::Database->new->schema; |
48 |
|
49 |
|
49 |
subtest 'call() tests' => sub { |
50 |
subtest 'call() tests' => sub { |
50 |
plan tests => 3; |
51 |
|
|
|
52 |
plan tests => 4; |
51 |
|
53 |
|
52 |
$schema->storage->txn_begin; |
54 |
$schema->storage->txn_begin; |
53 |
# Temporarily remove any installed plugins data |
55 |
# Temporarily remove any installed plugins data |
Lines 55-61
subtest 'call() tests' => sub {
Link Here
|
55 |
|
57 |
|
56 |
t::lib::Mocks::mock_config('enable_plugins', 1); |
58 |
t::lib::Mocks::mock_config('enable_plugins', 1); |
57 |
my $plugins = Koha::Plugins->new({ enable_plugins => 1 }); |
59 |
my $plugins = Koha::Plugins->new({ enable_plugins => 1 }); |
58 |
my @plugins = $plugins->InstallPlugins; |
60 |
|
|
|
61 |
my @plugins; |
62 |
|
63 |
warnings_are |
64 |
{ @plugins = $plugins->InstallPlugins; } |
65 |
[ "Calling 'install' died for plugin Koha::Plugin::BrokenInstall", "Calling 'upgrade' died for plugin Koha::Plugin::BrokenUpgrade" ]; |
66 |
|
59 |
foreach my $plugin (@plugins) { |
67 |
foreach my $plugin (@plugins) { |
60 |
$plugin->enable(); |
68 |
$plugin->enable(); |
61 |
} |
69 |
} |
Lines 80-93
subtest 'call() tests' => sub {
Link Here
|
80 |
|
88 |
|
81 |
subtest 'GetPlugins() tests' => sub { |
89 |
subtest 'GetPlugins() tests' => sub { |
82 |
|
90 |
|
83 |
plan tests => 2; |
91 |
plan tests => 3; |
84 |
|
92 |
|
85 |
$schema->storage->txn_begin; |
93 |
$schema->storage->txn_begin; |
86 |
# Temporarily remove any installed plugins data |
94 |
# Temporarily remove any installed plugins data |
87 |
Koha::Plugins::Methods->delete; |
95 |
Koha::Plugins::Methods->delete; |
88 |
|
96 |
|
89 |
my $plugins = Koha::Plugins->new({ enable_plugins => 1 }); |
97 |
my $plugins = Koha::Plugins->new({ enable_plugins => 1 }); |
90 |
$plugins->InstallPlugins; |
98 |
|
|
|
99 |
warnings_are { $plugins->InstallPlugins; } |
100 |
[ "Calling 'install' died for plugin Koha::Plugin::BrokenInstall", "Calling 'upgrade' died for plugin Koha::Plugin::BrokenUpgrade" ]; |
91 |
|
101 |
|
92 |
my @plugins = $plugins->GetPlugins({ method => 'report', all => 1 }); |
102 |
my @plugins = $plugins->GetPlugins({ method => 'report', all => 1 }); |
93 |
|
103 |
|
Lines 148-154
subtest 'is_enabled() tests' => sub {
Link Here
|
148 |
$schema->storage->txn_begin; |
158 |
$schema->storage->txn_begin; |
149 |
Koha::Plugins::Methods->delete; |
159 |
Koha::Plugins::Methods->delete; |
150 |
|
160 |
|
151 |
Koha::Plugins->new( { enable_plugins => 1 } )->InstallPlugins(); |
161 |
warnings_are { Koha::Plugins->new( { enable_plugins => 1 } )->InstallPlugins(); } |
|
|
162 |
[ "Calling 'install' died for plugin Koha::Plugin::BrokenInstall", "Calling 'upgrade' died for plugin Koha::Plugin::BrokenUpgrade" ]; |
152 |
|
163 |
|
153 |
ok( Koha::Plugins::Methods->search( { plugin_class => 'Koha::Plugin::Test' } )->count, 'Test plugin methods added to database' ); |
164 |
ok( Koha::Plugins::Methods->search( { plugin_class => 'Koha::Plugin::Test' } )->count, 'Test plugin methods added to database' ); |
154 |
is( Koha::Plugins::Methods->search({ plugin_class => 'Koha::Plugin::Test', plugin_method => '_private_sub' })->count, 0, 'Private methods are skipped' ); |
165 |
is( Koha::Plugins::Methods->search({ plugin_class => 'Koha::Plugin::Test', plugin_method => '_private_sub' })->count, 0, 'Private methods are skipped' ); |
Lines 262-268
for my $pass ( 1 .. 2 ) {
Link Here
|
262 |
|
273 |
|
263 |
ok( -f $plugins_dir . "/Koha/Plugin/Com/ByWaterSolutions/KitchenSink.pm", "KitchenSink plugin installed successfully" ); |
274 |
ok( -f $plugins_dir . "/Koha/Plugin/Com/ByWaterSolutions/KitchenSink.pm", "KitchenSink plugin installed successfully" ); |
264 |
$INC{$pm_path} = $full_pm_path; # FIXME I do not really know why, but if this is moved before the $plugin constructor, it will fail with Can't locate object method "new" via package "Koha::Plugin::Com::ByWaterSolutions::KitchenSink" |
275 |
$INC{$pm_path} = $full_pm_path; # FIXME I do not really know why, but if this is moved before the $plugin constructor, it will fail with Can't locate object method "new" via package "Koha::Plugin::Com::ByWaterSolutions::KitchenSink" |
265 |
Koha::Plugins->new( { enable_plugins => 1 } )->InstallPlugins(); |
276 |
warnings_are |
|
|
277 |
{ Koha::Plugins->new( { enable_plugins => 1 } )->InstallPlugins(); } |
278 |
[ "Calling 'install' died for plugin Koha::Plugin::BrokenInstall", "Calling 'upgrade' died for plugin Koha::Plugin::BrokenUpgrade" ]; |
266 |
ok( -f $full_pm_path, "Koha::Plugins::Handler::delete works correctly (pass $pass)" ); |
279 |
ok( -f $full_pm_path, "Koha::Plugins::Handler::delete works correctly (pass $pass)" ); |
267 |
Koha::Plugins::Handler->delete({ class => "Koha::Plugin::Com::ByWaterSolutions::KitchenSink", enable_plugins => 1 }); |
280 |
Koha::Plugins::Handler->delete({ class => "Koha::Plugin::Com::ByWaterSolutions::KitchenSink", enable_plugins => 1 }); |
268 |
my $sth = C4::Context->dbh->table_info( undef, undef, $table, 'TABLE' ); |
281 |
my $sth = C4::Context->dbh->table_info( undef, undef, $table, 'TABLE' ); |