HTML-Toc
view release on metacpan or search on metacpan
#--- update.t -----------------------------------------------------------------
# function: Test ToC updating.
use strict;
use Test::More tests => 6;
use Test::Differences;
use HTML::Toc;
use HTML::TocUpdator;
my ($output, $output2, $content, $filename);
my $toc = HTML::Toc->new;
my $tocUpdator = HTML::TocUpdator->new;
$toc->setOptions({
'doLinkToToken' => 1,
'doNumberToken' => 1,
'levelIndent' => 0,
'insertionPoint' => 'before <h1>',
'header' => '',
'footer' => '',
});
BEGIN {
# Create test file
$filename = "file$$.htm";
die "$filename is already there" if -e $filename;
open my $file, ">", $filename or die "Can't create $filename: $!";
print $file <<'EOT'; close $file;
<h1>Header</h1>
EOT
}
END {
# Remove test file
unlink($filename) or warn "Can't unlink $filename: $!";
}
#--- 1. update ----------------------------------------------------------------
$tocUpdator->update($toc, "<h1>Header</h1>", {'output' => \$output});
eq_or_diff("$output\n", <<HTML, "update");
<!-- #BeginToc --><ul>
<li><a href="#h-1">Header</a></li>
</ul><!-- #EndToc --><h1><!-- #BeginTocAnchorNameBegin --><a name="h-1"></a><!-- #EndTocAnchorNameBegin --><!-- #BeginTocNumber -->1 <!-- #EndTocNumber -->Header</h1>
HTML
#--- 2. updateFile ------------------------------------------------------------
$tocUpdator->updateFile($toc, $filename, {'output' => \$output});
open my $file, '>', 'a.out1' || die "Can't create a.out1: $!";
print $file $output; close $file;
$output2 = <<HTML;
<!-- #BeginToc --><ul>
<li><a href="#h-1">Header</a></li>
</ul><!-- #EndToc --><h1><!-- #BeginTocAnchorNameBegin --><a name="h-1"></a><!-- #EndTocAnchorNameBegin --><!-- #BeginTocNumber -->1 <!-- #EndTocNumber -->Header</h1>
HTML
open $file, '>', 'a.out2' || die "Can't create a.out2: $!";
print $file $output2; close $file;
eq_or_diff($output, $output2, 'updateFile', {max_width => 120});
END { for(qw/a.out1 a.out2/) {
unlink $_ or warn "Can't delete $_\n";
}}
( run in 0.981 second using v1.01-cache-2.11-cpan-e1769b4cff6 )