The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# 'text' testing

use Test::More tests => 6;
use HTML::Tabulate 0.20;
use Data::Dumper;
use strict;
use FindBin qw($Bin);

# Load result strings
my %result = ();
my $test = "$Bin/t14";
die "missing data dir $test" unless -d $test;
opendir my $datadir, $test or die "can't open directory $test";
for (readdir $datadir) {
  next if m/^\./;
  open my $fh, "<$test/$_" or die "can't read $test/$_";
  { 
    local $/ = undef;
    $result{$_} = <$fh>;
  }
  close $fh;
}
close $datadir;

my $print = shift @ARGV || 0;
my $n = 1;
sub report {
  my ($data, $file, $inc) = @_;
  $inc ||= 1;
  if ($print == $n) {
    print STDERR "--> $file\n";
    print $data;
    exit 0;
  }
  $n += $inc;
}

my $data = [ [ '123', 'Fred Flintstone', 'CEO', '19710430', ], 
             [ '456', 'Barney Rubble', 'Lackey', '19750808', ],
             [ '789', 'Dino', 'Pet' ] ];
my $t = HTML::Tabulate->new({ 
  fields => [ qw(emp_id emp_name emp_title emp_birth_dt) ],
});
my $table;

$table = $t->render($data, {
  text => 'As at April 2004',
});
report $table, "text1";
is($table, $result{text1}, "text bare");

$table = $t->render($data, {
  text => 'As at <b>April 2004</b>',
});
report $table, "text2";
is($table, $result{text2}, "text with partial markup");

$table = $t->render($data, {
  text => '<p>As at April 2004</p>',
});
report $table, "text1";
is($table, $result{text1}, "text tag-wrapped");

$table = $t->render($data, {
  text => "As at April 2004\n(multiple lines)\nBlah blah blah",
});
report $table, "text3";
is($table, $result{text3}, "text multiline bare");

$table = $t->render($data, {
  text => "<p>As at April 2004</p>\n<p>(multiple lines)</p>\n",
});
report $table, "text4";
is($table, $result{text4}, "text multiline tag-wrapped");

$table = $t->render($data, {
  title => 'Current Employees',
  text => "<p>As at April 2004</p>\n<p>(multiple lines)</p>\n",
});
report $table, "text5";
is($table, $result{text5}, "title and text");