Portability tweaks to Pod::Html's cache.t.
[perl.git] / ext / Pod-Html / t / cache.t
1 #!/usr/bin/perl -w                                         # -*- perl -*-
2
3 BEGIN {
4     die "Run me from outside the t/ directory, please" unless -d 't';
5 }
6
7 # test the directory cache
8 # XXX test --flush and %Pages being loaded/used for cross references
9
10 use strict;
11 use Cwd;
12 use Pod::Html;
13 use Data::Dumper;
14 use Test::More tests => 10;
15
16 my $cwd = Pod::Html::_unixify(Cwd::cwd());
17 my $infile = "t/cache.pod";
18 my $outfile = "cacheout.html";
19 my $cachefile = "pod2htmd.tmp";
20 my $tcachefile = "t/pod2htmd.tmp";
21
22 unlink $cachefile, $tcachefile;
23 is(-f $cachefile, undef, "No cache file to start");
24 is(-f $tcachefile, undef, "No cache file to start");
25
26 # test podpath and podroot
27 Pod::Html::pod2html(
28     "--infile=$infile",
29     "--outfile=$outfile",
30     "--podpath=scooby:shaggy:fred:velma:daphne",
31     "--podroot=$cwd",
32     );
33 is(-f $cachefile, 1, "Cache created");
34 open(my $cache, '<', $cachefile) or die "Cannot open cache file: $!";
35 chomp(my $podpath = <$cache>);
36 chomp(my $podroot = <$cache>);
37 close $cache;
38 is($podpath, "scooby:shaggy:fred:velma:daphne", "podpath");
39 is($podroot, "$cwd", "podroot");
40
41 # test cache contents
42 Pod::Html::pod2html(
43     "--infile=$infile",
44     "--outfile=$outfile",
45     "--cachedir=t",
46     "--podpath=t",
47     "--htmldir=$cwd",
48     );
49 is(-f $tcachefile, 1, "Cache created");
50 open($cache, '<', $tcachefile) or die "Cannot open cache file: $!";
51 chomp($podpath = <$cache>);
52 chomp($podroot = <$cache>);
53 is($podpath, "t", "podpath");
54 my %pages;
55 while (<$cache>) {
56     /(.*?) (.*)$/;
57     $pages{$1} = $2;
58 }
59 chdir("t");
60 my %expected_pages = 
61     # chop off the .pod and set the path
62     map { my $f = substr($_, 0, -4); $f => "t/$f" }
63     <*.pod>;
64 chdir($cwd);
65 is_deeply(\%pages, \%expected_pages, "cache contents");
66 close $cache;
67
68 1 while unlink $outfile;
69 1 while unlink $cachefile;
70 1 while unlink $tcachefile;
71 is(-f $cachefile, undef, "No cache file to end");
72 is(-f $tcachefile, undef, "No cache file to end");