my $mynick = $irc->nick_name;
my @hello = @{$self->{greetings}};
- my $match = first { $$rmessage =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*$/i } @hello;
+ my $match = first { $$rmessage =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*[.!]?\s*$/i } @hello;
$irc->yield(privmsg => $$rchannels->[0] => $hello[int rand $#hello].", $nick") if $match;
PCI_EAT_NONE
}
use strict;
use warnings;
-use Test::More tests => 15;
+use Test::More tests => 18;
use Test::MockObject;
BEGIN { use_ok('POE::Component::IRC::Plugin::Hello') };
runtest ' privet ', 1, 'privet with spaces';
runtest 'hellobot: privet', 1, 'addressed privet';
runtest 'hellobot: privet ', 1, 'addressed privet with spaces';
+runtest 'privet!', 1, 'privet with exclamation mark';
+runtest 'privet.', 1, 'privet with full stop';
runtest 'ahoy', 1, 'ahoy';
runtest 'namaste', 1, 'namaste';
runtest 'neaţa', 1, 'neaţa (UTF-8 test)';
runtest 'salu', 0, 'salu (misspelling)';
runtest 'hii', 0, 'hii (misspelling)';
runtest 'neaţa mgv', 0, 'neaţa mgv (valid greeting with garbage after it)';
+runtest 'hi,', 0, 'hi, (bad punctuation)';
$self = POE::Component::IRC::Plugin::Hello->new(greetings => ['sayonara']);
-
runtest 'privet', 0, 'custom greetings - privet';
runtest ' sayonara ', 1, 'custom greetings - sayonara';