NAME
Test::MetaSyntactic - Common tests for Acme::MetaSyntactic themes
SYNOPSIS
# add this as t/meta.t
use Test::MetaSyntatic;
all_themes_ok();
DESCRIPTION
This module provides the minimum set of tests that any Acme::MetaSyntactic theme should pass.
The goal is to make is easier for theme creators build a distribution and ensure theirs themes will work as expected when installed.
EXPORTED FUNCTIONS
all_themes_ok( @lib )
Will find all themes under the directories listed in @lib
, and run theme_ok()
on them.
@lib
is optional (it will try to find themes in blib/lib or lib if not provided).
theme_ok( $theme, $source )
Will run all tests on the given $theme
. Some tests require access to the source, but they will be skipped if $source
is not provided.
If the subtest_load()
test fails, no further test will be run.
SUBTESTS
The individual tests are run as subtests. All substests but subtest_load()
assume that the module can be successfully loaded.
subtest_fixme( $theme, $source )
Checks that the theme source file does not contain the word "FIXME".
subtest_encoding( $theme, $source )
Checks that the theme source files contains an =encoding
line if it contains some non us-ascii characters.
subtest_load( $theme )
Tries to load the theme module.
First in the currently running process, and then in isolation inside its own environment.
subtest_version( $theme )
Checks that the theme has a $VERSION
.
subtest_format( $theme )
Checks that each metasyntactic name in the theme is a valid Perl variable name.
subtest_length( $theme )
Checks that each name in the theme has valid length.
subtest_data( $theme, $source )
Checks that the __DATA__
section (if any) of the theme source is properly formatted.
subtest_import( $theme )
Checks that the exported meta$theme
function returns an item from $theme
.
subtest_noimport( $theme )
Checks that use Acme::MetaSyntactic::$theme ()
does not export the meta$theme
function.
subtest_theme( $theme )
Checks that the theme()
function returns the theme name.
subtest_remote( $theme )
For themes with a remote list, checks that the remote list (if any) is identical to the current list of items in the theme.
This subtest will only be run if RELEASE_TESTING
(or AUTHOR_TESTING
, for backward compatibility reasons) is true and AUTOMATED_TESTING
is false. Requires LWP::UserAgent.
AUTHOR
Philippe Bruhat (BooK), <book@cpan.org>
COPYRIGHT
Copyright 2012-2017 Philippe Bruhat (BooK), All Rights Reserved.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.