SelectList test is finalized. Extect auto_check to handle array and scalar accesses to the Form data post processors
43 lines
1 KiB
Perl
43 lines
1 KiB
Perl
package WebGUI::Form_Checking;
|
|
|
|
use Test::MockObject;
|
|
use Test::More;
|
|
use Test::Deep;
|
|
|
|
sub auto_check {
|
|
my ($session, $formType, %testBlock) = @_;
|
|
my $origSessionRequest = $session->{_request};
|
|
|
|
my $request = Test::MockObject->new;
|
|
$request->mock('body',
|
|
sub {
|
|
my ($self, $value) = @_;
|
|
return unless exists $testBlock{$value};
|
|
if (ref $testBlock{$value}->[0] eq "ARRAY") {
|
|
return @{ $testBlock{$value}->[0] };
|
|
}
|
|
else {
|
|
return $testBlock{$value}->[0];
|
|
}
|
|
}
|
|
);
|
|
|
|
$session->{_request} = $request;
|
|
|
|
foreach my $key (keys %testBlock) {
|
|
my ($testValue, $expected, $comment, $dataType) = @{ $testBlock{$key} };
|
|
$dataType ||= 'SCALAR';
|
|
if ($dataType eq 'SCALAR') {
|
|
my $value = $session->form->get($key, $formType);
|
|
is($value, ($expected eq 'EQUAL' ? $testValue : $expected), $comment);
|
|
}
|
|
elsif ($dataType eq 'ARRAY') {
|
|
my @value = $session->form->get($key, $formType);
|
|
cmp_bag(\@value, ($expected eq 'EQUAL' ? $testValue : $expected), $comment);
|
|
}
|
|
}
|
|
|
|
$session->{_request} = $origSessionRequest;
|
|
}
|
|
|
|
1;
|