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