Turn pod-ed out failing tests in t/selector.t into todo tests
[catagits/HTML-Zoom.git] / t / synopsis / zoom.t
CommitLineData
0d8f057e 1use strict;
2use warnings FATAL => 'all';
3use Test::More qw(no_plan);
4
5use HTML::Zoom;
6
7my $template = <<HTML;
8<html>
9 <head>
10 <title>Hello people</title>
11 </head>
12 <body>
13 <h1 id="greeting">Placeholder</h1>
14 <div id="list">
15 <span>
16 <p>Name: <span class="name">Bob</span></p>
17 <p>Age: <span class="age">23</span></p>
18 </span>
19 <hr class="between" />
20 </div>
21 </body>
22</html>
23HTML
24
25my $output = HTML::Zoom
26 ->from_html($template)
27 ->select('title, #greeting')->replace_content('Hello world & dog!')
28 ->select('#list')->repeat_content(
29 [
30 sub {
31 $_->select('.name')->replace_content('Matt')
32 ->select('.age')->replace_content('26')
33 },
34 sub {
35 $_->select('.name')->replace_content('Mark')
36 ->select('.age')->replace_content('0x29')
37 },
38 sub {
39 $_->select('.name')->replace_content('Epitaph')
40 ->select('.age')->replace_content('<redacted>')
41 },
42 ],
43 { repeat_between => '.between' }
44 )
45 ->to_html;
46
47
48my $expect = <<HTML;
49<html>
50 <head>
51 <title>Hello world &amp; dog!</title>
52 </head>
53 <body>
54 <h1 id="greeting">Hello world &amp; dog!</h1>
55 <div id="list">
56 <span>
57 <p>Name: <span class="name">Matt</span></p>
58 <p>Age: <span class="age">26</span></p>
59 </span>
60 <hr class="between" />
61 <span>
62 <p>Name: <span class="name">Mark</span></p>
63 <p>Age: <span class="age">0x29</span></p>
64 </span>
65 <hr class="between" />
66 <span>
67 <p>Name: <span class="name">Epitaph</span></p>
68 <p>Age: <span class="age">&lt;redacted&gt;</span></p>
69 </span>
70
71 </div>
72 </body>
73</html>
74HTML
75is($output, $expect, 'Synopsis code works ok');
76