1# Testing HTMLBatch 2BEGIN { 3 if($ENV{PERL_CORE}) { 4 chdir 't'; 5 @INC = '../lib'; 6 } 7} 8 9# Time-stamp: "2004-05-24 02:07:47 ADT" 10use strict; 11my $DEBUG = 0; 12 13#sub Pod::Simple::HTMLBatch::DEBUG () {5}; 14 15use Test; 16BEGIN { plan tests => 17 } 17 18require Pod::Simple::HTMLBatch;; 19 20use File::Spec; 21use Cwd; 22my $cwd = cwd(); 23print "# CWD: $cwd\n" if $DEBUG; 24 25my $t_dir; 26my $corpus_dir; 27 28foreach my $t_maybe ( 29 File::Spec->catdir( File::Spec->updir(), 'lib','Pod','Simple','t'), 30 File::Spec->catdir( $cwd ), 31 File::Spec->catdir( $cwd, 't' ), 32 'OHSNAP' 33) { 34 die "Can't find the test corpus" if $t_maybe eq 'OHSNAP'; 35 next unless -e $t_maybe; 36 37 $t_dir = $t_maybe; 38 $corpus_dir = File::Spec->catdir( $t_maybe, 'testlib1' ); 39 next unless -e $corpus_dir; 40 last; 41} 42print "# OK, found the test corpus as $corpus_dir\n" if $DEBUG; 43ok 1; 44 45my $outdir; 46while(1) { 47 my $rand = sprintf "%05x", rand( 0x100000 ); 48 $outdir = File::Spec->catdir( $t_dir, "delme-$rand-out" ); 49 last unless -e $outdir; 50} 51 52END { 53 use File::Path; 54 rmtree $outdir, 0, 0; 55} 56 57ok 1; 58print "# Output dir: $outdir\n" if $DEBUG; 59 60mkdir $outdir, 0777 or die "Can't mkdir $outdir: $!"; 61 62print "# Converting $corpus_dir => $outdir\n" if $DEBUG; 63my $conv = Pod::Simple::HTMLBatch->new; 64$conv->verbose(0); 65$conv->index(1); 66$conv->batch_convert( [$corpus_dir], $outdir ); 67ok 1; 68print "# OK, back from converting.\n" if $DEBUG; 69 70my @files; 71use File::Find; 72find( sub { 73 push @files, $File::Find::name; 74 if (/[.]html$/ && $_ !~ /perl|index/) { 75 # Make sure an index was generated. 76 open HTML, $_ or die "Cannot open $_: $!\n"; 77 my $html = do { local $/; <HTML> }; 78 close HTML; 79 ok $html =~ /<div class='indexgroup'>/; 80 } 81 return; 82}, $outdir ); 83 84{ 85 my $long = ( grep m/zikzik\./i, @files )[0]; 86 ok($long) or print "# How odd, no zikzik file in $outdir!?\n"; 87 if($long) { 88 $long =~ s{zikzik\.html?$}{}s; 89 for(@files) { substr($_, 0, length($long)) = '' } 90 @files = grep length($_), @files; 91 } 92} 93 94if ($DEBUG) { 95 print "#Produced in $outdir ...\n"; 96 foreach my $f (sort @files) { 97 print "# $f\n"; 98 } 99 print "# (", scalar(@files), " items total)\n"; 100} 101 102# Some minimal sanity checks: 103ok scalar(grep m/\.css/i, @files) > 5; 104ok scalar(grep m/\.html?/i, @files) > 5; 105ok scalar grep m{squaa\W+Glunk.html?}i, @files; 106 107if (my @long = grep { /^[^.]{9,}/ } map { s{^[^/]/}{} } @files) { 108 ok 0; 109 print "# File names too long:\n", 110 map { "# $_\n" } @long; 111} else { 112 ok 1; 113} 114 115# use Pod::Simple; 116# *pretty = \&Pod::Simple::BlackBox::pretty; 117 118print "# Bye from ", __FILE__, "\n" if $DEBUG; 119ok 1; 120