#--- update.t -----------------------------------------------------------------
# function: Test ToC updating.
use strict;
use Test;
BEGIN { plan tests => 6; }
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 
',
	'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);
Header
EOT
}
END {
		# Remove test file
	unlink($filename) or warn "Can't unlink $filename: $!";
}
#--- 1. update ----------------------------------------------------------------
$tocUpdator->update($toc, "Header
", {'output' => \$output});
ok("$output\n", <<'EOT');
1  Header
EOT
#--- 2. updateFile ------------------------------------------------------------
$tocUpdator->updateFile($toc, $filename, {'output' => \$output});
	open(FILE, ">a.out1") || die "Can't create a.out1: $!";
	print FILE $output; close(FILE);
$output2 = <<'EOT';
1  Header
EOT
	open(FILE, ">a.out2") || die "Can't create a.out2: $!";
	print FILE $output2; close(FILE);
ok($output, $output2);
#--- 3. insert ----------------------------------------------------------------
$tocUpdator->insert($toc, "Header
", {'output' => \$output});
ok("$output\n", <<'EOT');
1  Header
EOT
#--- 4. insertIntoFile --------------------------------------------------------
$tocUpdator->insertIntoFile($toc, $filename, {'output' => \$output});
ok($output, <<'EOT');
1  Header
EOT
#--- 5. update twice ----------------------------------------------------------
$tocUpdator->update($toc, "Header
", {'output' => \$output});
$tocUpdator->update($toc, $output, {'output' => \$output2});
ok("$output\n", <<'EOT');
1  Header
EOT
#--- 6. tokens update begin & end ---------------------------------------------
$toc->setOptions({
	'tokenUpdateBeginOfAnchorNameBegin' => '',
	'tokenUpdateEndOfAnchorNameBegin'   => '',
	'tokenUpdateBeginOfAnchorNameEnd'   => '',
	'tokenUpdateEndOfAnchorNameEnd'     => '',
	'tokenUpdateBeginNumber'            => '',
	'tokenUpdateEndNumber'              => '',
	'tokenUpdateBeginToc'               => '',
	'tokenUpdateEndToc',                => ''
});
$tocUpdator->update($toc, "Header
", {'output' => \$output});
ok("$output\n", <<'EOT');
1  Header
EOT