Update of /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest
In directory usw-pr-cvs1:/tmp/cvs-serv32115/lib/HTTP/WebTest
Modified Files:
Test.pm Plugins.pod Plugin.pm API.pm
Log Message:
Rename HTTP::WebTest::validate_test to HTTP::WebTest::validate_params
and make it validate hash with test parameters instead of test object
Index: Test.pm
===================================================================
RCS file: /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest/Test.pm,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Test.pm 2002/01/24 12:26:24 1.1.1.1
--- Test.pm 2002/01/28 06:32:02 1.2
***************
*** 15,18 ****
--- 15,19 ----
my $value = $test->param($param);
+ my $value = $test->params->{$param};
my $results = $test->results;
***************
*** 66,77 ****
my $self = bless {}, $class;
! $self->_params({ %params });
return $self;
}
! # accessor method for test params data
! *_params = make_access_method('PARAMS', sub { {} });
=head2 param ($param)
--- 67,85 ----
my $self = bless {}, $class;
! $self->params({ %params });
return $self;
}
! =head2 params
!
! =head3 Returns
+ A reference on hash with all test parameters.
+
+ =cut
+
+ *params = make_access_method('PARAMS', sub { {} });
+
=head2 param ($param)
***************
*** 86,90 ****
my $param = shift;
! return $self->_params->{$param};
}
--- 94,98 ----
my $param = shift;
! return $self->params->{$param};
}
Index: Plugins.pod
===================================================================
RCS file: /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest/Plugins.pod,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Plugins.pod 2002/01/24 12:26:24 1.1.1.1
--- Plugins.pod 2002/01/28 06:32:02 1.2
***************
*** 49,53 ****
This method is used to validate values of test parameters. If
additional checks are required they can be defined in method
! C<validate_test>. See below.
=head3 Example
--- 49,53 ----
This method is used to validate values of test parameters. If
additional checks are required they can be defined in method
! C<validate_params>. See below.
=head3 Example
***************
*** 71,80 ****
Each plugin package can provide following methods:
! =head2 validate_test ($test)
This method can be defined in plugin packages to add additional checks
! for test defined by C<$test> which are not covered by test parameter
! types specification set by C<param_types>. If you define this method
! it be sure to call C<$self->SUPER::validate_test($test)>.
=head3 Returns
--- 71,90 ----
Each plugin package can provide following methods:
! =head2 validate_params ($params)
This method can be defined in plugin packages to add additional checks
! for test parameters which are not covered by test parameter types
! specification defined by C<param_types>. If you define this method in
! plugin package be sure to call C<$self->SUPER::validate_params($test)>.
!
! =head3 Parameters
!
! =over 4
!
! =item * $params
!
! A reference on hash which contains test parameters.
!
! =back
=head3 Returns
***************
*** 87,101 ****
This example adds check for test parameter C<my_test_param>. It must
! be equal to 'BlaBla' if this test parameter is defined.
! sub validate_test {
my $self = shift;
! my $test = shift;
# run default checks
! my %checks = $self->SUPER::validate_test($test);
if($checks{my_test_param}) {
! my $ok = $test->param('my_test_param') eq 'BlaBla';
$checks{my_test_param} =
$self->test_result($ok, 'Parameter my_test_param is not ' .
--- 97,111 ----
This example adds check for test parameter C<my_test_param>. It must
! be equal to 'BlaBla' if this test parameter is specified.
! sub validate_params {
my $self = shift;
! my $params = shift;
# run default checks
! my %checks = $self->SUPER::validate_params($params);
if($checks{my_test_param}) {
! my $ok = $params->{my_test_param} eq 'BlaBla';
$checks{my_test_param} =
$self->test_result($ok, 'Parameter my_test_param is not ' .
Index: Plugin.pm
===================================================================
RCS file: /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest/Plugin.pm,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Plugin.pm 2002/01/24 12:26:27 1.1.1.1
--- Plugin.pm 2002/01/28 06:32:02 1.2
***************
*** 197,201 ****
}
! =head2 validate_test ($test)
Checks test parameters.
--- 197,201 ----
}
! =head2 validate_params ($params)
Checks test parameters.
***************
*** 203,213 ****
=head3 Returns
! An array of L<HTTP::WebTest::TestResult|HTTP::WebTest::TestResult> objects.
=cut
! sub validate_test {
my $self = shift;
! my $test = shift;
my %param_types = %{$self->param_types};
--- 203,214 ----
=head3 Returns
! A hash. The keys are the test parameters and the values are
! L<HTTP::WebTest::TestResult|HTTP::WebTest::TestResult> objects.
=cut
! sub validate_params {
my $self = shift;
! my $params = shift;
my %param_types = %{$self->param_types};
***************
*** 216,220 ****
while(my($param, $type) = each %param_types) {
my $method = 'check_' . $type;
! my $value = $test->param($param);
next unless defined $value;
my $ok = $self->$method($value);
--- 217,221 ----
while(my($param, $type) = each %param_types) {
my $method = 'check_' . $type;
! my $value = $params->{$param};
next unless defined $value;
my $ok = $self->$method($value);
Index: API.pm
===================================================================
RCS file: /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest/API.pm,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** API.pm 2002/01/24 12:26:26 1.1.1.1
--- API.pm 2002/01/28 06:32:02 1.2
***************
*** 502,507 ****
$self->_global_test_params($params);
! # check test params
! my %checks = $self->validate_test($test);
# be sure that checks are sorted by param name
my @broken = grep { not $_->ok } map $checks{$_}, sort keys %checks;
--- 502,508 ----
$self->_global_test_params($params);
! # validate test params
! my %checks = ($self->validate_params($test->params),
! $self->validate_params($params));
# be sure that checks are sorted by param name
my @broken = grep { not $_->ok } map $checks{$_}, sort keys %checks;
***************
*** 511,514 ****
--- 512,516 ----
$self->last_results([ [ 'Test parameters error', @broken ] ]);
} else {
+
# create request (note that actual url is more likely to be
# set in plugins)
***************
*** 580,598 ****
}
! =head2 validate_test ($test)
! Validates test.
=head3 Returns
! A hash with results of checks.
=cut
! sub validate_test {
my $self = shift;
! my $test = shift;
!
! $test = $self->convert_tests($test);
my %checks = ();
--- 582,600 ----
}
! =head2 validate_params ($params)
! Validates test parameters.
=head3 Returns
! A hash with results of checks. The keys are the test parameters and
! the values are L<HTTP::WebTest::TestResult|HTTP::WebTest::TestResult>
! objects.
=cut
! sub validate_params {
my $self = shift;
! my $params = shift;
my %checks = ();
***************
*** 600,606 ****
# check params with all plugins
for my $plugin (@{$self->plugins}) {
! if($plugin->can('validate_test')) {
%checks = (%checks,
! $plugin->validate_test($test));
}
}
--- 602,608 ----
# check params with all plugins
for my $plugin (@{$self->plugins}) {
! if(my $validate_params = $plugin->can('validate_params')) {
%checks = (%checks,
! $plugin->$validate_params($params));
}
}
|