#!/usr/bin/env perl
use
warnings
qw(FATAL all NONFATAL misc)
;
use
FindBin; BEGIN {
local
@_
=
"$FindBin::Bin/.."
;
do
"$FindBin::Bin/../t_lib.pl"
}
BEGIN {
foreach
my
$req
(
qw(Plack Plack::Test HTTP::Request::Common)
) {
unless
(
eval
qq{require $req;}
) {
diag(
"$req is not installed."
);
skip_all();
}
$req
->
import
;
}
}
use
lib
"$FindBin::Bin/lib"
;
{
my
$client
=
do
{
my
$app_root
= untaint_any(
$FindBin::Bin
);
my
$site
= MY->new(
app_root
=>
$app_root
,
doc_root
=>
"$app_root/public"
,
(-d
"$app_root/ytmpl"
? (
app_base
=>
'@ytmpl'
) : ()),
header_charset
=>
'utf-8'
,
tmpl_encoding
=>
'utf-8'
,
output_encoding
=>
'utf-8'
,
);
Entity
source_of_runtime_error
=>
sub
{
my
(
$this
) =
@_
;
'MyBackendFOOBAR'
;
};
Plack::Test->create(
$site
->to_app);
};
subtest
"runtime module error"
,
sub
{
my
$res
=
$client
->request(GET
"/"
);
like
$res
->content,
qr/MissingUnknownModuleFooBarBaz/
;
};
}
done_testing();