Lemonldap-NG-Portal

 view release on metacpan or  search on metacpan

t/43-MailPasswordReset-Choice.t  view on Meta::CPAN

use warnings;
use Test::More;
use strict;
use IO::String;

BEGIN {
    eval {
        require 't/test-lib.pm';
        require 't/smtp.pm';
    };
}

my ( $res, $user, $pwd );
my $maintests = 17;
my $mailSend  = 0;

my $mail2  = 0;
my $userdb = tempdb();

SKIP: {
    eval
      'require Email::Sender::Simple;use GD::SecurityImage;use Image::Magick;';
    if ($@) {
        skip 'Missing dependencies', $maintests;
    }
    eval { require DBI; require DBD::SQLite; };
    if ($@) {
        skip 'DBD::SQLite not found', $maintests;
    }
    my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
    $dbh->do(
        'CREATE TABLE users (user text,password text,name text, mail text)');
    $dbh->do(
        "INSERT INTO users VALUES ('yadd','yadd','Yadd','yadd\@badwolf.org')");

    my $client = LLNG::Manager::Test->new( {
            ini => {
                logLevel              => 'error',
                useSafeJail           => 1,
                portalDisplayRegister => 1,
                authentication        => 'Choice',
                authChoiceParam       => 'test',
                authChoiceModules     => {
                    demo => 'Demo;Demo;Demo',
                    sql  => 'DBI;DBI;DBI',
                },
                userDB                     => 'Same',
                passwordDB                 => 'Choice',
                captcha_mail_enabled       => 0,
                portalDisplayResetPassword => 1,
                dbiAuthChain               => "dbi:SQLite:dbname=$userdb",
                dbiAuthUser                => '',
                dbiAuthPassword            => '',
                dbiAuthTable               => 'users',
                dbiAuthLoginCol            => 'user',
                dbiAuthPasswordCol         => 'password',
                dbiAuthPasswordHash        => '',
                dbiDynamicHashEnabled      => 0,
                dbiMailCol                 => 'mail',
            }
        }
    );

    ok(
        $res = $client->_post(
            '/', IO::String->new('user=yadd&password=yadd&test=sql'),
            length => 32
        ),
        'Auth query'
    );
    expectOK($res);
    my $id = expectCookie($res);

    $client->logout($id);

    foreach my $sameBrowser ( 0 .. 1 ) {

        # Test form
        # ------------------------
        ok( $res = $client->_get( '/resetpwd', accept => 'text/html' ),
            'Reset form', );
        my ( $host, $url, $query ) = expectForm( $res, '#', undef, 'mail' );



( run in 2.420 seconds using v1.01-cache-2.11-cpan-2398b32b56e )