From: Graeme Lawton Date: Fri, 9 Oct 2015 14:46:40 +0000 (+0100) Subject: Fixed :Path() empty brackets attribute not registering action. X-Git-Tag: 5.90102~3^2^2~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=dd6a9f23fda9c6520be5021f7fb51f4fb345c8c4 Fixed :Path() empty brackets attribute not registering action. Fixes: #104 --- diff --git a/lib/Catalyst/Controller.pm b/lib/Catalyst/Controller.pm index 3db8f36..a5b400f 100644 --- a/lib/Catalyst/Controller.pm +++ b/lib/Catalyst/Controller.pm @@ -389,7 +389,7 @@ sub _parse_attrs { # Parse out :Foo(bar) into Foo => bar etc (and arrayify) - if ( my ( $key, $value ) = ( $attr =~ /^(.*?)(?:\(\s*(.+?)\s*\))?$/ ) ) + if ( my ( $key, $value ) = ( $attr =~ /^(.*?)(?:\(\s*(.*?)\s*\))?$/ ) ) { if ( defined $value ) { diff --git a/t/lib/TestPath.pm b/t/lib/TestPath.pm new file mode 100644 index 0000000..ae14557 --- /dev/null +++ b/t/lib/TestPath.pm @@ -0,0 +1,8 @@ +package TestPath; +use strict; +use warnings; +use Catalyst; + +__PACKAGE__->setup; + +1; diff --git a/t/lib/TestPath/Controller/One.pm b/t/lib/TestPath/Controller/One.pm new file mode 100644 index 0000000..5c23b23 --- /dev/null +++ b/t/lib/TestPath/Controller/One.pm @@ -0,0 +1,12 @@ +package TestPath::Controller::One; +use Moose; +use namespace::autoclean; + +BEGIN { extends 'Catalyst::Controller' } + +sub one :Path { + my ( $self, $c ) = @_; + $c->response->body( 'OK' ); +} + +__PACKAGE__->meta->make_immutable; \ No newline at end of file diff --git a/t/lib/TestPath/Controller/Three.pm b/t/lib/TestPath/Controller/Three.pm new file mode 100644 index 0000000..09f5a5d --- /dev/null +++ b/t/lib/TestPath/Controller/Three.pm @@ -0,0 +1,12 @@ +package TestPath::Controller::Three; +use Moose; +use namespace::autoclean; + +BEGIN { extends 'Catalyst::Controller' } + +sub three :Path('') { + my ( $self, $c ) = @_; + $c->response->body( 'OK' ); +} + +__PACKAGE__->meta->make_immutable; \ No newline at end of file diff --git a/t/lib/TestPath/Controller/Two.pm b/t/lib/TestPath/Controller/Two.pm new file mode 100644 index 0000000..b5373df --- /dev/null +++ b/t/lib/TestPath/Controller/Two.pm @@ -0,0 +1,12 @@ +package TestPath::Controller::Two; +use Moose; +use namespace::autoclean; + +BEGIN { extends 'Catalyst::Controller' } + +sub two :Path() { + my ( $self, $c ) = @_; + $c->response->body( 'OK' ); +} + +__PACKAGE__->meta->make_immutable; \ No newline at end of file diff --git a/t/path_action_empty_brackets.t b/t/path_action_empty_brackets.t new file mode 100644 index 0000000..415f121 --- /dev/null +++ b/t/path_action_empty_brackets.t @@ -0,0 +1,27 @@ +use strict; +use warnings; + +use FindBin; +use lib "$FindBin::Bin/lib"; + +use Test::More tests => 9; +use Catalyst::Test 'TestPath'; + + +{ + ok( my $response = request('http://localhost/one'), 'Request' ); + ok( $response->is_success, '"Path" - Response Successful 2xx' ); + is( $response->content, 'OK', '"Path" - Body okay' ); +} +{ + ok( my $response = request('http://localhost/two'), 'Request' ); + ok( $response->is_success, '"Path()" - Response Successful 2xx' ); + is( $response->content, 'OK', '"Path()" - Body okay' ); +} +{ + ok( my $response = request('http://localhost/three'), 'Request' ); + ok( $response->is_success, '"Path(\'\')" - Response Successful 2xx' ); + is( $response->content, 'OK', '"Path(\'\')" - Body okay' ); +} + +