1use strict; 2use warnings; 3use Test::More tests => 19; 4 5#use Pod::Simple::Debug (5); 6BEGIN { 7 require FindBin; 8 unshift @INC, $FindBin::Bin . '/lib'; 9} 10use helpers; 11 12use Pod::Simple::DumpAsXML; 13use Pod::Simple::XMLOutStream; 14print "# Pod::Simple version $Pod::Simple::VERSION\n"; 15 16my $x = 'Pod::Simple::XMLOutStream'; 17$Pod::Simple::XMLOutStream::ATTR_PAD = ' '; 18$Pod::Simple::XMLOutStream::SORT_ATTRS = 1; # for predictably testable output 19 20 21sub moj {shift->accept_target('mojojojo')} 22sub mojtext {shift->accept_target_as_text('mojojojo')} 23sub any {shift->accept_target('*')} 24 25#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26 27is( $x->_out( "=pod\n\nI like pie.\n\n=for mojojojo stuff\n\nYup.\n"), 28 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>' 29); 30is( $x->_out( "=pod\n\nI like pie.\n\n=for psketti,mojojojo,crunk stuff\n\nYup.\n"), 31 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>' 32); 33is( $x->_out( "=pod\n\nI like pie.\n\n=for mojojojo I<stuff>\n\nYup.\n"), 34 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>' 35); 36is( $x->_out( "=pod\n\nI like pie.\n\n=for psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 37 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>' 38); 39is( $x->_out( "=pod\n\nI like pie.\n\n=for :psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 40 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>' 41); 42 43print "# Testing accept_target ...\n"; 44 45is( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=for crunk stuff\n\nYup.\n"), 46 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>' 47); 48is( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=for mojojojo I<stuff>\n\nYup.\n"), 49 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>' 50); 51is( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=for psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 52 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>' 53); 54is( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=for :mojojojo I<stuff>\n\nYup.\n"), 55 '<Document><Para>I like pie.</Para><for target=":mojojojo" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 56); 57is( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=for :psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 58 '<Document><Para>I like pie.</Para><for target=":psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 59); 60 61print "# Testing accept_target_as_text ...\n"; 62 63is( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=for mojojojo I<stuff>\n\nYup.\n"), 64 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 65); 66is( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=for psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 67 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 68); 69is( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=for :mojojojo I<stuff>\n\nYup.\n"), 70 '<Document><Para>I like pie.</Para><for target=":mojojojo" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 71); 72is( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=for :psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 73 '<Document><Para>I like pie.</Para><for target=":psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 74); 75 76 77 78print "# Testing accept_target(*) ...\n"; 79 80is( $x->_out( \&any, "=pod\n\nI like pie.\n\n=for mojojojo I<stuff>\n\nYup.\n"), 81 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="*"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>' 82); 83is( $x->_out( \&any, "=pod\n\nI like pie.\n\n=for mojojojo I<stuff>\n\nYup.\n"), 84 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="*"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>' 85); 86is( $x->_out( \&any, "=pod\n\nI like pie.\n\n=for psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 87 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="*"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>' 88); 89is( $x->_out( \&any, "=pod\n\nI like pie.\n\n=for :mojojojo I<stuff>\n\nYup.\n"), 90 '<Document><Para>I like pie.</Para><for target=":mojojojo" target_matching="*"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 91); 92is( $x->_out( \&any, "=pod\n\nI like pie.\n\n=for :psketti,mojojojo,crunk I<stuff>\n\nYup.\n"), 93 '<Document><Para>I like pie.</Para><for target=":psketti,mojojojo,crunk" target_matching="*"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>' 94); 95