Compare commits

...

13 Commits

Author SHA1 Message Date
Graham Ollis
7618cacaa4 fix hang in t/deep_recursion.t on *BSD 2012-12-27 14:51:34 -05:00
Graham Ollis
80340f9950 update changes 2012-12-27 13:37:31 -05:00
Graham Ollis
fb396704bf Merge branch 'master' of github.com:abh/mojox-renderer-tt 2012-12-27 13:22:20 -05:00
Graham Ollis
1d9ea654e9 use temp COMPILE_DIR to avoid test failures
where the default COMPILE_DIR already exists and is owned
by another user or not writable for some other reason by
the testing user.
2012-12-27 13:21:23 -05:00
Graham Ollis
3ec7366d6e better diagnostics
use filename and linenumber in eval for better diagnostic in test
2012-12-26 21:56:21 -05:00
Graham Ollis
a5e72c7526 rm commented code 2012-12-26 21:26:57 -05:00
Graham Ollis
6146b1f2f5 set locale "C" in tests
This ensures that the error string is what we expect it to be
2012-12-26 21:22:07 -05:00
Graham Ollis
5116c191f3 update Changes 2012-12-22 15:14:11 -05:00
Graham Ollis
5828f878d8 don't rely on English locale in test 2012-12-22 15:10:59 -05:00
Graham Ollis
f4beaf9864 use non-capturing for performance 2012-12-19 12:33:19 -05:00
Graham Ollis
ce9e1b955e load test to test loading of all .pm files 2012-12-18 11:02:18 -05:00
Graham Ollis
37ee2ee753 support multiple renderer paths 2012-12-18 11:00:47 -05:00
Graham Ollis
cdc31b07be update changes 2012-10-31 11:19:28 -04:00
12 changed files with 88 additions and 14 deletions

17
Changes
View File

@@ -1,6 +1,23 @@
Revision history for Mojolicious::Plugin::TtRenderer
{{$NEXT}}
- Fix hang in t/deep_recursion.t on *BSD
1.32 December 27, 2012
- silenced a few annoying warnings during test
- use temp directory for COMPILE_DIR in tests to avoid failures if the
default compile directory already exists and is owned by someone else.
1.31 December 26, 2012
- Set locale "C" in tests that rely on it
1.30 December 22, 2012
- Don't rely on English locale in the test t/tt_plugin_lite_app.t
1.29 December 18, 2012
- support multiple renderer paths
1.28 October 11, 2012
- specify minimum perl version
1.27 October 2, 2012

View File

@@ -44,7 +44,7 @@ sub _init {
my %config = (
( @renderer_paths > 0
? (INCLUDE_PATH => join(":", @renderer_paths))
? (INCLUDE_PATH => [@renderer_paths, 'templates'])
: ()
),
COMPILE_EXT => '.ttc',
@@ -157,7 +157,11 @@ sub ctx { @_ > 1 ? $_[0]->{ctx} = $_[1] : $_[0]->{ctx} }
sub options { @_ > 1 ? $_[0]->{options} = $_[1] : $_[0]->{options} }
sub not_found { @_ > 1 ? $_[0]->{not_found} = $_[1] : $_[0]->{not_found} }
sub _template_modified {1}
sub _template_modified {
my($self, $template) = @_;
return 1 if $self->SUPER::_template_modified($template);
return $template =~ /^templates(?:\/|\\)/;
}
sub _template_content {
my $self = shift;

View File

@@ -1,9 +1,9 @@
#!perl
use Test::More tests => 1;
use Test::More tests => 2;
BEGIN {
use_ok( 'Mojolicious::Plugin::TtRenderer' );
use_ok( 'Mojolicious::Plugin::TtRenderer::Engine' );
}
diag( "Testing Mojolicious::Plugin::TtRenderer::Engine $Mojolicious::Plugin::TtRenderer::Engine::VERSION, Perl $], $^X" );

View File

@@ -11,11 +11,16 @@ use Test::More tests => 3;
use Mojolicious::Lite;
use Test::Mojo;
use File::Temp qw( tempdir );
use File::Spec;
# Silence
# Send log to tmp file so that it doesn't clutter up the screen.
app->log->level('fatal');
app->log->path(do {
File::Spec->catfile(tempdir(CLEANUP => 1), 'mojo.log');
});
plugin 'tt_renderer';
plugin 'tt_renderer' => {template_options => { COMPILE_DIR => tempdir( CLEANUP => 1 ) }};
get '/exception' => sub { die };

View File

@@ -2,6 +2,7 @@ use strict;
use warnings;
use Test::More tests => 3;
use Test::Mojo;
use File::Temp qw( tempdir );
use Mojolicious::Lite;
@@ -11,7 +12,7 @@ app->plugin(
template_options => {
# These options are specific to TT
INCLUDE_PATH => 'templates',
COMPILE_DIR => 'templates_c',
COMPILE_DIR => tempdir( CLEANUP => 1 ),
COMPILE_EXT => '.ttc',
# ... anything else to be passed on to TT should go here
},

View File

@@ -12,13 +12,14 @@ use Test::More tests => 39;
use Mojolicious::Lite;
use Mojo::ByteStream 'b';
use Test::Mojo;
use File::Temp qw( tempdir );
# Silence
app->log->level('fatal');
use_ok('Mojolicious::Plugin::TtRenderer::Engine');
plugin 'tt_renderer' => {template_options => {PRE_CHOMP => 1, POST_CHOMP => 1, TRIM => 1}};
plugin 'tt_renderer' => {template_options => {PRE_CHOMP => 1, POST_CHOMP => 1, TRIM => 1, COMPILE_DIR => tempdir( CLEANUP => 1 ) }};
get '/exception' => 'error';

31
t/multiple_paths.t Normal file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env perl
use strict;
use warnings;
BEGIN { $ENV{MOJO_MODE}='testing'; };
use utf8;
use Test::More tests => 6;
use Mojolicious::Lite;
use Test::Mojo;
use File::Temp qw( tempdir );
# Silence
app->log->level('fatal');
my @paths = map { app->home->rel_dir($_) } "templates/multiple_first", "templates/multiple_second";
app->renderer->paths([@paths]);
plugin 'TtRenderer' => {template_options => { COMPILE_DIR => tempdir( CLEANUP => 1 ) }};
get '/first' => 'first';
get '/second' => 'second';
my $t = Test::Mojo->new;
$t->get_ok('/first')->status_is(200)->content_like(qr/First/);
$t->get_ok('/second')->status_is(200)->content_like(qr/Second/);

View File

@@ -0,0 +1 @@
First

View File

@@ -0,0 +1 @@
Second

View File

@@ -0,0 +1 @@
Second

View File

@@ -5,12 +5,22 @@
use strict;
use warnings;
use File::Temp;
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} ||= File::Temp::tempdir }
BEGIN { $ENV{MOJO_TMPDIR} ||= tempdir( CLEANUP => 1) }
# Make sure sockets are working
plan skip_all => 'working sockets required for this test!'
@@ -24,7 +34,7 @@ use Mojolicious::Lite;
use Test::Mojo;
# POD renderer plugin
plugin 'tt_renderer';
plugin 'tt_renderer' => {template_options => { COMPILE_DIR => tempdir( CLEANUP => 1 ) }};
# Silence
app->log->level('error');
@@ -41,10 +51,12 @@ 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 - doesnotexist.tt: No such file or directory/);
$t->get_ok('/blow')->status_is(500)->content_like(qr/file error - doesnotexist\.tt: No such file or directory/);
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
@@ -56,4 +68,4 @@ if(eval q{ use Devel::Cycle; 1 })
fail('Cycle found')
}
});
};
};

View File

@@ -20,7 +20,7 @@ use_ok 'Foo';
push @{app->renderer->classes}, 'Foo';
plugin 'tt_renderer' => {template_options => {PRE_CHOMP => 1, POST_CHOMP => 1, TRIM => 1}};
plugin 'tt_renderer' => {template_options => {PRE_CHOMP => 1, POST_CHOMP => 1, TRIM => 1, COMPILE_DIR => tempdir( CLEANUP => 1 )}};
app->log->level('fatal');