3 package Test::WWW::Mechanize::CGI;
7 use base 'Test::WWW::Mechanize';
10 use HTTP::Request::AsCGI;
27 $self->{env} = { @_ };
30 return %{ $self->{env} || {} };
34 my ( $self, $request ) = @_;
36 if ( $self->cookie_jar ) {
37 $self->cookie_jar->add_cookie_header($request);
41 my $c = HTTP::Request::AsCGI->new( $request, %e )->setup;
43 eval { $self->cgi->() };
48 $response = HTTP::Response->new(500);
49 $response->date( time() );
50 $response->header( 'X-Error' => $@ );
51 $response->content( $response->error_as_HTML );
52 $response->content_type('text/html');
55 $response = $c->restore->response;
58 $response->header( 'Content-Base', $request->uri );
59 $response->request($request);
61 if ( $self->cookie_jar ) {
62 $self->cookie_jar->extract_cookies($response);
74 use Test::More tests => 3;
76 my $mech = Test::WWW::Mechanize::CGI->new;
82 $q->start_html('Hello World'),
83 $q->h1('Hello World'),
87 $mech->get_ok('http://localhost/');
88 $mech->title_is('Hello World');
89 $mech->content_contains('Hello World');