X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fdispatch_parser.t;h=8fe2b8e0169a490edd587446f89e13897dedead0;hb=59ccc1e85596c73f96fce832d900fe72a764f230;hp=503a57052ad4269290d3aa68e3cfac570a1fa4e4;hpb=5ba2eb683d1a5e8ee76bfb1c7825c9826571be40;p=catagits%2FWeb-Simple.git diff --git a/t/dispatch_parser.t b/t/dispatch_parser.t index 503a570..8fe2b8e 100644 --- a/t/dispatch_parser.t +++ b/t/dispatch_parser.t @@ -8,6 +8,22 @@ use Web::Dispatch::Parser; my $dp = Web::Dispatch::Parser->new; { + my $all = $dp->parse(''); + + is_deeply( + [ $all->({ REQUEST_METHOD => 'GET' }) ], + [ {} ], + 'GET matches' + ); + + is_deeply( + [ $all->({ REQUEST_METHOD => 'POST' }) ], + [ {} ], + 'POST matches' + ); +}; + +{ my $get = $dp->parse('GET'); is_deeply( @@ -259,6 +275,23 @@ my $dp = Web::Dispatch::Parser->new; ); } +{ + my @dot_pairs = ( + [ '/one/*' => 'two' ], + [ '/one/*.*' => 'two.three' ], + [ '/**' => 'one/two' ], + [ '/**.*' => 'one/two.three' ], + ); + + foreach my $p (@dot_pairs) { + is_deeply( + [ $dp->parse($p->[0])->({ PATH_INFO => '/one/two.three' }) ], + [ {}, $p->[1] ], + "${\$p->[0]} matches /one/two.three and returns ${\$p->[1]}" + ); + } +} + # # query string # @@ -315,7 +348,7 @@ foreach my $win ( [ '?:baz=&:evil=' => { baz => 'one two', evil => '/' } ], [ '?*' => \%all_single ], [ '?@*' => \%all_multi ], - [ '?foo=&@*' => 'FOO', do { my %h = %all_multi; delete $h{foo}; \%h } ], + [ '?foo=&@*' => 'FOO', \%all_multi ], [ '?:foo=&@*' => { %all_multi, foo => 'FOO' } ], [ '?:@bar=&*' => { %all_single, bar => [ qw(BAR1 BAR2) ] } ], ) { @@ -366,7 +399,7 @@ foreach my $win2 ( [ '/foo/bar/+?:baz=&:evil=' => { baz => 'one two', evil => '/' } ], [ '/foo/bar/+?*' => \%all_single ], [ '/foo/bar/+?@*' => \%all_multi ], - [ '/foo/bar/+?foo=&@*' => 'FOO', do { my %h = %all_multi; delete $h{foo}; \%h } ], + [ '/foo/bar/+?foo=&@*' => 'FOO', \%all_multi ], [ '/foo/bar/+?:foo=&@*' => { %all_multi, foo => 'FOO' } ], [ '/foo/bar/+?:@bar=&*' => { %all_single, bar => [ qw(BAR1 BAR2) ] } ], ) { @@ -417,7 +450,7 @@ foreach my $win3 ( [ '/foo/bar+?:baz=&:evil=' => { baz => 'one two', evil => '/' } ], [ '/foo/bar+?*' => \%all_single ], [ '/foo/bar+?@*' => \%all_multi ], - [ '/foo/bar+?foo=&@*' => 'FOO', do { my %h = %all_multi; delete $h{foo}; \%h } ], + [ '/foo/bar+?foo=&@*' => 'FOO', \%all_multi ], [ '/foo/bar+?:foo=&@*' => { %all_multi, foo => 'FOO' } ], [ '/foo/bar+?:@bar=&*' => { %all_single, bar => [ qw(BAR1 BAR2) ] } ], ) {