809
+ − 1 package TestConnection ;
+ − 2
+ − 3 use strict ;
+ − 4 use warnings ;
+ − 5 use parent 'AnyEvent::XMPP::IM::Connection' ;
+ − 6
+ − 7 use 5.010 ;
+ − 8
+ − 9 our $HOST = 'localhost' ;
+ − 10 our $TIMEOUT = 5 ;
+ − 11 our %PASSWORD_FOR = (
+ − 12 one => '12345' ,
+ − 13 two => '23451' ,
+ − 14 three => '34512' ,
+ − 15 four => '45123' ,
+ − 16 five => '51234' ,
866
+ − 17 six => '123456' ,
875
+ − 18 seven => '1234567' ,
809
+ − 19 );
+ − 20
+ − 21 sub new {
+ − 22 my ( $class , $username , %options ) = @_ ;
+ − 23
+ − 24 my $cond = AnyEvent -> condvar ;
+ − 25 my $timer = AnyEvent -> timer (
+ − 26 after => $TIMEOUT ,
+ − 27 cb => sub {
+ − 28 $cond -> send ( 'timeout' );
+ − 29 },
+ − 30 );
+ − 31
+ − 32 my $self = $class -> SUPER:: new (
+ − 33 username => $username ,
+ − 34 domain => $HOST ,
+ − 35 password => $options { 'password' } // $PASSWORD_FOR { $username },
1465
+ − 36 resource => 'test bot' ,
809
+ − 37 );
+ − 38
+ − 39 $self -> reg_cb ( error => sub {
+ − 40 my ( undef , $error ) = @_ ;
+ − 41
+ − 42 $cond -> send ( $error -> string );
+ − 43 });
+ − 44
+ − 45 bless $self , $class ;
+ − 46
+ − 47 $self -> { 'condvar' } = $cond ;
+ − 48 $self -> { 'timeout_timer' } = $timer ;
+ − 49
+ − 50 $self -> connect ;
+ − 51
+ − 52 return $self ;
+ − 53 }
+ − 54
+ − 55 sub cond {
+ − 56 my ( $self ) = @_ ;
+ − 57
+ − 58 return $self -> { 'condvar' };
+ − 59 }
+ − 60
+ − 61 1 ;