Fixed uri_for bug found by drewbie
Andy Grundman [Mon, 10 Oct 2005 22:20:25 +0000 (22:20 +0000)]
lib/Catalyst.pm
t/unit/core/uri_for.t

index 4ee787e..3a52ccf 100644 (file)
@@ -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;
index f9d5e09..26c14b1 100644 (file)
@@ -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'
+);