diff options
Diffstat (limited to 'examples/includes/HTML-Toc-0.91/t/propagate.t')
-rw-r--r-- | examples/includes/HTML-Toc-0.91/t/propagate.t | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/examples/includes/HTML-Toc-0.91/t/propagate.t b/examples/includes/HTML-Toc-0.91/t/propagate.t new file mode 100644 index 000000000..63de18dc3 --- /dev/null +++ b/examples/includes/HTML-Toc-0.91/t/propagate.t @@ -0,0 +1,176 @@ +#--- propagate.t -------------------------------------------------------------- +# function: Test ToC propagation. + +use strict; +use Test; + +BEGIN { plan tests => 10; } + +use HTML::Toc; +use HTML::TocGenerator; +use HTML::TocInsertor; + +my ($output, $content, $filename); +my $toc = HTML::Toc->new; +my $tocGenerator = HTML::TocGenerator->new; +my $tocInsertor = HTML::TocInsertor->new; + +$toc->setOptions({ + 'doLinkToToken' => 0, + 'levelIndent' => 0, + 'insertionPoint' => 'before <h1>', + 'header' => '', + 'footer' => '', +}); + + +BEGIN { + # Create test file + $filename = "file$$.htm"; + die "$filename is already there" if -e $filename; + open(FILE, ">$filename") || 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. propagate ------------------------------------------------------------- + +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); +ok($output, "<ul>\n<li>Header\n</ul><h1>Header</h1>"); + + +#--- 2. propagateFile --------------------------------------------------------- + +$tocInsertor->insertIntoFile($toc, $filename, {'output' => \$output}); +ok($output, "<ul>\n<li>Header\n</ul><h1>Header</h1>\n"); + + +#--- 3. doLinkToToken ----------------------------------------------------- + +$toc->setOptions({'doLinkToToken' => 1}); +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); +ok("$output\n", <<'EOT'); +<ul> +<li><a href=#h-1>Header</a> +</ul><a name=h-1><h1>Header</h1></a> +EOT + + +#--- 4. templateAnchorHrefBegin ----------------------------------------------- + +$toc->setOptions( + {'templateAnchorHrefBegin' => '"<$node${file}test${groupId}>"'} +); +$tocInsertor->insertIntoFile($toc, $filename, {'output' => \$output}); +ok($output, "<ul>\n<li><1${filename}testh>Header</a>\n</ul><a name=h-1><h1>Header</h1></a>\n"); +$toc->setOptions({'templateAnchorHrefBegin' => undef}); + + +#--- 5. templateAnchorNameBegin ----------------------------------------------- + +$toc->setOptions({ + 'templateAnchorName' => '"$node$groupId"', + 'templateAnchorNameBegin' => '"<$anchorName>"' +}); +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); +ok($output, "<ul>\n<li><a href=#1h>Header</a>\n</ul><1h><h1>Header</h1></a>"); +$toc->setOptions({'templateAnchorName' => undef}); + + +#--- 6. templateAnchorName function ------------------------------------------- + +sub AssembleAnchorName { + # Get arguments + my ($aFile, $aGroupId, $aLevel, $aNode) = @_; + # Return value + return $aFile . $aGroupId . $aLevel . $aNode; +} # AssembleAnchorName() + + # Set options +$toc->setOptions({'templateAnchorNameBegin' => \&AssembleAnchorName}); + # Propagate ToC +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); + # Test ToC +ok($output, "<ul>\n<li><a href=#h-1>Header</a>\n</ul>h11<h1>Header</h1></a>"); + # Restore options +$toc->setOptions({'templateAnchorNameBegin' => undef}); + + +#--- 7. doNumberToken -------------------------------------------------------- + + # Set options +$toc->setOptions({'doNumberToken' => 1}); +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); +ok("$output\n", <<'EOT'); +<ul> +<li><a href=#h-1>Header</a> +</ul><a name=h-1><h1>1 Header</h1></a> +EOT + # Reset options +$toc->setOptions({ + 'templateTokenNumber' => undef, + 'doNumberToken' => 0 +}); + + +#--- 8. templateTokenNumber --------------------------------------------------- + + # Set options +$toc->setOptions({ + 'templateTokenNumber' => '"-$node-"', + 'doNumberToken' => 1 +}); + # Propagate ToC +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); + # Test ToC +ok("$output\n", <<'EOT'); +<ul> +<li><a href=#h-1>Header</a> +</ul><a name=h-1><h1>-1-Header</h1></a> +EOT + # Reset options +$toc->setOptions({ + 'doNumberToken' => 0, + 'templateTokenNumber' => undef +}); + + +#--- 9. numberingStyle -------------------------------------------------------- + + # Set options +$toc->setOptions({ + 'doNumberToken' => 1, + 'tokenToToc' => [{ + 'level' => 1, + 'tokenBegin' => '<h1>', + 'numberingStyle' => 'lower-alpha' + }] +}); + # Propagate ToC +$tocInsertor->insert($toc, "<h1>Header</h1>", {'output' => \$output}); + # Test ToC +ok("$output\n", <<'EOT'); +<ul> +<li><a href=#h-a>Header</a> +</ul><a name=h-a><h1>a Header</h1></a> +EOT + # Reset options +$toc->setOptions({ + 'doNumberToken' => 0, + 'tokenToToc' => undef, +}); + + +#--- 10. declaration pass through --------------------------------------------- + +$tocInsertor->insert($toc, '<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><h1>Header</h1>', {'output' => \$output}); + # Test ToC +ok($output, '<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><h1>Header</h1>'); |