use Test::More; use strict; use IO::String; use LWP::UserAgent; my $res; require 't/test-lib.pm'; my $client = LLNG::Manager::Test->new( { ini => { logLevel => 'error', useSafeJail => 1, authentication => 'Proxy', userDB => 'Same', proxyAuthService => 'http://auth.example.com', proxyAuthServiceChoiceParam => 'lmAuth', proxyAuthServiceChoiceValue => '2_Password', proxyAuthServiceImpersonation => 1 } } ); ok( $res = $client->_get( '/', accept => 'text/html' ), 'Get menu' ); ok( $res->[2]->[0] =~ m#[2]->[0], 'SpoofId' ); ok( $res = $client->_post( '/', IO::String->new('user=dwho&password=dwho&spoofId=rtyler'), length => 38 ), 'Auth query' ); expectOK($res); my $id = expectCookie($res); $client->logout($id); clean_sessions(); count(11); done_testing( count() ); # Redefine LWP methods for tests no warnings 'redefine'; sub LWP::UserAgent::request { my ( $self, $req ) = @_; unless ( $req->uri->as_string =~ m%http://auth.example.com(?:/session/my/global|\?logout=1)% ) { ok( $req->content() =~ m%user=dwho%, 'User found' ) or print STDERR Dumper( $req->content() ); ok( $req->content() =~ m%password=dwho%, 'Password found' ) or print STDERR Dumper( $req->content() ); ok( $req->content() =~ m%lmAuth=2_Password%, 'ChoiceParam found' ) or print STDERR Dumper( $req->content() ); ok( $req->content() =~ m%spoofId=rtyler%, 'SpoofId found' ) or print STDERR Dumper( $req->content() ); } my $httpResp; my $s = '{"error":"0","id":"6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101","result":1}'; $httpResp = HTTP::Response->new( 200, 'OK' ); $httpResp->header( 'Content-Type', 'application/json' ); $httpResp->header( 'Content-Length', length($s) ); $httpResp->content($s); return $httpResp; }