# vim:ft=perl
use Test::More;
use lib 'ex'; # Where BeerDB should live
-BEGIN { if (eval { require BeerDB }) {
- plan tests => 12;
- } else { Test::More->import(skip_all =>"SQLite not working or BeerDB module could not be loaded: $@") }
- }
+BEGIN {
+ eval { require BeerDB };
+ Test::More->import( skip_all =>
+ "SQLite not working or BeerDB module could not be loaded: $@"
+ ) if $@;
+
+ plan tests => 15;
+}
use Maypole::CLI qw(BeerDB);
use Maypole::Constants;
$ENV{MAYPOLE_TEMPLATES} = "t/templates";
isa_ok( (bless {},"BeerDB") , "Maypole");
-like(BeerDB->call_url("http://localhost/beerdb/"), qr/frontpage/, "Got the front page");
+# Test the effect of trailing slash on config->uri_base and request URI
+(my $uri_base = BeerDB->config->uri_base) =~ s:/$::;
+BeerDB->config->uri_base($uri_base);
+like(BeerDB->call_url("http://localhost/beerdb/"), qr/frontpage/,
+ "Got frontpage, trailing '/' on request but not uri_base");
+like(BeerDB->call_url("http://localhost/beerdb"), qr/frontpage/,
+ "Got frontpage, no trailing '/' on request or uri_base");
+BeerDB->config->uri_base($uri_base . '/');
+like(BeerDB->call_url("http://localhost/beerdb/"), qr/frontpage/,
+ "Got frontpage, trailing '/' on uri_base and request");
+like(BeerDB->call_url("http://localhost/beerdb"), qr/frontpage/,
+ "Got frontpage, trailing '/' on uri_base but not request");
+
like(BeerDB->call_url("http://localhost/beerdb/beer/list"), qr/Organic Best/, "Found a beer in the list");
my (%classdata)=split /\n/, BeerDB->call_url("http://localhost/beerdb/beer/classdata");
is ($classdata{plural},'beers','classdata.plural');