mod_lib_ldap/dev/t/TestConnection.pm
author Rob Hoelz <rob@hoelz.ro>
Mon, 10 Dec 2012 22:04:53 +0100
changeset 866 8495dae58d78
parent 809 1d51c5e38faa
child 875 ce7a128d139d
permissions -rw-r--r--
Test login for user 'six' This user appears in a deeper LDAP record
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
809
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     1
package TestConnection;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     2
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     3
use strict;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     4
use warnings;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     5
use parent 'AnyEvent::XMPP::IM::Connection';
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     6
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     7
use 5.010;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     8
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
     9
our $HOST         = 'localhost';
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    10
our $TIMEOUT      = 5;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    11
our %PASSWORD_FOR = (
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    12
    one   => '12345',
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    13
    two   => '23451',
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    14
    three => '34512',
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    15
    four  => '45123',
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    16
    five  => '51234',
866
8495dae58d78 Test login for user 'six'
Rob Hoelz <rob@hoelz.ro>
parents: 809
diff changeset
    17
    six   => '123456',
809
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    18
);
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    19
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    20
sub new {
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    21
    my ( $class, $username, %options ) = @_;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    22
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    23
    my $cond  = AnyEvent->condvar;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    24
    my $timer = AnyEvent->timer(
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    25
        after => $TIMEOUT,
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    26
        cb    => sub {
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    27
            $cond->send('timeout');
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    28
        },
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    29
    );
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    30
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    31
    my $self = $class->SUPER::new(
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    32
        username => $username,
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    33
        domain   => $HOST,
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    34
        password => $options{'password'} // $PASSWORD_FOR{$username},
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    35
    );
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    36
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    37
    $self->reg_cb(error => sub {
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    38
        my ( undef, $error ) = @_;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    39
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    40
        $cond->send($error->string);
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    41
    });
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    42
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    43
    bless $self, $class;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    44
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    45
    $self->{'condvar'}       = $cond;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    46
    $self->{'timeout_timer'} = $timer;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    47
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    48
    $self->connect;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    49
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    50
    return $self;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    51
}
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    52
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    53
sub cond {
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    54
    my ( $self ) = @_;
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    55
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    56
    return $self->{'condvar'};
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    57
}
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    58
1d51c5e38faa Add LDAP plugin suite
rob@hoelz.ro
parents:
diff changeset
    59
1;