# massage namespace, empty if absolute path
$namespace =~ s/^\/// if $namespace;
$namespace .= '/' if $namespace;
- $path ||= '';
+ $path = '' if !defined $path;
$namespace = '' if $path =~ /^\//;
$path =~ s/^\///;
$path =~ s/\?/%3F/g;
}
s/\?/%3F/g; $_
} @args ) : '' );
- $args =~ s/^\/// unless $path;
+ $args =~ s/^\/// unless length $path;
my $res =
URI->new_abs( URI->new_abs( "$path$args", "$basepath$namespace" ), $base )
->canonical;
use strict;
use warnings;
-use Test::More tests => 13;
+use Test::More tests => 14;
use URI;
use_ok('Catalyst');
is( Catalyst::uri_for( $context, '/bar/baz' )->as_string,
'http://127.0.0.1/bar/baz', 'URI with no base or match' );
+
+ # test "0" as the path
+ is( Catalyst::uri_for( $context, qw/0 foo/ )->as_string,
+ 'http://127.0.0.1/0/foo', '0 as path is ok'
+ );
+
}
# test with undef -- no warnings should be thrown