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