first commit
[html-element-library.git] / t / table2-tr_ld.t
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
7 use strict;
8 use lib qw(t/ t/m/);
9
10
11 use File::Slurp;
12 use Test::More qw(no_plan);
13
14 use TestUtils;
15 use HTML::TreeBuilder;
16 use HTML::Element::Library;
17 use Scalar::Listify;
18
19 use data::table2;
20
21
22 my $o = data::table2->new;
23
24 # a - default table_ld
25
26 my $root = 't/html/table2-tr_ld-default';
27 my $tree = HTML::TreeBuilder->new_from_file("$root.html");
28
29
30 my @tr = HTML::Element::Library::ref_or_ld(
31 $tree,
32 ['_tag' => 'tr']
33 );
34
35 is (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
43 my $tr = HTML::Element::Library::ref_or_ld(
44 $tree,
45 [class => 'findMe']
46 );
47
48 my $generated_html = ptree($tr, "$root.gen");
49
50 is ($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
86 is ($generated_html, File::Slurp::read_file("$root.exp"), $root);
87
This page took 0.02258 seconds and 4 git commands to generate.