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},
|
|
36 );
|
|
37
|
|
38 $self->reg_cb(error => sub {
|
|
39 my ( undef, $error ) = @_;
|
|
40
|
|
41 $cond->send($error->string);
|
|
42 });
|
|
43
|
|
44 bless $self, $class;
|
|
45
|
|
46 $self->{'condvar'} = $cond;
|
|
47 $self->{'timeout_timer'} = $timer;
|
|
48
|
|
49 $self->connect;
|
|
50
|
|
51 return $self;
|
|
52 }
|
|
53
|
|
54 sub cond {
|
|
55 my ( $self ) = @_;
|
|
56
|
|
57 return $self->{'condvar'};
|
|
58 }
|
|
59
|
|
60 1;
|