]>
Commit | Line | Data |
---|---|---|
1 | use v5.14; | |
2 | use strict; | |
3 | use warnings; | |
4 | ||
5 | use Test::More tests => 15; | |
6 | use Test::MockObject; | |
7 | ||
8 | BEGIN { use_ok('POE::Component::IRC::Plugin::Hello') }; | |
9 | ||
10 | # Variable setup | |
11 | my $hello_sent; | |
12 | ||
13 | my $mockirc = Test::MockObject->new; | |
14 | $mockirc->mock(yield => sub { $hello_sent = 1 })->set_always(nick_name => 'hellobot'); | |
15 | ||
16 | my $self = POE::Component::IRC::Plugin::Hello->new; | |
17 | my $channels = [ '#chan' ]; | |
18 | ||
19 | # Sub setup | |
20 | sub runtest{ | |
21 | my ($message, $expect, $comment) = @_; | |
22 | $hello_sent=0; | |
23 | $self->S_public($mockirc, \'mgv!marius@ieval.ro', \$channels, \$message); | |
24 | ok($hello_sent == $expect, $comment) | |
25 | } | |
26 | ||
27 | #Tests | |
28 | runtest 'privet', 1, 'simple privet'; | |
29 | runtest 'PrIvEt', 1, 'privet in mixed case'; | |
30 | runtest ' privet ', 1, 'privet with spaces'; | |
31 | runtest 'hellobot: privet', 1, 'addressed privet'; | |
32 | runtest 'hellobot: privet ', 1, 'addressed privet with spaces'; | |
33 | runtest 'ahoy', 1, 'ahoy'; | |
34 | runtest 'namaste', 1, 'namaste'; | |
35 | runtest 'neaţa', 1, 'neaţa (UTF-8 test)'; | |
36 | runtest 'こんにちは', 1, 'こんにちは (another UTF-8 test)'; | |
37 | ||
38 | runtest 'salu', 0, 'salu (misspelling)'; | |
39 | runtest 'hii', 0, 'hii (misspelling)'; | |
40 | runtest 'neaţa mgv', 0, 'neaţa mgv (valid greeting with garbage after it)'; | |
41 | ||
42 | $self = POE::Component::IRC::Plugin::Hello->new(greetings => ['sayonara']); | |
43 | ||
44 | runtest 'privet', 0, 'custom greetings - privet'; | |
45 | runtest ' sayonara ', 1, 'custom greetings - sayonara'; |