The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# this test makes sure the auto_page feature works as expected
# whenever a template matches a requested path, a default route handler 
# takes care of rendering it.
use strict;
use warnings;
use Test::More import => ['!pass'], tests => 8;
use Dancer::Test;

{
    package Foo;
    use Dancer;

    hook before_template => sub {
        my $tokens = shift;
        $tokens->{title} = "Dancer";
    };

    set auto_page => true, views => path(dirname(__FILE__), 'views');

    get '/' => sub { 1 };
}

response_status_is  [GET => '/hello'] => 200, "response found for /hello";
response_content_is [GET => '/hello'] => "Hello\n", "content looks good";

response_status_is  [GET => '/foo/bar' ], 200, "response found for /foo/bar";
response_content_is [GET => '/foo/bar' ], "foo/bar\n", "content looks good";

response_status_is  [GET => '/foo/' ], 200, "response found for /foo/";
response_content_is [GET => '/foo/' ], "foo/index\n", "content looks good";

response_status_is  [GET => '/falsepage'] => 404;
response_content_like [GET => '/error'] => qr/ERROR: Dancer\n/, "error page looks OK";