OSDN Git Service

Fix for perl 5.26.
[keitairc/keitairc.git] / t / 02_Plugins.t
1 # -*- mode: perl; coding: utf-8 -*-
2 # Copyright (c) 2003-2008 Jun Morimoto <morimoto@mrmt.net>
3 # This program is covered by the GNU General Public License 2
4 use strict;
5 use warnings;
6 use Test::More tests => 6;
7 use FindBin;
8 use lib "$FindBin::Bin/../lib";
9
10 BEGIN {
11         use_ok('Keitairc::Plugins');
12 }
13
14 can_ok('Keitairc::Plugins',
15        qw/new list_plugins list_replace_plugins list_action_plugins
16        load_plugins/);
17
18 use Keitairc::Config;
19 use Keitairc::Log;
20
21 my $cf = new Keitairc::Config({
22         version => '0.0',
23         silent => 1,
24         argv => [
25                 '-web_host', 'example.com',
26                 '-irc_nick', 'foo',
27                 '-irc_username', 'foo',
28                 '-irc_server', 'example.com',
29                 '-web_password', 'foo',
30                 '-plugin_dir', "$FindBin::Bin/02_Plugins"
31                 ]});
32 my $pl = new Keitairc::Plugins({config => $cf, silent => 1});
33 ok($pl, 'new Keitairc::Plugins');
34
35 ok(array_eq($pl->list_plugins(),
36             qw/unread index topic recent mail foo bar/),
37    'list_plugins()');
38 ok(array_eq($pl->list_replace_plugins(),
39             qw/mail foo bar/),
40    'list_replace_plugins()');
41 ok(array_eq($pl->list_action_plugins(),
42             qw/unread index topic recent mail foo bar/),
43    'list_action_plugins()');
44 exit;
45
46 sub array_eq{
47         if(@_ % 2){
48                 return 0;
49         }
50
51         for(my($a, $b) = (0, @_/2); $a < @_/2; $a++, $b++){
52                 return 0 unless $_[$a] eq $_[$b];
53         }
54         1;
55 }
56
57