our @paths;
our $iters;
-BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 2;
+BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 1;
- # add special paths to test here
- @paths = (
- # all reserved in uri's
- qw~ : / ? [ ] @ ! $ & ' ( ) * + ; = ~, ',' , '#',
+ # add special paths to test here
+ @paths = (
+ # all reserved in uri's
+ qw~ : / ? [ ] @ ! $ & ' ( ) * + ; = ~, ',' , '#',
- # unreserved
- 'a'..'z','A'..'Z',0..9,qw( - . _ ~ ),
- " ",
+ # unreserved
+ 'a'..'z','A'..'Z',0..9,qw( - . _ ~ ),
+ " ",
- # just to test %2F/%
- [ qw~ / / ~ ],
+ # just to test %2F/%
+ [ qw~ / / ~ ],
- # testing %25/%25
- [ qw~ % % ~ ],
- );
+ # testing %25/%25
+ [ qw~ % % ~ ],
+ );
}
use Test::More tests => 6*@paths * $iters;
} else {
$path = uri_escape($test);
}
+
+ SKIP:
+ {
+ # Skip %2F, ., [, (, and ) tests on real webservers
+ # Both Apache and lighttpd don't seem to like these
+ if ( $ENV{CATALYST_SERVER} && $path =~ /(?:%2F|\.|%5B|\(|\))/ ) {
+ skip "Skipping $path tests on remote server", 6;
+ }
- my $response;
+ my $response;
- ok( $response = request("http://localhost/args/args/$path"), "Requested args for path $path");
+ ok( $response = request("http://localhost/args/args/$path"), "Requested args for path $path");
- is( $response->content, $test, 'as args' );
+ is( $response->content, $test, "$test as args" );
- undef $response;
+ undef $response;
- ok( $response = request("http://localhost/args/params/$path"), "Requested params for path $path");
+ ok( $response = request("http://localhost/args/params/$path"), "Requested params for path $path");
- is( $response->content, $test, 'as params' );
+ is( $response->content, $test, "$test as params" );
- undef $response;
+ undef $response;
- if( $test =~ m{/} ) {
- $test =~ s{/}{}g;
- $path = uri_escape( $test );
- }
-
- ok( $response = request("http://localhost/chained/multi_cap/$path/baz"), "Requested capture for path $path");
+ if( $test =~ m{/} ) {
+ $test =~ s{/}{}g;
+ $path = uri_escape( $test );
+ }
- is( $response->content, join( ', ', split( //, $test ) ) ."; ", 'as capture' );
+ ok( $response = request("http://localhost/chained/multi_cap/$path/baz"), "Requested capture for path $path");
+ is( $response->content, join( ', ', split( //, $test ) ) ."; ", "$test as capture" );
+ }
}