GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  TEST::WWW::MECHANIZE::CGIAPP (3)

.ds Aq ’

NAME

Test::WWW::Mechanize::CGIApp - Test::WWW::Mechanize for CGI::Application

CONTENTS

SYNOPSIS



  # Were in a t/*.t test script...
  use Test::WWW::Mechanize::CGIApp;

  my $mech = Test::WWW::Mechanize::CGIApp->new;

  # test a class that uses CGI::Application calling semantics.
  # (in this case well new up an instance of the app and call
  # its ->run() method)
  #
  $mech->app("My::WebApp");
  $mech->get_ok("?rm=my_run_mode&arg1=1&arg2=42");

  # test a class that uses CGI::Application::Dispatch
  # to locate the run_mode
  # (in this case well just call the ->dispatch() class method).
  #
  my $dispatched_mech = Test::WWW::Mechanize::CGIApp->new;
  $dispatched_mech->app("My::DispatchApp");
  $mech->get_ok("/WebApp/my_run_mode?arg1=1&arg2=42");

  # create an anonymous sub that this class will use to
  # handle the request.
  #
  # this could be useful if you need to do something novel
  # after creating an instance of your class (e.g. the
  # fiddle_with_stuff() below) or maybe you have a unique
  # way to get the app to run.
  #
  my $custom_mech = Test::WWW::Mechanize::CGIApp->new;
  $custom_mech->app(
     sub {
       require "My::WebApp";
       my $app = My::WebApp->new();
       $app->fiddle_with_stuff();
       $app->run();
     });
  $mech->get_ok("?rm=my_run_mode&arg1=1&arg2=42");

  # at this point you can play with all kinds of cool
  # Test::WWW::Mechanize testing methods.
  is($mech->ct, "text/html");
  $mech->title_is("Root", "On the root page");
  $mech->content_contains("This is the root page", "Correct content");
  $mech->follow_link_ok({text => Hello}, "Click on Hello");
  # ... and all other Test::WWW::Mechanize methods



DESCRIPTION

This package makes testing CGIApp based modules fast and easy. It takes advantage of Test::WWW::Mechanize to provide functions for common web testing scenarios. For example:



  $mech->get_ok( $page );
  $mech->title_is( "Invoice Status",
                   "Make sure were on the invoice page" );
  $mech->content_contains( "Andy Lester", "My name somewhere" );
  $mech->content_like( qr/(cpan|perl)\.org/,
                      "Link to perl.org or CPAN" );



For applications that inherit from CGI::Application it will handle requests by creating a new instance of the class and calling its run method. For applications that use CGI::Application::Dispatch it will call the dispatch class method. If neither of these options are the right thing, you can set a reference to a sub that will be used to handle the request.

This module supports cookies automatically.

Check out Test::WWW::Mechanize for more information about all of the cool things you can test!

CONSTRUCTOR

    new

Behaves like, and calls, Test::WWW::Mechanize’s new method. It optionally uses an app parameter (see below), any other parameters get passed to Test::WWW::Mechanize’s constructor. Note that you can either pass the name of the CGI::Application into the constructor using the app parameter or set it later using the app method.



  use Test::WWW::Mechanize::CGIApp;
  my $mech = Test::WWW::Mechanize::CGIApp->new;

  # or

  my $mech = Test::WWW::Mechanize::CGIApp->new(app => TestApp);



METHODS

CW$mech->app($app_handler)

This method provides a mechanism for informing Test::WWW::Mechanize::CGIApp how it should go about executing your run_mode. If you set it to the name of a class, then it will load the class and either create an instance and ->run() it (if it’s CGI::Application based), invoke the ->dispatch() method if it’s CGI::Application::Dispatch based, or call the supplied anonymous subroutine and let it do all of the heavy lifting.

SEE ALSO

Related modules which may be of interest: Test::WWW::Mechanize, WWW::Mechanize.

Various implementation tricks came from Test::WWW::Mechanize::Catalyst.

AUTHOR

George Hartzell, <hartzell@alerce.com>

based on Test::WWW::Mechanize::Catalyst by Leon Brocard, <acme@astray.com>.

COPYRIGHT

Copyright (C) 2007, George Hartzell

This module is free software; you can redistribute it or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 TEST::WWW::MECHANIZE::CGIAPP (3) 2007-07-12

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.