CatalystX-Test-Recorder

 view release on metacpan or  search on metacpan

lib/CatalystX/Test/Recorder/Controller.pm  view on Meta::CPAN

                return $tidy;
              }
        }
    );
    $tt->define_vmethod(
        'hash', dump => sub {
            my $dump = Dumper $_[0];
            $dump =~ s/^.*?{(.*)}.*?$/$1/s;
            $dump =~ s/\n//g;
            return $dump;
        });
    $tt->process( $self->template || \$template, { requests => $requests, responses => $responses, app => ref $c }, \$test )
      or die $@;
    $c->res->body($test);

}

sub end : Private {
    my ( $self, $c ) = @_;
    $c->res->content_type('text/plain');
}

1;



=pod

=head1 NAME

CatalystX::Test::Recorder::Controller

=head1 VERSION

version 1.0.0

=head1 AUTHOR

Moritz Onken <onken@netcubed.de>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by Moritz Onken.

This is free software, licensed under:

  The (three-clause) BSD License

=cut


__DATA__
[% FILTER perltidy -%]
# [% requests.size %] requests recorded.

use Test::More;
use strict;
use warnings;

use URI;
use HTTP::Request::Common qw(GET HEAD PUT DELETE POST);

use Test::WWW::Mechanize::Catalyst '[% app %]';

my $mech = Test::WWW::Mechanize::Catalyst->new();
$mech->requests_redirectable([]); # disallow redirects

my ($response, $request, $url);

[% FOREACH request IN requests %]
[% IF request.query_params.size %]$url = URI->new('/[% request.path %]');
$url->query_form( { [% request.query_params.dump %] } );
[% END -%]
$request = [% IF request.body_params.size; 'POST'; ELSE; request.method; END -%] 
[% IF request.query_params.size; '$url'; ELSE; "'/" _ request.path _ "'"; END -%]
[% IF request.body_params.size; ', [' _ request.body_params.dump _ ']'; END %];
[% IF request.body_params.size && request.method != 'POST'; '$request->method(\'' _ request.method _ '\');'; END -%]
$response = $mech->request($request);
is($response->code, [% responses.${loop.index}.code %]);
[% END %]

done_testing;
[%- END -%]



( run in 1.197 second using v1.01-cache-2.11-cpan-39bf76dae61 )