use Test::More; use IO::String; use strict; require 't/test-lib.pm'; my $res; my $maintests = 14; SKIP: { eval 'use GD::SecurityImage;use Image::Magick;'; if ($@) { skip 'Image::Magick not found', $maintests; } my $client = LLNG::Manager::Test->new( { ini => { logLevel => 'error', useSafeJail => 1, authentication => 'Choice', userDB => 'Same', passwordDB => 'Choice', captcha_login_enabled => 1, authChoiceParam => 'test', authChoiceModules => { '1_demo' => 'Demo;Demo;Null', '2_ssl' => 'SSL;Demo;Null', }, } } ); # Try to authenticate with an unknown user # ------------------- ok( $res = $client->_get( '/', accept => 'text/html' ), 'Get menu' ); my ( $host, $url, $query ) = expectForm( $res, '#', undef, 'user', 'password', 'token' ); $query =~ s/.*\btoken=([^&]+).*/token=$1/; my $token; ok( $token = $1, ' Token value is defined' ); ok( $res->[2]->[0] =~ m#_post( '/', IO::String->new($query), length => length($query), accept => 'text/html', ), 'Auth query with an unknown user' ); ( $host, $url, $query ) = expectForm( $res, '#', undef, 'user', 'password', 'token' ); ok( $res->[2]->[0] =~ /<\/span><\/div>/, 'dalek rejected with PE_BADCREDENTIALS' ) or print STDERR Dumper( $res->[2]->[0] ); # Try to authenticate # ------------------- $query =~ s/.*\btoken=([^&]+).*/token=$1/; ok( $token = $1, ' Token value is defined' ); ok( $res->[2]->[0] =~ m#_post( '/', IO::String->new($query), length => length($query), accept => 'text/html', ), 'Auth query' ); my $id = expectCookie($res); $client->logout($id); } count($maintests); clean_sessions(); done_testing( count() );