Mercurial > prosody-modules
comparison mod_lib_ldap/dev/t/TestConnection.pm @ 809:1d51c5e38faa
Add LDAP plugin suite
author | rob@hoelz.ro |
---|---|
date | Sun, 02 Sep 2012 15:35:50 +0200 |
parents | |
children | 8495dae58d78 |
comparison
equal
deleted
inserted
replaced
808:ba2e207e1fb7 | 809:1d51c5e38faa |
---|---|
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', | |
17 ); | |
18 | |
19 sub new { | |
20 my ( $class, $username, %options ) = @_; | |
21 | |
22 my $cond = AnyEvent->condvar; | |
23 my $timer = AnyEvent->timer( | |
24 after => $TIMEOUT, | |
25 cb => sub { | |
26 $cond->send('timeout'); | |
27 }, | |
28 ); | |
29 | |
30 my $self = $class->SUPER::new( | |
31 username => $username, | |
32 domain => $HOST, | |
33 password => $options{'password'} // $PASSWORD_FOR{$username}, | |
34 ); | |
35 | |
36 $self->reg_cb(error => sub { | |
37 my ( undef, $error ) = @_; | |
38 | |
39 $cond->send($error->string); | |
40 }); | |
41 | |
42 bless $self, $class; | |
43 | |
44 $self->{'condvar'} = $cond; | |
45 $self->{'timeout_timer'} = $timer; | |
46 | |
47 $self->connect; | |
48 | |
49 return $self; | |
50 } | |
51 | |
52 sub cond { | |
53 my ( $self ) = @_; | |
54 | |
55 return $self->{'condvar'}; | |
56 } | |
57 | |
58 1; |