File: basic.t

package info (click to toggle)
libplack-perl 1.0047-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,480 kB
  • sloc: perl: 5,287; python: 6; makefile: 4
file content (35 lines) | stat: -rw-r--r-- 941 bytes parent folder | download | duplicates (7)
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
use strict;
use warnings;
use Test::More;
use Plack::Middleware::StackTrace;
use Plack::Test;
use HTTP::Request::Common;

my $traceapp = Plack::Middleware::StackTrace->wrap(sub { die "orz" }, no_print_errors => 1);
my $app = sub {
    my $env = shift;
    my $ret = $traceapp->($env);
    like $env->{'plack.stacktrace.text'}, qr/orz/;
    return $ret;
};

my @backends = ($Plack::Middleware::StackTrace::StackTraceClass);
push @backends, "Devel::StackTrace" if $backends[0] eq 'Devel::StackTrace::WithLexicals';

for my $be (@backends) {
    local $Plack::Middleware::StackTrace::StackTraceClass = $be;
    test_psgi $app, sub {
        my $cb = shift;

        my $req = GET "/";
        $req->header(Accept => "text/html,*/*");
        my $res = $cb->($req);

        ok $res->is_error;
        is_deeply [ $res->content_type ], [ 'text/html', 'charset=utf-8' ];
        like $res->content, qr/<title>Error: orz/;
    }
}

done_testing;