=cut
sub uri_for {
- my ( $c, $path , @args) = @_;
+ my ( $c, $path, @args ) = @_;
my $base = $c->request->base->clone;
my $basepath = $base->path;
$basepath =~ s/\/$//;
$basepath .= '/';
my $match = $c->request->match;
+
# massage match, empty if absolute path
$match =~ s/^\///;
$match .= '/' if $match;
$match = '' if $path =~ /^\//;
$path =~ s/^\///;
+
# join args with '/', or a blank string
- my $args=(scalar @args ? '/'.join('/',@args) : '');
- return URI->new_abs( URI->new_abs( "$path$args", "$basepath$match" ), $base )
- ->canonical;
+ my $args = ( scalar @args ? '/' . join( '/', @args ) : '' );
+ return URI->new_abs( URI->new_abs( "$path$args", "$basepath$match" ),
+ $base )->canonical;
}
=item $c->error
$c->error('Something bad happened');
+Clean errors.
+
+ $c->error(0);
+
=cut
sub error {
my $c = shift;
- my $error = ref $_[0] eq 'ARRAY' ? $_[0] : [@_];
- push @{ $c->{error} }, @$error;
- return $c->{error};
+ if ( $_[0] ) {
+ my $error = ref $_[0] eq 'ARRAY' ? $_[0] : [@_];
+ push @{ $c->{error} }, @$error;
+ }
+ elsif ( defined $_[0] ) { $c->{error} = undef }
+ return $c->{error} || [];
}
=item $c->engine
}
$c->{depth}++;
eval {
- if ( $c->debug ) {
+ if ( $c->debug )
+ {
my ( $elapsed, @state ) =
$c->benchmark( $code, $class, $c, @{ $c->req->args } );
push @{ $c->{stats} }, [ $action, sprintf( '%fs', $elapsed ) ];
$c->state(@state);
}
else {
- $c->state( &$code( $class, $c, @{ $c->req->args } ) || 0 )
+ $c->state( &$code( $class, $c, @{ $c->req->args } ) || 0 );
}
};
$c->{depth}--;
use Catalyst::Test 'TestApp';\r
use YAML;\r
\r
-our ($iters, $tests);\r
-BEGIN { \r
- plan skip_all => 'set CAT_STRESS to enable this test' unless $ENV{CAT_STRESS};\r
- \r
- $iters = $ENV{CAT_STRESS} || 10;\r
- $tests = YAML::LoadFile( "$FindBin::Bin/stress.yml" );\r
- \r
+our ( $iters, $tests );\r
+\r
+BEGIN {\r
+ plan skip_all => 'set TEST_STRESS to enable this test'\r
+ unless $ENV{TEST_STRESS};\r
+\r
+ $iters = $ENV{TEST_STRESS} || 10;\r
+ $tests = YAML::LoadFile("$FindBin::Bin/stress.yml");\r
+\r
my $total_tests = 0;\r
map { $total_tests += scalar @{ $tests->{$_} } } keys %{$tests};\r
plan tests => $iters * $total_tests;\r
sub run_tests {\r
foreach my $test_group ( keys %{$tests} ) {\r
foreach my $test ( @{ $tests->{$test_group} } ) {\r
- ok( request( $test ), $test_group . ' - ' . $test );\r
+ ok( request($test), $test_group . ' - ' . $test );\r
}\r
}\r
}\r