]> iEval git - html-element-library.git/blame - t/table2-tr_ld.t
hash_map method about to be public for real
[html-element-library.git] / t / table2-tr_ld.t
CommitLineData
67e78ff2 1# This might look like shell script, but it's actually -*- perl -*-
2# Test the 3 possible look_down calls to table2()
3# a = default
4# b = supplied array ref
5# c = supplied code ref
6
7use strict;
8use lib qw(t/ t/m/);
9
10
11use File::Slurp;
12use Test::More qw(no_plan);
13
14use TestUtils;
15use HTML::TreeBuilder;
16use HTML::Element::Library;
17use Scalar::Listify;
18
19use data::table2;
20
21
22my $o = data::table2->new;
23
24# a - default table_ld
25
26my $root = 't/html/table2-tr_ld-default';
27my $tree = HTML::TreeBuilder->new_from_file("$root.html");
28
29
30my @tr = HTML::Element::Library::ref_or_ld(
31 $tree,
32 ['_tag' => 'tr']
33 );
34
35is (scalar @tr, 16, 'default ld_tr');
36
37# b - arrayref tr_ld
38
39$root = 't/html/table2-tr_ld-arrayref';
40$tree = HTML::TreeBuilder->new_from_file("$root.html");
41
42
43my $tr = HTML::Element::Library::ref_or_ld(
44 $tree,
45 [class => 'findMe']
46 );
47
48my $generated_html = ptree($tr, "$root.gen");
49
50is ($generated_html, File::Slurp::read_file("$root.exp"), $root);
51
52# c - coderef tr_ld
53# removes windows listings before returning @tr
54
55$root = 't/html/table2-tr_ld-coderef';
56$tree = HTML::TreeBuilder->new_from_file("$root.html");
57
58
59@tr = HTML::Element::Library::ref_or_ld(
60 $tree,
61 sub {
62 my ($t) = @_;
63 my @tr = $t->look_down('_tag' => 'tr');
64 my @keep;
65 for my $tr (@tr) {
66
67 my @td = $tr->look_down ('_tag' => 'td') ;
68 my $detached;
69 for my $td (@td) {
70 if (grep { $_ =~ /Windows/ } $td->content_list) {
71 $tr->detach();
72 ++$detached;
73 last;
74 }
75 }
76 push @keep, $tr unless $detached;
77 }
78 @keep;
79 }
80 );
81
82#warn $_->as_HTML, $/ for @tr;
83
84$generated_html = ptree($tree, "$root.gen");
85
86is ($generated_html, File::Slurp::read_file("$root.exp"), $root);
87
This page took 0.028848 seconds and 4 git commands to generate.