1use strict; 2use warnings; 3use Test::More tests => 7; 4use POE; 5use POE::Component::Server::IRC; 6 7my $pocosi = POE::Component::Server::IRC->spawn( 8 auth => 0, 9 antiflood => 0, 10 plugin_debug => 1, 11); 12 13POE::Session->create( 14 package_states => [ 15 'main' => [qw( 16 _start 17 _shutdown 18 ircd_daemon_quit 19 ircd_daemon_nick 20 )], 21 ], 22 heap => { ircd => $pocosi }, 23); 24 25$poe_kernel->run(); 26 27sub _start { 28 my ($kernel, $heap) = @_[KERNEL, HEAP]; 29 $heap->{ircd}->yield('register', 'all'); 30 $heap->{ircd}->yield( 31 'add_spoofed_nick', 32 { 33 nick => 'OperServ', 34 umode => 'o', 35 }, 36 ); 37 $kernel->delay('_shutdown', 20); 38} 39 40sub _shutdown { 41 my $heap = $_[HEAP]; 42 $_[KERNEL]->delay('_shutdown'); 43 $heap->{ircd}->yield('shutdown'); 44 delete $heap->{ircd}; 45} 46 47sub ircd_daemon_quit { 48 pass('Deleted Spoof User'); 49 $poe_kernel->yield('_shutdown'); 50} 51 52sub ircd_daemon_nick { 53 my @args = @_[ARG0..$#_]; 54 55 is($args[0], 'OperServ', 'Spoof Test 1: Nick'); 56 is($args[4], 'OperServ', 'Spoof Test 1: User'); 57 is($args[5], 'poco.server.irc', 'Spoof Test 1: Host'); 58 is($args[6], 'poco.server.irc', 'Spoof Test 1: Server'); 59 is($args[3], '+o', 'Spoof Test 1: Umode'); 60 is($args[7], "* I'm too lame to read the documentation *", 'Spoof Test 1: GECOS'); 61 $_[SENDER]->get_heap()->yield('del_spoofed_nick', $args[0]); 62} 63