Catalyst::Test man page on Pidora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Pidora logo
[printable version]

Catalyst::Test(3)     User Contributed Perl Documentation    Catalyst::Test(3)

NAME
       Catalyst::Test - Test Catalyst Applications

SYNOPSIS
	   # Helper
	   script/test.pl

	   # Tests
	   use Catalyst::Test 'TestApp';
	   my $content	= get('index.html');	       # Content as string
	   my $response = request('index.html');       # HTTP::Response object
	   my($res, $c) = ctx_request('index.html');	  # HTTP::Response & context object

	   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/

	   use Catalyst::Test 'TestApp';
	   use Test::More tests => 1;

	   ok( get('/foo') =~ /bar/ );

	   # mock virtual hosts
	   use Catalyst::Test 'MyApp', { default_host => 'myapp.com' };
	   like( get('/whichhost'), qr/served by myapp.com/ );
	   like( get( '/whichhost', { host => 'yourapp.com' } ), qr/served by yourapp.com/ );
	   {
	       local $Catalyst::Test::default_host = 'otherapp.com';
	       like( get('/whichhost'), qr/served by otherapp.com/ );
	   }

DESCRIPTION
       This module allows you to make requests to a Catalyst application
       either without a server, by simulating the environment of an HTTP
       request using HTTP::Request::AsCGI or remotely if you define the
       CATALYST_SERVER environment variable. This module also adds a few
       Catalyst-specific testing methods as displayed in the method section.

       The get and request functions take either a URI or an HTTP::Request
       object.

INLINE TESTS WILL NO LONGER WORK
       While it used to be possible to inline a whole test app into a ".t"
       file for a distribution, this will no longer work.

       The convention is to place your Catalyst test apps into "t/lib" in your
       distribution. E.g.: "t/lib/TestApp.pm",
       "t/lib/TestApp/Controller/Root.pm", etc..  Multiple test apps can be
       used in this way.

       Then write your ".t" files like so:

	   use strict;
	   use warnings;
	   use FindBin '$Bin';
	   use lib "$Bin/lib";
	   use Test::More tests => 6;
	   use Catalyst::Test 'TestApp';

METHODS
   $content = get( ... )
       Returns the content.

	   my $content = get('foo/bar?test=1');

       Note that this method doesn't follow redirects, so to test for a
       correctly redirecting page you'll need to use a combination of this
       method and the request method below:

	   my $res = request('/'); # redirects to /y
	   warn $res->header('location');
	   use URI;
	   my $uri = URI->new($res->header('location'));
	   is ( $uri->path , '/y');
	   my $content = get($uri->path);

       Note also that the content is returned as raw bytes, without any
       attempt to decode it into characters.

   $res = request( ... );
       Returns an HTTP::Response object. Accepts an optional hashref for
       request header configuration; currently only supports setting 'host'
       value.

	   my $res = request('foo/bar?test=1');
	   my $virtual_res = request('foo/bar?test=1', {host => 'virtualhost.com'});

   ($res, $c) = ctx_request( ... );
       Works exactly like request, except it also returns the Catalyst context
       object, $c. Note that this only works for local requests.

   action_ok($url [, $test_name ])
       Fetches the given URL and checks that the request was successful. An
       optional second argument can be given to specify the name of the test.

   action_redirect($url [, $test_name ])
       Fetches the given URL and checks that the request was a redirect. An
       optional second argument can be given to specify the name of the test.

   action_notfound($url [, $test_name ])
       Fetches the given URL and checks that the request was not found. An
       optional second argument can be given to specify the name of the test.

   content_like( $url, $regexp [, $test_name ] )
       Fetches the given URL and returns whether the content matches the
       regexp. An optional third argument can be given to specify the name of
       the test.

   contenttype_is($url, $type [, $test_name ])
       Verify the given URL has a content type of $type and optionally specify
       a test name.

SEE ALSO
       Catalyst, Test::WWW::Mechanize::Catalyst,
       Test::WWW::Selenium::Catalyst, Test::More, HTTP::Request::Common

AUTHORS
       Catalyst Contributors, see Catalyst.pm

COPYRIGHT
       This library is free software. You can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.14.2			  2012-03-08		     Catalyst::Test(3)
[top]

List of man pages available for Pidora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net