r12983@zaphod: kd | 2008-04-28 18:10:27 +1000
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Test.pm
index 9f2f7be..9e0db01 100644 (file)
@@ -21,6 +21,12 @@ Catalyst::Test - Test Catalyst Applications
     request('index.html');
     get('index.html');
 
+    use HTTP::Request::Common;
+    my $response = request POST '/foo', [
+        bar => 'baz',
+        something => 'else'
+    ];
+
     # Run tests against a remote server
     CATALYST_SERVER='http://localhost:3000/' prove -r -l lib/ t/
 
@@ -45,7 +51,13 @@ Catalyst::Test - Test Catalyst Applications
 
 =head1 DESCRIPTION
 
-Test Catalyst Applications.
+This module allows you to make requests to a Catalyst application either without
+a server, by simulating the environment of an HTTP request using
+L<HTTP::Request::AsCGI> or remotely if you define the CATALYST_SERVER
+environment variable.
+
+The </get> and </request> functions take either a URI or an L<HTTP::Request>
+object.
 
 =head2 METHODS
 
@@ -104,6 +116,8 @@ sub import {
 
 =head2 local_request
 
+Simulate a request using L<HTTP::Request::AsCGI>.
+
 =cut
 
 sub local_request {
@@ -135,7 +149,8 @@ sub remote_request {
     my $server  = URI->new( $ENV{CATALYST_SERVER} );
 
     if ( $server->path =~ m|^(.+)?/$| ) {
-        $server->path("$1");    # need to be quoted
+        my $path = $1;
+        $server->path("$path") if $path;    # need to be quoted
     }
 
     # the request path needs to be sanitised if $server is using a
@@ -182,11 +197,12 @@ sub remote_request {
 
 =head1 SEE ALSO
 
-L<Catalyst>.
+L<Catalyst>, L<Test::WWW::Mechanize::Catalyst>,
+L<Test::WWW::Selenium::Catalyst>, L<Test::More>, L<HTTP::Request::Common>
 
-=head1 AUTHOR
+=head1 AUTHORS
 
-Sebastian Riedel, C<sri@cpan.org>
+Catalyst Contributors, see Catalyst.pm
 
 =head1 COPYRIGHT