---
name: "Test::Pod::Content"
section: "3pm"
platform: "linux"
package: "libtest-pod-content-perl"
version: "0.0.6-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Pod::Content"
---

# Test::Pod::Content(3pm)

Test a Pod's content

## NAME

Test::Pod::Content - Test a Pod's content

## SYNOPSIS

```
 use Test::Pod::Content tests => 3;
 pod_section_is 'Test::Pod::Content' , 'NAME', "Test::Pod::Content - Test a Pod's content", 'NAME section';
 pod_section_like 'Test/Pod/Content.pm', 'SYNOPSIS', qr{ use \s Test::Pod::Content; }xm, 'SYNOPSIS section';
 pod_section_like 'Test/Pod/Content.pm', 'DESCRIPTION', qr{ Test::Pod::Content \s provides \s the }xm, 'DESCRIPTION section';
```

## 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.

Another usage example is to test whether all files contain the same copyright notice:

```
 plan tests => scalar @filelist;
 for my $file (sort @filelist) {
    pod_section_like( $file, 'LICENSE AND COPYRIGHT', qr{
        This \s library \s is \s free \s software\. \s
        You \s may \s distribute/modify \s it \s under \s
        the \s same \s terms \s as \s perl \s itself
    }xms, "$file License notice");
 }
```

See the files in the t/ directory for live examples.

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).

This is a very drastic simplification of Pod's document object model, and only allows for coarse-grained tests.

Test::Pod::Content provides the following subroutines for testing a Pod's content:

## SUBROUTINES/METHODS

### pod\_section\_is

```
  pod_section_is $file, $section, $content, $comment;
```

Tests whether a Pod section contains exactly the text given. Most useful for testing the NAME section. You probably want to use pod\_section\_like for all other sections.

`$file` may either be a filename (including path) or a module name. Test::Pod::Content will search in `@INC` for the file/module given.

### pod\_section\_like

```
 pod_section_like $file, $section, qr{ use \s Test::Pod::Content\s }xm, $comment;
```

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.

`$file` may either be a filename (including path) or a module name. Test::Pod::Content will search in `@INC` for the file/module given.

## BUGS AND LIMITATIONS

- •

  Performance

  Every call to a pod\_section\_\* method searches for the file in question in `@INC` 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.

- •

  Pod Syntax

  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.

## DEPENDENCIES

Test::More

Pod::Simple

version

## INCOMPATIBILITIES

None known

## SEE ALSO

Test::Pod for testing your POD's validity

Test::Pod::Coverage for checking wether your pod is complete

Pod::Tests, Test::Pod::Snippets and Pod::Snippets for extracting and executing tests from a POD (If you plan doing so, here's a little brain-train: Which of the tests in this module's "SYNOPSIS" section would fail if you extracted and executed it?).

## LICENSE AND COPYRIGHT

Copyright 2007 Martin Kutter.

This library is free software. You may distribute/modify it under the same terms as perl itself

## AUTHOR

Martin Kutter \<martin.kutter fen-net.de\>

## REPOSITORY INFORMATION

```
 $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 $
```
