Builder
view release on metacpan or search on metacpan
t/builder_xml_pretty.t view on Meta::CPAN
use Test::More tests => 4;
use Builder;
my $builder = Builder->new;
my $xm = $builder->block( 'Builder::XML', { indent => 4, newline => 1 } );
my $expected =
q{<body>
<em>emphasized</em>
<div id="mydiv">
<bold>hello</bold>
<em>world</em>
</div>
</body>
};
##############################################################
# test 1
$xm->body( sub {
$xm->em("emphasized");
$xm->div( { id => 'mydiv' }, $xm->bold('hello'), $xm->em('world') );
});
is $builder->render, $expected, "xml pretty test 1 failed";
##############################################################
# test 2 (same as above but without anon sub)
$xm->body(
$xm->em("emphasized"),
$xm->div( { id => 'mydiv' }, $xm->bold('hello'), $xm->em('world') ),
);
is $builder->render, $expected, "xml pretty test 2 failed";
##############################################################
# test 3 - More complicated test extropolated from real live job
#my $h = $builder->block( 'Builder::XML', indent => 4, newline => 1, open_newline => 0 );
my $n = $builder->block( 'Builder::XML' );
# $h->li( { class => "ui-tabs-nav-item" }, $n->a( { href => "#fragment-1" }, $item ) );
my @issues = ('My Active Issues', 'All Active Issues', 'Unassigned Issues', 'Closed Issues' );
$xm->div(
{ id => 'dash-actions' },
$xm->h1( 'Action Planning' ),
$xm->div( { id => 'myTabs' },
$xm->ul( sub {
my $count;
for my $item ( @issues ) {
$count++;
$xm->li( { class => "ui-tabs-nav-item" }, $n->a( { href => "#fragment-$count" }, $item )->__render__ );
}
}),
$xm->div( { id => 'fragment-1' }, q{
[% INCLUDE dash_actions_table.tt
session.user = 'barry'
table_id = 'table-issue-my'
cols = [ 'id', 'created', 'last_updated', 'owner', 'priority', 'subject' ]
%]}
),
$xm->div( { id => 'fragment-2' }, q{
[% INCLUDE dash_actions_table.tt
table_id = 'table-issue-all'
cols = [ 'id', 'created', 'last_updated', 'owner', 'assigned_to', 'priority', 'subject' ]
%]
}
),
),
$xm->p( q{Create a <a href="[% R('NewAction') %]">new action / issue</a>} ),
);
$expected =
q{<div id="dash-actions">
<h1>Action Planning</h1>
<div id="myTabs">
<ul>
<li class="ui-tabs-nav-item"><a href="#fragment-1">My Active Issues</a></li>
<li class="ui-tabs-nav-item"><a href="#fragment-2">All Active Issues</a></li>
<li class="ui-tabs-nav-item"><a href="#fragment-3">Unassigned Issues</a></li>
<li class="ui-tabs-nav-item"><a href="#fragment-4">Closed Issues</a></li>
</ul>
( run in 3.186 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )