add release tests

(fix minor stuff found by release tets)
This commit is contained in:
Graham Ollis
2013-08-08 16:37:09 -04:00
parent f0136a4a24
commit b72fb699e9
17 changed files with 298 additions and 18 deletions

View File

@@ -8,6 +8,15 @@ Mojolicious::Plugin::TtRenderer - Template Renderer Plugin for Mojolicious
version 1.49
=encoding utf-8
=begin stopwords
Bjørn
Szász
Árpád
=head1 SYNOPSIS
L<Mojolicious::Lite>:
@@ -17,7 +26,6 @@ L<Mojolicious::Lite>:
L<Mojolicious>
$self->plugin('tt_renderer');
=head1 DESCRIPTION
This plugin is a simple Template Toolkit renderer for L<Mojolicious>.
@@ -25,8 +33,6 @@ Its defaults are usually reasonable, although for finer grain detail in
configuration you may want to use
L<Mojolicious::Plugin::TtRenderer::Engine> directly.
=encoding utf-8
=head1 OPTIONS
These are the options that can be passed in as arguments to this plugin.
@@ -66,7 +72,6 @@ Here is the same example using the full L<Mojolicious> app form:
}
These options will be used if you do not override them:
=over 4
=item INCLUDE_PATH
@@ -91,7 +96,7 @@ C<utf-87>
C<128>
=item RELATIZE
=item RELATIVE
C<1> (true)
@@ -110,7 +115,6 @@ is equivalent to
except in the first example relative paths are relative to the L<Mojolicious>
app's home directory (C<$app-E<gt>home>).
=head1 STASH
=head2 h
@@ -118,13 +122,11 @@ app's home directory (C<$app-E<gt>home>).
Helpers are available via the C<h> entry in the stash.
<a href="[% h.url_for('index') %]">go back to index</a>
=head2 c
The current controller instance can be accessed as C<c>.
I see you are requesting a document from [% c.req.headers.host %].
=head1 EXAMPLES
L<Mojolicious::Lite> example:
@@ -189,7 +191,6 @@ L<Mojolicious> example:
These are also included with the C<Mojolicious::Plugin::TtRenderer>
distribution, including the support files required for the full
L<Mojolicious> app example.
=head1 SEE ALSO
L<Mojolicious::Plugin::TtRenderer::Engine>,
@@ -197,6 +198,8 @@ L<Mojolicious>,
L<Mojolicious::Guides>,
L<http://mojolicious.org>.
=end stopwords
=head1 AUTHOR
original author: Ask Bjørn Hansen

View File

@@ -8,6 +8,7 @@ copyright_holder = Ask Bjørn Hansen
version = 1.49
[@Author::Plicease]
release_tests = 1
[Prereqs]
Mojolicious = 3.33

View File

@@ -29,6 +29,14 @@ __END__
=encoding utf-8
=begin stopwords
Bjørn
Szász
Árpád
=cut
=head1 SYNOPSIS
L<Mojolicious::Lite>:
@@ -110,7 +118,7 @@ C<utf-87>
C<128>
=item RELATIZE
=item RELATIVE
C<1> (true)

View File

@@ -294,7 +294,7 @@ object. When used the INCLUDE_PATH will be set to
A hash reference of options that are passed to Template->new(). Note that if you
specify an C<INCLUDE_PATH> through this option it will remove the DATA section
templates from your path. A better way to specify an C<INCLUDE_PATH> if you also
want to use DATA section templates it by manipulting the L<Mojolicious::Renderer>
want to use DATA section templates it by manipulating the L<Mojolicious::Renderer>
path.
=item cache_dir

View File

@@ -1,9 +1,7 @@
#!perl
use strict;
use warnings;
use Test::More tests => 2;
BEGIN {
use_ok( 'Mojolicious::Plugin::TtRenderer' );
use_ok( 'Mojolicious::Plugin::TtRenderer::Engine' );
}
use_ok( 'Mojolicious::Plugin::TtRenderer' );
use_ok( 'Mojolicious::Plugin::TtRenderer::Engine' );

View File

@@ -1,5 +1,7 @@
package
Foo;
Foo;
use strict;
use warnings;
1;
__DATA__

View File

@@ -0,0 +1,9 @@
use strict;
use warnings;
use Test::More tests => 1;
SKIP: {
eval q{ use Dist::Zilla::PluginBundle::Author::Plicease };
skip '[@Plicease] is not installed', 1 if $@;
ok $Dist::Zilla::PluginBundle::Author::Plicease::VERSION >= 0.7, '[@Plicease] >= 0.7';
}

27
xt/release/changes.t Normal file
View File

@@ -0,0 +1,27 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::CPAN::Changes'
unless eval q{ use Test::CPAN::Changes; 1 };
};
use Test::CPAN::Changes;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
do {
my $old = \&Test::Builder::carp;
my $new = sub {
my($self, @messages) = @_;
return if $messages[0] =~ /^Date ".*" is not in the recommend format/;
$old->($self, @messages);
};
no warnings 'redefine';
*Test::Builder::carp = $new;
};
changes_file_ok;
done_testing;

14
xt/release/eol.t Normal file
View File

@@ -0,0 +1,14 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::EOL'
unless eval q{ use Test::EOL; 1 };
};
use Test::EOL;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
all_perl_files_ok(grep { -e $_ } qw( bin lib t Makefile.PL ));

18
xt/release/fixme.t Normal file
View File

@@ -0,0 +1,18 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Fixme'
unless eval q{ use Test::Fixme; 1 };
};
use Test::Fixme 0.07;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
run_tests(
match => qr/FIXME/,
where => [ grep { -e $_ } qw( bin lib t Makefile.PL )],
);

15
xt/release/no_tabs.t Normal file
View File

@@ -0,0 +1,15 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::NoTabs'
unless eval q{ use Test::NoTabs; 1 };
};
use Test::NoTabs;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
all_perl_files_ok( grep { -e $_ } qw( bin lib t Makefile.PL ));

15
xt/release/pod.t Normal file
View File

@@ -0,0 +1,15 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Pod'
unless eval q{ use Test::Pod; 1 };
};
use Test::Pod;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
all_pod_files_ok( grep { -e $_ } qw( bin lib ));

67
xt/release/pod_coverage.t Normal file
View File

@@ -0,0 +1,67 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Pod::Coverage'
unless eval q{ use Test::Pod::Coverage; 1 };
plan skip_all => 'test requires YAML'
unless eval q{ use YAML; 1; };
};
use Test::Pod::Coverage;
use YAML qw( LoadFile );
use FindBin;
use File::Spec;
my $config_filename = File::Spec->catfile(
$FindBin::Bin, 'release.yml'
);
my $config;
$config = LoadFile($config_filename)
if -r $config_filename;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
my @private_classes;
my %private_methods;
foreach my $private (@{ $config->{pod_coverage}->{private} })
{
my($class,$method) = split /#/, $private;
if(defined $class && $class ne '')
{
my $regex = eval 'qr{^' . $class . '$}';
if(defined $method && $method ne '')
{
push @private_classes, { regex => $regex, method => $method };
}
else
{
push @private_classes, { regex => $regex, all => 1 };
}
}
elsif(defined $method && $method ne '')
{
$private_methods{$_} = 1 for split /,/, $method;
}
}
my @classes = all_modules;
plan tests => scalar @classes;
foreach my $class (@classes)
{
SKIP: {
my($is_private_class) = map { 1 } grep { $class =~ $_->{regex} && $_->{all} } @private_classes;
skip "private class: $class", 1 if $is_private_class;
my %methods = map {; $_ => 1 } map { split /,/, $_->{method} } grep { $class =~ $_->{regex} } @private_classes;
$methods{$_} = 1 for keys %private_methods;
my $also_private = eval 'qr{^' . join('|', keys %methods ) . '$}';
pod_coverage_ok $class, { also_private => [$also_private] };
};
}

View File

@@ -0,0 +1,15 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Pod::Spelling::CommonMistakes'
unless eval q{ use Test::Pod::Spelling::CommonMistakes; 1 };
};
use Test::Pod::Spelling::CommonMistakes;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
# FIXME test files in bin too.
all_pod_files_ok;

View File

@@ -0,0 +1,39 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Spelling'
unless eval q{ use Test::Spelling; 1 };
plan skip_all => 'test requires YAML'
unless eval q{ use YAML; 1; };
};
use Test::Spelling;
use YAML qw( LoadFile );
use FindBin;
use File::Spec;
my $config_filename = File::Spec->catfile(
$FindBin::Bin, 'release.yml'
);
my $config;
$config = LoadFile($config_filename)
if -r $config_filename;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
add_stopwords(@{ $config->{pod_spelling_system}->{stopwords} });
add_stopwords(<DATA>);
all_pod_files_spelling_ok;
__DATA__
Plicease
stdout
stdin
subref
loopback
username
os
Ollis
Mojolicious
plicease

34
xt/release/release.yml Normal file
View File

@@ -0,0 +1,34 @@
---
pod_spelling_system:
# list of words that are spelled correctly
# (regardless of what spell check thinks)
stopwords:
- Bethke
- Cosimo
- Crowther
- Holm
- Htbaa
- Kitover
- Magnus
- Mojo
- Ramberg
- Streppone
- Vuets
- dir
- giftnuss
- mojo
- namespace
- renderer
- spleenjack
- vti
- app's
- renderer's
- Toolkit's
- Fayland
pod_coverage:
# format is "Class#method" or "Class", regex allowed
# for either Class or method.
private:
- Mojolicious::Plugin::TtRenderer#register
- Mojolicious::Plugin::TtRenderer::Engine#tt

15
xt/release/strict.t Normal file
View File

@@ -0,0 +1,15 @@
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Strict'
unless eval q{ use Test::Strict; 1 };
};
use Test::Strict;
use FindBin;
use File::Spec;
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
all_perl_files_ok( grep { -e $_ } qw( bin lib t Makefile.PL ));