Lemonldap-NG-Portal
view release on metacpan or search on metacpan
t/44-CertificateResetByMail-Demo.t view on Meta::CPAN
use warnings;
use Test::More;
use strict;
use IO::String;
use File::Copy;
use Lemonldap::NG::Portal::Main::Constants qw(
PE_RESETCERTIFICATE_INVALID PE_RESETCERTIFICATE_FORMEMPTY
PE_RESETCERTIFICATE_FIRSTACCESS
);
BEGIN {
eval {
require 't/test-lib.pm';
require 't/smtp.pm';
};
}
my ( $res, $user );
my $maintests = 12;
SKIP: {
eval
'require Email::Sender::Simple; use GD::SecurityImage; use Image::Magick; use Net::SSLeay;
use DateTime::Format::RFC3339;';
if ($@) {
skip 'Missing dependencies ' . $@, $maintests;
}
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,
portalDisplayRegister => 1,
authentication => 'SSL',
userDB => 'Demo',
passwordDB => 'Demo',
registerDB => 'Custom',
customRegister => '::Register::Demo',
customResetCertByMail => '::CertificateResetByMail::Demo',
captcha_mail_enabled => 0,
portalDisplayCertificateResetByMail => 1,
certificateResetByMailCeaAttribute => 'description',
certificateResetByMailCertificateAttribute =>
'userCertificate;binary',
certificateResetByMailURL => 'http://other.example.com/certif',
certificateValidityDelay => 30
}
}
);
# Test form
# ------------------------
ok( $res = $client->_get( '/certificateReset', accept => 'text/html' ),
'Reset form', );
my ( $host, $url, $query ) = expectForm( $res, '#', undef, 'mail' );
$query = 'mail=dwho%40badwolf.org';
# Post email
ok(
$res = $client->_post(
'/certificateReset', IO::String->new($query),
length => length($query),
accept => 'text/html'
),
'Post mail'
);
ok( mail() =~ m#a href="http://other\.example\.com/certif\?(.*?)"#,
'Found link in mail' )
or explain( mail(), 'Found link in mail 1' );
my $querymail = $query = $1;
ok(
$res = $client->_get(
'/certificateReset',
query => $query,
accept => 'text/html'
),
'Post mail token received by mail'
);
( run in 1.356 second using v1.01-cache-2.11-cpan-b16cb0d3907 )