use Test::More; use strict; use IO::String; BEGIN { require 't/test-lib.pm'; eval "use GSSAPI"; } my $res; my $maintests = 21; my $userdb = tempdb(); SKIP: { eval { require DBI; require DBD::SQLite; require GSSAPI; }; if ($@) { skip 'Missing dependencies', $maintests; } my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb"); $dbh->do('CREATE TABLE users (user text,password text,name text)'); $dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')"); my $client = LLNG::Manager::Test->new( { ini => { logLevel => 'error', useSafeJail => 1, portalMainLogo => 'common/logos/logo_llng_old.png', authentication => 'Choice', userDB => 'Same', authChoiceParam => 'test', authChoiceModules => { '1_demo' => 'Demo;Demo;Null;;0', '2_sql' => 'DBI;DBI;DBI;;1', '3_demo' => 'Demo;Demo;Null;https://test.example.com;$env->{ipAddr} =~ /127.0.0.1/', '4_demo' => 'Demo;Demo;Null;https://test.example.com;$env->{ipAddr} =~ /1.2.3.4/', '5_ssl' => 'SSL;Demo;Demo', '6_FakeCustom' => 'Custom;Demo;Demo', '7_Kerberos' => 'Kerberos;Null;Null', }, dbiAuthChain => "dbi:SQLite:dbname=$userdb", dbiAuthUser => '', dbiAuthPassword => '', dbiAuthTable => 'users', dbiAuthLoginCol => 'user', dbiAuthPasswordCol => 'password', dbiAuthPasswordHash => '', customAuth => '::Auth::Apache', customAddParams => {}, sslByAjax => 1, sslHost => 'https://authssl.example.com:19876', krbKeytab => '/etc/keytab', krbByJs => 1, krbAuthnLevel => 4, } } ); ok( $res = $client->_get( '/', accept => 'text/html' ), 'Get Menu' ); ok( $res->[2]->[0] !~ /1_demo/, '1_demo not displayed' ); ok( $res->[2]->[0] =~ /2_sql/, '2_sql displayed' ); ok( $res->[2]->[0] =~ /3_demo/, '3_demo displayed' ); ok( $res->[2]->[0] =~ /5_ssl/, '5_ssl displayed' ); ok( $res->[2]->[0] =~ /6_FakeCustom/, '6_FakeCustom displayed' ); ok( $res->[2]->[0] =~ /7_Kerberos/, '7_Kerberos displayed' ); ok( $res->[2]->[0] =~ qr%[2]->[0], '[2]->[0], '[2]->[0], '[2]->[0], '
[2]->[0] =~ m%%s, ' SSL AJAX URL found' ) or explain( $res->[2]->[0], '