1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
use strict;
use warnings;
use Test::More;
use Plack::Test;
use HTTP::Request::Common;
{
package AutoPageTest;
use Dancer2;
set auto_page => 1;
## HACK HACK HACK
Dancer2::Handler::AutoPage->register(app);
engine('template')->views('t/views');
engine('template')->layout('main');
}
my $app = AutoPageTest->to_app;
is( ref $app, 'CODE', 'Got app' );
test_psgi $app, sub {
my $cb = shift;
{
my $r = $cb->( GET '/auto_page' );
is( $r->code, 200, 'Autopage found the page' );
like(
$r->content,
qr/---\nHey! This is Auto Page working/,
'...with proper content',
);
}
{
my $r = $cb->( GET '/folder/page' );
is( $r->code, 200, 'Autopage found the page under a folder' );
like(
$r->content,
qr/---\nPage under folder/,
'...with proper content',
);
}
{
my $r = $cb->( GET '/non_existent_page' );
is( $r->code, 404, 'Autopage doesnt try to render nonexistent pages' );
}
{
my $r = $cb->( GET '/file.txt' );
is( $r->code, 200, 'found file on public with autopage' );
is(
$r->content,
"this is a public file\n",
'[GET /file.txt] Correct content',
);
like(
$r->headers->content_type,
qr{text/plain},
'public served file as correct mime',
);
}
};
done_testing;
|