72 lines
1.9 KiB
Perl
72 lines
1.9 KiB
Perl
#!/usr/bin/env perl
|
|
|
|
# Copyright (C) 2008-2010, Sebastian Riedel.
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
BEGIN {
|
|
unless($^O eq 'MSWin32') {
|
|
eval '# line '. __LINE__ . ' "' . __FILE__ . qq("\n). q{
|
|
use POSIX qw( setlocale LC_ALL );
|
|
setlocale(LC_ALL, 'C');
|
|
};
|
|
warn $@ if $@;
|
|
}
|
|
}
|
|
|
|
use File::Temp qw( tempdir );
|
|
use Mojo::IOLoop;
|
|
use Test::More;
|
|
|
|
# Use a clean temporary directory
|
|
BEGIN { $ENV{MOJO_TMPDIR} ||= tempdir( CLEANUP => 1) }
|
|
|
|
# Make sure sockets are working
|
|
plan skip_all => 'working sockets required for this test!'
|
|
unless Mojo::IOLoop::Server->new->generate_port;
|
|
plan tests => 6;
|
|
|
|
# Leela: OK, this has gotta stop. I'm going to remind Fry of his humanity the way only a woman can.
|
|
# Farnsworth: You're going to do his laundry?
|
|
|
|
use Mojolicious::Lite;
|
|
use Test::Mojo;
|
|
|
|
# POD renderer plugin
|
|
plugin 'tt_renderer' => {template_options => { COMPILE_DIR => tempdir( CLEANUP => 1 ) }};
|
|
|
|
# Silence
|
|
app->log->level('error');
|
|
|
|
# GET /
|
|
get '/' => 'index';
|
|
get '/blow' => sub {
|
|
shift->render(template => 'conditional-exception', do_process => 1);
|
|
};
|
|
|
|
|
|
my $t = Test::Mojo->new;
|
|
|
|
# Simple TT template
|
|
$t->get_ok('/')->status_is(200)
|
|
->content_like(qr/test123456/);
|
|
$t->get_ok('/blow')->status_is(500)->content_like(qr/file error - (templates\/)?doesnotexist\.tt: (No such file or directory|not found)/);
|
|
|
|
if(eval q{ use Devel::Cycle; 1 })
|
|
{
|
|
# ignore warnings coming from Devel::Cycle
|
|
local $SIG{__WARN__} = sub { };
|
|
Devel::Cycle::find_cycle(app, sub {
|
|
my $arg = shift;
|
|
# Template::Provider (from which M::P::T::Provider inherits) has some cycles which are freed manaully by
|
|
# its DESTROY method, so we skip reporting those cycles.
|
|
unless(scalar(scalar(grep { ref($_->[2]) eq 'Mojolicious::Plugin::TtRenderer::Provider' && $_->[1] =~ /^(HEAD|TAIL|LOOKUP)$/ } @$arg)) > 0)
|
|
{
|
|
#use YAML ();
|
|
#diag YAML::Dump([ map { [ $_->[0], $_->[1], ref($_->[2]), ref($_->[3]) ] } @$arg ]);
|
|
fail('Cycle found')
|
|
}
|
|
});
|
|
};
|