xref: /openbsd-src/gnu/usr.bin/perl/cpan/Pod-Simple/t/htmlbat.t (revision 46035553bfdd96e63c94e32da0210227ec2e3cf1)
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