#!perl -w

use strict;
use warnings;

sub register_tests {
    my $self = shift;

    eval 'use DBI';
    if ( $@ ) {
        warn "skipping auth_vpopmail_sql tests, is DBI installed?\n";
        return;
    };
    $self->register_test("auth_vpopmail_sql", 3);
}

sub auth_vpopmail_sql {
    my $self = shift;
    my ( $transaction, $method, $user, $passClear, $passHash, $ticket ) = @_;

    my $dbh = $self->get_db_handle() or do {
            foreach ( 0..2 ) {
                ok( 1, "skipped (no DB)" );
            };
            return;
        };
    ok( $dbh, "auth_vpopmail_sql, got a dbh" );

    my $vuser = $self->get_vpopmail_user( $dbh, 'postmaster@example.com' );
    if ( ! $vuser || ! $vuser->{pw_passwd} ) {
        foreach ( 0..1 ) {
            ok( 1, "no example.com domain" );
        };
        return;
    };
    ok( ref $vuser, "found example.com domain" );

    ok( $self->auth_vmysql(
            $self->qp->transaction,
            'PLAIN',
            'postmaster@example.com',
            $vuser->{pw_clear_passwd},
            $vuser->{pw_passwd},
            $ticket,
        ),
        "postmaster"
    );
}