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 )