File: 30_tree.t

package info (click to toggle)
libhtml-tableextract-perl 2.15-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 284 kB
  • sloc: perl: 1,558; makefile: 2
file content (69 lines) | stat: -rwxr-xr-x 1,936 bytes parent folder | download | duplicates (5)
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');
}