1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#!/usr/bin/perl
my $test_count;
BEGIN { $test_count = 126 }
use strict;
use lib './lib';
use Test::More tests => $test_count;
use FindBin;
use lib $FindBin::RealBin;
use testload;
my $et_version = '1.17';
my($tb_present, $et_present);
eval "use HTML::TreeBuilder";
$tb_present = !$@;
eval "use HTML::ElementTable $et_version";
$et_present = !$@;
SKIP: {
skip "HTML::TreeBuilder not installed",
$test_count unless $tb_present;
skip "HTML::ElementTable $et_version not installed",
$test_count unless $et_present;
use_ok("HTML::TableExtract", qw(tree));
my $file = "$Dat_Dir/gnarly.html";
my $label = 'element table';
my $te = HTML::TableExtract->new();
isa_ok($te, 'HTML::TreeBuilder', "$label - HTML::TableExtract");
ok($te->parse_file($file), "$label (parse_file)");
my @tablestates = $te->tables;
cmp_ok(@tablestates, '==', 1, "$label (extract count)");
good_gnarly_data($_, "$label (data)") foreach @tablestates;
my $tree = $te->tree;
ok($tree, 'treetop');
isa_ok($tree, 'HTML::Element');
foreach my $ts ($te->tables) {
my $tree = $ts->tree;
ok($tree, 'tabletop');
isa_ok($tree, 'HTML::ElementTable');
}
local *FH;
open(FH, '<', $file) or die "Oops opening $file : $!\n";
my $hstr = join('', <FH>);
close(FH);
$hstr =~ s/\n//gm;
$te->_attribute_purge;
my $estr = $te->elementify->as_HTML;
$estr =~ s/\n//gm;
$estr =~ s/\"//gm;
cmp_ok($estr, 'eq', $hstr, 'mass html comp');
# TREE() gets called during header extractions, make sure it does
$label .= ' (header)';
$te = HTML::TableExtract->new(
headers => [qr|\(0,1\) \[2,4\]|],
);
ok($te->parse_file($file), "$label (parse_file)");
$tree = $te->tree;
ok($tree, 'treetop');
isa_ok($tree, 'HTML::Element');
my $table = $te->first_table_found;
good_gnarly_data($table, "$label (data)");
$tree = $table->tree;
ok($tree, 'tabletop');
isa_ok($tree, 'HTML::ElementTable');
}
|