use strict;
use warnings;
use Test::More;
if ($ENV{RUN_MAINTAINER_TESTS}) {
plan 'tests' => 10;
} else {
plan 'skip_all' => 'Module maintainer tests';
}
SKIP: {
if (! eval 'use Test::Pod 1.26; 1') {
skip('Test::Pod 1.26 required for testing POD', 1);
}
pod_file_ok('lib/Object/InsideOut.pod');
pod_file_ok('lib/Object/InsideOut/Metadata.pm');
pod_file_ok('lib/Bundle/Object/InsideOut.pm');
pod_file_ok('examples/YAPI.pm');
}
SKIP: {
if (! eval 'use Test::Pod::Coverage 1.08; 1') {
skip('Test::Pod::Coverage 1.08 required for testing POD coverage', 1);
}
pod_coverage_ok('Object::InsideOut',
{
'trustme' => [
qr/^new$/,
qr/^clone$/,
qr/^set$/,
qr/^meta$/,
qr/^create_field$/,
qr/^add_class$/,
qr/^normalize$/,
],
'private' => [
qr/^STORABLE_freeze$/,
qr/^STORABLE_thaw$/,
qr/^create_CHAINED$/,
qr/^create_CUMULATIVE$/,
qr/^create_accessors$/,
qr/^create_heritage$/,
qr/^create_lvalue_accessor$/,
qr/^generate_CHAINED$/,
qr/^generate_CUMULATIVE$/,
qr/^generate_OVERLOAD$/,
qr/^wrap_HIDDEN$/,
qr/^wrap_MERGE_ARGS$/,
qr/^wrap_PRIVATE$/,
qr/^wrap_RESTRICTED$/,
qr/^initialize$/,
qr/^install_ATTRIBUTES$/,
qr/^install_UNIVERSAL$/,
qr/^is_sharing$/,
qr/^load$/,
qr/^preamble_code$/,
qr/^type_code$/,
qr/^process_fields$/,
qr/^set_sharing$/,
qr/^sub_name$/,
qr/^AUTOLOAD$/,
qr/^CLONE$/,
qr/^CLONE_SKIP$/,
qr/^DESTROY$/,
qr/^MODIFY_ARRAY_ATTRIBUTES$/,
qr/^MODIFY_CODE_ATTRIBUTES$/,
qr/^MODIFY_HASH_ATTRIBUTES$/,
qr/^_ID$/,
qr/^_args$/,
qr/^_obj$/,
qr/^import$/,
qr/^add_dump_field$/,
qr/^get_class_methods$/,
qr/^get_symtab_methods_for$/,
]
}
);
pod_coverage_ok('Object::InsideOut::Metadata', {
'trustme' => [ qr/^add_meta$/ ],
}
);
}
SKIP: {
if (! eval 'use Test::Spelling; 1') {
skip('Test::Spelling required for testing POD spelling', 1);
}
if (system('aspell help >/dev/null 2>&1')) {
skip("'aspell' required for testing POD spelling", 1);
}
set_spell_cmd('aspell list --lang=en');
add_stopwords(<DATA>);
pod_file_spelling_ok('lib/Object/InsideOut.pod', 'OIO.pod spelling');
pod_file_spelling_ok('lib/Object/InsideOut/Metadata.pm', 'Metadata.pm POD spelling');
pod_file_spelling_ok('lib/Bundle/Object/InsideOut.pm', 'Bundle POD spelling');
pod_file_spelling_ok('examples/YAPI.pm', 'Term::YAPI POD spelling');
unlink("/home/$ENV{'USER'}/en.prepl", "/home/$ENV{'USER'}/en.pws");
}
exit(0);
__DATA__
API
Hedden
Kubb
Naofumi
OO
OO-compatible
Storable
TSUJII
abigail
accessor's
attribute's
automethods
autopilotmarketing
cpan
de-serialize
gmail
metadata
namespace
non-lvalue
nt
param
parm
Pre
preproc
preprocess
pre-initialization
refaddrs
reloadable
renormalize
uncallable
unhandled
OO-callable
automethod
se
XP
MSDOS
YAPI.pm
async
anim
PREPROCESSING
Preprocessing
preprocessing
RUNTIME
Runtime
runtime
someone's
delegator
delegators
forwards
autogenerating
designator
destructor
subtype
URI
decrementing
incrementing
syntaxes
READONLY
__END__