.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Pod::Content 3pm" .TH Test::Pod::Content 3pm "2015-06-06" "perl v5.20.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Pod::Content \- Test a Pod's content .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& use Test::Pod::Content tests => 3; \& pod_section_is \*(AqTest::Pod::Content\*(Aq , \*(AqNAME\*(Aq, "Test::Pod::Content \- Test a Pod\*(Aqs content", \*(AqNAME section\*(Aq; \& pod_section_like \*(AqTest/Pod/Content.pm\*(Aq, \*(AqSYNOPSIS\*(Aq, qr{ use \es Test::Pod::Content; }xm, \*(AqSYNOPSIS section\*(Aq; \& pod_section_like \*(AqTest/Pod/Content.pm\*(Aq, \*(AqDESCRIPTION\*(Aq, qr{ Test::Pod::Content \es provides \es the }xm, \*(AqDESCRIPTION section\*(Aq; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a very simple module for testing a Pod's content. It is mainly intended for testing the content of generated Pod \- that is, the Pod included in perl modules generated by some mechanism. .PP Another usage example is to test whether all files contain the same copyright notice: .PP .Vb 1 \& plan tests => scalar @filelist; \& \& for my $file (sort @filelist) { \& pod_section_like( $file, \*(AqLICENSE AND COPYRIGHT\*(Aq, qr{ \& This \es library \es is \es free \es software\e. \es \& You \es may \es distribute/modify \es it \es under \es \& the \es same \es terms \es as \es perl \es itself \& }xms, "$file License notice"); \& } .Ve .PP See the files in the t/ directory for live examples. .PP Test::Pod::Content has a very simple concept of Pods: To Test::Pod::Content, a Pod is separated into section. Each section starts with a =head(1|2|3|4) directive, and ends with the next =head, or with the end of the document (=cut). .PP This is a very drastic simplification of Pod's document object model, and only allows for coarse-grained tests. .PP Test::Pod::Content provides the following subroutines for testing a Pod's content: .SH "SUBROUTINES/METHODS" .IX Header "SUBROUTINES/METHODS" .SS "pod_section_is" .IX Subsection "pod_section_is" .Vb 1 \& pod_section_is $file, $section, $content, $comment; .Ve .PP Tests whether a Pod section contains exactly the text given. Most useful for testing the \s-1NAME\s0 section. You probably want to use pod_section_like for all other sections. .PP \&\f(CW$file\fR may either be a filename (including path) or a module name. Test::Pod::Content will search in \f(CW@INC\fR for the file/module given. .SS "pod_section_like" .IX Subsection "pod_section_like" .Vb 1 \& pod_section_like $file, $section, qr{ use \es Test::Pod::Content\es }xm, $comment; .Ve .PP Tests whether the text in a Pod section matches the given regex. Be sure to include the m / s regex qualifier if you expect your Pod section to span multiple lines. .PP \&\f(CW$file\fR may either be a filename (including path) or a module name. Test::Pod::Content will search in \f(CW@INC\fR for the file/module given. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" .IP "\(bu" 4 Performance .Sp Every call to a pod_section_* method searches for the file in question in \&\f(CW@INC\fR and parses it from its start. This means that every test requires a Pod parser run, which is quite inefficient if you conduct a big number of tests. .IP "\(bu" 4 Pod Syntax .Sp Test::Pod::Coverage may report wrong test results if your pod is not syntactically correct. You should use Test::Pod to check your Pod's syntax. .SH "DEPENDENCIES" .IX Header "DEPENDENCIES" Test::More .PP Pod::Simple .PP version .SH "INCOMPATIBILITIES" .IX Header "INCOMPATIBILITIES" None known .SH "SEE ALSO" .IX Header "SEE ALSO" Test::Pod for testing your \s-1POD\s0's validity .PP Test::Pod::Coverage for checking wether your pod is complete .PP Pod::Tests, Test::Pod::Snippets and Pod::Snippets for extracting and executing tests from a \s-1POD \&\s0(If you plan doing so, here's a little brain-train: Which of the tests in this module's \*(L"\s-1SYNOPSIS\*(R"\s0 section would fail if you extracted and executed it?). .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2007 Martin Kutter. .PP This library is free software. You may distribute/modify it under the same terms as perl itself .SH "AUTHOR" .IX Header "AUTHOR" Martin Kutter .SH "REPOSITORY INFORMATION" .IX Header "REPOSITORY INFORMATION" .Vb 5 \& $Id: Content.pm 505 2008\-06\-22 09:54:54Z kutterma $ \& $Revision: 505 $ \& $Source: a $ \& $Date: 2008\-06\-22 11:54:54 +0200 (So, 22 Jun 2008) $ \& $HeadURL: http://svn.hyper\-framework.org/Hyper/Test\-Pod\-Content/trunk/lib/Test/Pod/Content.pm $ .Ve