#!/usr/bin/perl -w # # color.t -- Additional specialized tests for Pod::Text::Color. # # Copyright 2002, 2004, 2006, 2009 by Russ Allbery # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. BEGIN { chdir 't' if -d 't'; if ($ENV{PERL_CORE}) { @INC = '../lib'; } unshift (@INC, '../blib/lib'); $| = 1; } use strict; use Test::More; # Skip this test if Term::ANSIColor isn't available. eval { require Term::ANSIColor }; if ($@) { plan skip_all => 'Term::ANSIColor required for Pod::Text::Color'; } else { plan tests => 4; } require_ok ('Pod::Text::Color'); # Load tests from the data section below, write the POD to a temporary file, # convert it, and compare to the expected output. my $parser = Pod::Text::Color->new; isa_ok ($parser, 'Pod::Text::Color', 'Parser object'); my $n = 1; while () { next until $_ eq "###\n"; open (TMP, '> tmp.pod') or die "Cannot create tmp.pod: $!\n"; while () { last if $_ eq "###\n"; print TMP $_; } close TMP; open (OUT, '> out.tmp') or die "Cannot create out.tmp: $!\n"; $parser->parse_from_file ('tmp.pod', \*OUT); close OUT; open (TMP, 'out.tmp') or die "Cannot open out.tmp: $!\n"; my $output; { local $/; $output = ; } close TMP; 1 while unlink ('tmp.pod', 'out.tmp'); my $expected = ''; while () { last if $_ eq "###\n"; $expected .= $_; } is ($output, $expected, "Output correct for test $n"); $n++; } # Below the marker are bits of POD and corresponding expected output. This is # used to test specific features or problems with Pod::Text::Color. The input # and output are separated by lines containing only ###. __DATA__ ### =head1 WRAPPING B> I> B> B> B>. ### WRAPPING Do not include formatting codes when wrapping. ### ### =head1 TAG WIDTH =over 10 =item 12345678 A =item B<12345678> B =item 1 C =item B<1> D =back ### TAG WIDTH 12345678 A 12345678 B 1 C 1 D ###