lots of test fixes

This commit is contained in:
Graham Knop 2010-06-13 06:19:41 -05:00
parent 0d311117e2
commit 30657d61f7
21 changed files with 75 additions and 87 deletions

View file

@ -184,17 +184,10 @@ sub testCount {
plan tests => testCount() ;
my $output;
foreach my $testSet (@testArray) {
$output = FAKE_ENV->new( $testSet->{agent},
$testSet->{address} || '69.42.78.32')
->requestNotViewed();
$session->request->env->{HTTP_USER_AGENT} = $testSet->{agent};
$session->request->env->{REMOTE_ADDR} = $testSet->{address} || '69.42.78.32';
my $output = $session->env->requestNotViewed;
is($output, $testSet->{output}, $testSet->{comment});
}
{ # this is a local fake of the session, used for testing only
package FAKE_ENV;
use base 'WebGUI::Session::Env';
sub new { shift; return bless { _env => { HTTP_USER_AGENT => $_[0], REMOTE_ADDR => $_[1] } }, __PACKAGE__; }
}

View file

@ -15,26 +15,14 @@ use lib "$FindBin::Bin/../lib";
use WebGUI::Test;
use WebGUI::Session;
use Test::More tests => 3; # increment this value for each test you create
use Test::MockObject::Extends;
use Test::More tests => 2; # increment this value for each test you create
my $session = WebGUI::Test->session;
cmp_ok($session->env->get("PATH"), 'ne', "", "get() one valid entry");
#Replace the ENV hash so that we can test getIp.
cmp_ok($session->env->get("REMOTE_ADDR"), 'ne', "", "get() one valid entry");
my $env = $session->env;
$env = Test::MockObject::Extends->new($env);
$session->request->env->{REMOTE_ADDR} = '192.168.0.2';
is ($env->getIp, '192.168.0.2', 'getIp');
my %mockEnv = (
REMOTE_ADDR => '192.168.0.2',
);
$env->mock('get', sub { return $mockEnv{$_[1]}});
is ($env->getIp(), $mockEnv{'REMOTE_ADDR'}, 'getIp');
$mockEnv{HTTP_X_FORWARDED_FOR} = '10.0.2.5',
is ($env->getIp(), $mockEnv{'HTTP_X_FORWARDED_FOR'}, 'getIp with HTTP forwarding');

View file

@ -25,10 +25,10 @@ plan tests => $numTests;
my $session = WebGUI::Test->session;
##Setup for security method test
my %newEnv = ( REMOTE_ADDR => '192.168.0.6' );
$session->env->{_env} = \%newEnv;
my $env = $session->request->env;
$env->{REMOTE_ADDR} = '192.168.0.6';
my ($eh) = $session->quick('errorHandler');
my $eh = $session->errorHandler;
####################################################
#
@ -165,13 +165,13 @@ delete $eh->{_canShowDebug};
ok($eh->canShowDebug, 'canShowDebug: returns 1 if debugIp is empty string');
$session->setting->set('debugIp', '10.0.0.5/32, 192.168.0.4/30');
$newEnv{REMOTE_ADDR} = '172.17.0.5';
$env->{REMOTE_ADDR} ='172.17.0.5';
delete $eh->{_canShowDebug};
ok(! $eh->canShowDebug, 'canShowDebug: returns 0 if debugIp is set and IP address is out of filter');
$newEnv{REMOTE_ADDR} = '10.0.0.5';
$env->{REMOTE_ADDR} = '10.0.0.5';
delete $eh->{_canShowDebug};
ok($eh->canShowDebug, 'canShowDebug: returns 1 if debugIp is set and IP address matches filter');
$newEnv{REMOTE_ADDR} = '192.168.0.5';
$env->{REMOTE_ADDR} = '192.168.0.5';
delete $eh->{_canShowDebug};
ok($eh->canShowDebug, 'canShowDebug: returns 1 if debugIp is set and IP address matches filter');
@ -189,11 +189,11 @@ $session->setting->set('debugIp', '');
is($eh->canShowPerformanceIndicators, 1, 'canShowPerformanceIndicators: returns 1 if debugIp is blank');
$session->setting->set('debugIp', '10.0.0.5/32, 192.168.0.4/30');
$newEnv{REMOTE_ADDR} = '172.17.0.5';
$env->{REMOTE_ADDR} = '172.17.0.5';
is($eh->canShowPerformanceIndicators, 0, 'canShowPerformanceIndicators: returns 0 if debugIp is set and IP address does not match');
$newEnv{REMOTE_ADDR} = '10.0.0.5';
$env->{REMOTE_ADDR} = '10.0.0.5';
is($eh->canShowPerformanceIndicators, 1, 'canShowPerformanceIndicators: returns 0 if debugIp is set and IP address matches exactly');
$newEnv{REMOTE_ADDR} = '192.168.0.5';
$env->{REMOTE_ADDR} = '192.168.0.5';
is($eh->canShowPerformanceIndicators, 1, 'canShowPerformanceIndicators: returns 0 if debugIp is set and IP address matches subnet');
####################################################

View file

@ -22,16 +22,16 @@ plan tests => 4;
my $session = WebGUI::Test->session;
my $token = $session->scratch->get('webguiCsrfToken');
$session->request->method('POST');
$session->request->env->{'REQUEST_METHOD'} = 'POST';
$session->request->setup_param({ webguiCsrfToken => $token, });
ok($session->form->validToken, 'validToken: right method and form value');
$session->request->method('GET');
$session->request->env->{'REQUEST_METHOD'} = 'GET';
ok(! $session->form->validToken, '... wrong method, right form value');
$session->request->method('POST');
$session->request->env->{'REQUEST_METHOD'} = 'POST';
$session->request->setup_param({ webguiCsrfToken => 'bad token', });
ok(! $session->form->validToken, 'validToken: right method and wrong form value');
$session->request->method('GET');
$session->request->env->{'REQUEST_METHOD'} = 'GET';
ok(! $session->form->validToken, 'validToken: wrong method and form value');

View file

@ -54,7 +54,7 @@ for (my $count = 1; $count <= $maxCount; $count++){
}
##Creating a new session with the previous session's Id should clone the scratch data
my $newSession = WebGUI::Session->open(WebGUI::Test->file, undef, undef, $session->getId);
my $newSession = WebGUI::Session->open(WebGUI::Test->file, undef, $session->getId);
is($newSession->getId, $session->getId, "Successful session duplication");

View file

@ -37,9 +37,8 @@ my $id = $session->var->getId;
my ($count) = $session->db->quickArray("select count(*) from userSession where sessionId=?",[$id]);
is($count, 1, "created an user session entry in the database");
my %newEnvHash = ( REMOTE_ADDR => '192.168.0.34');
my $origEnv = $session->env->{_env};
$session->env->{_env} = \%newEnvHash;
my $env = $session->request->env;
$env->{REMOTE_ADDR} = '192.168.0.34';
my $var = WebGUI::Session::Var->new($session);
my $varTime = time();
@ -66,7 +65,7 @@ isa_ok($var->session, 'WebGUI::Session', 'session method returns a Session objec
is($var->session->getId, $session->getId, 'session method returns our Session object');
sleep(2);
$newEnvHash{REMOTE_ADDR} = '10.0.5.5';
$env->{REMOTE_ADDR} = '10.0.5.5';
#Grab a more recent version of our user session object
$varTime = time();
@ -157,7 +156,7 @@ $varExpiring->{_var}{expires} = $varExpiring->get('lastPageView')-1;
sleep 1;
$newEnvHash{REMOTE_ADDR} = '127.0.0.1';
$env->{REMOTE_ADDR} = '127.0.0.1';
##Test a valid fetch
my $varTest = WebGUI::Session::Var->new($session, $var4->getId, 1);
@ -210,8 +209,6 @@ is($varTest->get('userId'), 1, 'calling start with null userId returns default u
END {
$session->env->{_env} = $origEnv;
foreach my $varObj ($var, $var2, $var3, $var4, $varExpiring, $varTest) {
if (defined $varObj and ref $varObj eq 'WebGUI::Session::Var') {
$varObj->end();