xref: /openbsd-src/gnu/usr.bin/perl/cpan/Pod-Simple/t/basic.t (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
1b39c5158Smillertuse strict;
2eac174f2Safresh1use warnings;
3*3d61058aSafresh1use Test::More tests => 29;
4b39c5158Smillert
5b39c5158Smillert#use Pod::Simple::Debug (6);
6b39c5158Smillert
7b39c5158Smillertrequire Pod::Simple::BlackBox;
8b39c5158Smillertok 1;
9b39c5158Smillert
10b39c5158Smillertrequire Pod::Simple; ok 1;
11b39c5158Smillert
12b39c5158SmillertPod::Simple->VERSION(.90); ok 1;
13b39c5158Smillert
14b39c5158Smillert#print "# Pod::Simple version $Pod::Simple::VERSION\n";
15b39c5158Smillert
16b39c5158Smillertrequire Pod::Simple::DumpAsXML; ok 1;
17b39c5158Smillert
18b39c5158Smillertrequire Pod::Simple::XMLOutStream; ok 1;
19b39c5158Smillert
20eac174f2Safresh1BEGIN {
21eac174f2Safresh1  require FindBin;
22eac174f2Safresh1  unshift @INC, $FindBin::Bin . '/lib';
23eac174f2Safresh1}
24*3d61058aSafresh1use helpers;
25b39c5158Smillert
26b39c5158Smillertprint "# Simple identity tests...\n";
27b39c5158Smillert
28*3d61058aSafresh1&is( e "", "" );
29*3d61058aSafresh1&is( e "\n", "", );
30*3d61058aSafresh1&is( e "\n", "\n", );
31*3d61058aSafresh1&is( e "puppies\n\n\n\n", "", );
32b39c5158Smillert
33b39c5158Smillert
34b39c5158Smillertprint "# Contentful identity tests...\n";
35b39c5158Smillert
36*3d61058aSafresh1&is( e "=pod\n\nFoo\n",         "=pod\n\nFoo\n"         );
37*3d61058aSafresh1&is( e "=pod\n\n\n\nFoo\n\n\n", "=pod\n\n\n\nFoo\n\n\n" );
38*3d61058aSafresh1&is( e "=pod\n\n\n\nFoo\n\n\n", "=pod\n\nFoo\n"         );
39b39c5158Smillert
40b39c5158Smillert# Now with some more newlines
41*3d61058aSafresh1&is( e "\n\n=pod\n\nFoo\n",     "\n\n=pod\n\nFoo\n"     );
42*3d61058aSafresh1&is( e "=pod\n\n\n\nFoo\n\n\n", "=pod\n\n\n\nFoo\n\n\n" );
43*3d61058aSafresh1&is( e "=pod\n\n\n\nFoo\n\n\n", "\n\n=pod\n\nFoo\n"     );
44b39c5158Smillert
45b39c5158Smillert
46*3d61058aSafresh1&is( e "=head1 Foo\n",          "=head1 Foo\n"          );
47*3d61058aSafresh1&is( e "=head1 Foo\n\n=cut\n",  "=head1 Foo\n\n=cut\n"  );
48*3d61058aSafresh1&is( e "=head1 Foo\n\n=cut\n",  "=head1 Foo\n"          );
49b39c5158Smillert
50b39c5158Smillert# Now just add some newlines...
51*3d61058aSafresh1&is( e "\n\n\n\n=head1 Foo\n",  "\n\n\n\n=head1 Foo\n"  );
52*3d61058aSafresh1&is( e "=head1 Foo\n\n=cut\n",  "=head1 Foo\n\n=cut\n"  );
53*3d61058aSafresh1&is( e "=head1 Foo\n\n=cut\n",  "\n\n\n\n=head1 Foo\n"  );
54b39c5158Smillert
55b39c5158Smillert
56b39c5158Smillertprint "# Simple XMLification tests...\n";
57b39c5158Smillert
58*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out("\n\n\nprint \$^T;\n\n\n"),
59b39c5158Smillert    qq{<Document\ncontentless="1"></Document>}
60b39c5158Smillert     # make sure the contentless flag is set
61b39c5158Smillert);
62*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out("\n\n"),
63b39c5158Smillert    qq{<Document\ncontentless="1"></Document>}
64b39c5158Smillert     # make sure the contentless flag is set
65b39c5158Smillert);
66*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out("\n"),
67b39c5158Smillert    qq{<Document\ncontentless="1"></Document>}
68b39c5158Smillert     # make sure the contentless flag is set
69b39c5158Smillert);
70*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out(""),
71b39c5158Smillert    qq{<Document\ncontentless="1"></Document>}
72b39c5158Smillert     # make sure the contentless flag is set
73b39c5158Smillert);
74b39c5158Smillert
75b39c5158Smillertok( Pod::Simple::XMLOutStream->_out('', '<Document></Document>' ) );
76b39c5158Smillert
77*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out("=pod\n\nFoo\n"),
78b39c5158Smillert    '<Document><Para>Foo</Para></Document>'
79b39c5158Smillert);
80b39c5158Smillert
81*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out("=head1 Chacha\n\nFoo\n"),
82b39c5158Smillert    '<Document><head1>Chacha</head1><Para>Foo</Para></Document>'
83b39c5158Smillert);
84b39c5158Smillert
85b8851fccSafresh1# Make sure an obviously invalid Pod tag is invalid.
86*3d61058aSafresh1is( Pod::Simple::XMLOutStream->_out("=F\0blah\n\nwhatever\n"),
87b8851fccSafresh1    qq{<Document\ncontentless="1"></Document>}
88b8851fccSafresh1);
89