Update of /cvsroot/http-webtest/HTTP-WebTest-Recorder/lib/HTTP/WebTest
In directory sc8-pr-cvs1:/tmp/cvs-serv32469/lib/HTTP/WebTest
Modified Files:
Recorder.pm
Log Message:
Recorder autocreate a test case now
Index: Recorder.pm
===================================================================
RCS file: /cvsroot/http-webtest/HTTP-WebTest-Recorder/lib/HTTP/WebTest/Recorder.pm,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Recorder.pm 25 Jan 2003 14:54:52 -0000 1.4
--- Recorder.pm 25 Jan 2003 18:22:55 -0000 1.5
***************
*** 70,80 ****
my $response = $self->user_agent->simple_request($request);
if($self->is_recording) {
! my $test = HTTP::WebTest::Test->new;
! $test->request($request);
! $test->response($response);
! push @{$self->tests}, $test;
}
return $response;
}
}
--- 70,114 ----
my $response = $self->user_agent->simple_request($request);
if($self->is_recording) {
! push @{$self->tests}, $self->make_test($request, $response);
}
return $response;
}
+ }
+
+ # creates a test object from request/response pair
+ sub make_test {
+ my $self = shift;
+ my($request, $response) = @_;
+
+ my $test = HTTP::WebTest::Test->new;
+ $test->request($request);
+ $test->response($response);
+
+ my %params;
+
+ {
+ my $short_uri = URI->new($request->uri);
+ $short_uri->query(undef);
+ $params{url} = $short_uri->as_string;
+ }
+
+ my $cgi;
+ if($request->method eq 'POST') {
+ $params{method} = 'POST';
+ $cgi = CGI->new($request->content);
+ } else {
+ $cgi = CGI->new($request->uri->query);
+ }
+ if($cgi->param) {
+ for my $param ($cgi->param) {
+ for my $value ($cgi->param($param)) {
+ push @{$params{params}}, $param, $value;
+ }
+ }
+ }
+
+ $test->params(\%params);
+
+ return $test;
}
|