From: Marco Pessotto Date: Mon, 26 Oct 2015 15:41:06 +0000 (+0100) Subject: Test uri_for with path = 0 X-Git-Tag: 5.90102~8^2^2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=7064f69b1dfb59d1f3bad647b2097d0320acce8a;hp=a8020c62d2a52f96f14d288f5b81c6940be858b4 Test uri_for with path = 0 --- diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 56e0a2a..be64ec4 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -1560,7 +1560,7 @@ sub uri_for { my $fragment = ((scalar(@args) && ref($args[-1]) eq 'SCALAR') ? pop @args : undef ); unless(blessed $path) { - if ($path and $path =~ s/#(.+)$//) { + if (defined($path) and $path =~ s/#(.+)$//) { if(defined($1) and $fragment) { carp "Abiguious fragment declaration: You cannot define a fragment in '$path' and as an argument '$fragment'"; } diff --git a/t/aggregate/unit_core_uri_for.t b/t/aggregate/unit_core_uri_for.t index 8886656..43f7d50 100644 --- a/t/aggregate/unit_core_uri_for.t +++ b/t/aggregate/unit_core_uri_for.t @@ -66,6 +66,12 @@ is( ); is( + Catalyst::uri_for( $context, '0#fragment', { param1 => 'value1' } )->as_string, + 'http://127.0.0.1/foo/yada/0?param1=value1#fragment', + 'URI for path 0 with fragment and query params 1' +); + +is( Catalyst::uri_for( $context, '/bar#fragment^%$', { param1 => 'value1' } )->as_string, 'http://127.0.0.1/foo/bar?param1=value1#fragment^%$', 'URI for path with fragment and query params 3' @@ -105,6 +111,13 @@ is( 'http://127.0.0.1/foo/yada', 'URI with no action' ); + + is( + Catalyst::uri_for( $context, 0 )->as_string, + 'http://127.0.0.1/foo/yada/0', + 'URI with 0 path' + ); + is_deeply(\@warnings, [], "No warnings with no path argument"); }