From: Andy Grundman Date: Mon, 10 Oct 2005 22:20:25 +0000 (+0000) Subject: Fixed uri_for bug found by drewbie X-Git-Tag: 5.7099_04~1230 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=fdba7a9dced6b7a39c18632468ee593208ed006f Fixed uri_for bug found by drewbie --- diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 4ee787e..3a52ccf 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -392,7 +392,7 @@ sub uri_for { my $base = $c->request->base->clone; my $basepath = $base->path; $basepath =~ s/\/$//; - $basepath .= '/' if $basepath; + $basepath .= '/'; my $match = $c->request->match; $match =~ s/^\///; $match .= '/' if $match; diff --git a/t/unit/core/uri_for.t b/t/unit/core/uri_for.t index f9d5e09..26c14b1 100644 --- a/t/unit/core/uri_for.t +++ b/t/unit/core/uri_for.t @@ -1,7 +1,7 @@ use strict; use warnings; -use Test::More tests => 4; +use Test::More tests => 5; use Test::MockObject; use URI; @@ -28,3 +28,12 @@ is( is( Catalyst::uri_for( $context, '../quux' )->as_string, 'http://127.0.0.1/foo/quux', 'URI for relative dot path' ); + +# bug found by drewbie +$request->mock('base', sub { URI->new('http://localhost:3000/') } ); +$request->mock('match', sub { 'orderentry/contract' } ); +is( + Catalyst::uri_for( $context, '/Orderentry/saveContract' )->as_string, + 'http://localhost:3000/Orderentry/saveContract', + 'URI for absolute path' +);