Builder
    
    
  
  
  
view release on metacpan or search on metacpan
t/builder_xml_basic.t view on Meta::CPAN
use Test::More tests => 5;
use Builder;
my $builder = Builder->new();
my $xm = $builder->block( 'Builder::XML' );
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 test 1 failed";
# test 2
$xm->body(
    $xm->em("emphasized"),
    $xm->div( { id => 'mydiv' }, sub {
        $xm->bold('hello'); $xm->em('world');
    }),
);
is $builder->render, $expected, "xml test 2 failed";
# test 3
$xm->test('hello');
my $zz = $builder->render;
$xm->body( sub {
    $xm->em("emphasized");
    $xm->div( { id => 'mydiv' },
        $xm->bold('hello'),
        $xm->em('world'),
        $zz,
        $xm->div( sub {
            $xm->p('para'); 
            $xm->__say__($zz);
        }),
    );
});
$expected = q{<body><em>emphasized</em><div id="mydiv"><bold>hello</bold><em>world</em><test>hello</test><div><p>para</p><test>hello</test></div></div></body>};
is $builder->render, $expected, "xml test 3 failed";
# test 4
# parameter(s) are content  =>  element text
$xm->p( 'one', 'two', 'and three' );
is $builder->render, q{<p>one two and three</p>}, "xml test 4 failed";
# test 5
t/builder_xml_namespace.t view on Meta::CPAN
use Test::More tests => 4;
use Builder;
my $builder = Builder->new();
my $xm = $builder->block( 'Builder::XML', { namespace => 'foo', qualified_attr => 0 } );
my $expected = q{<foo:body><foo:em>emphasized</foo:em><foo:div id="mydiv"><foo:bold>hello</foo:bold><foo:em>world</foo:em></foo:div></foo:body>};
# test 1
$xm->body( sub {
    $xm->em("emphasized");
    $xm->div( { id => 'mydiv' }, $xm->bold('hello'), $xm->em('world') );
});
is $builder->render, $expected, "xml test 1";
# test2
my $xm2 = $builder->block( 'Builder::XML', { namespace => 'foo', qualified_attr => 1 } );
$expected = q{<foo:body><foo:em>emphasized</foo:em><foo:div foo:id="mydiv"><foo:bold>hello</foo:bold><foo:em>world</foo:em></foo:div></foo:body>};
$xm2->body( sub {
    $xm2->em("emphasized");
    $xm2->div( { id => 'mydiv' }, $xm2->bold('hello'), $xm2->em('world') );
});
is $builder->render, $expected, "xml test 2";
# test 3
$expected = q{<foo:body xmlns:foo="http://www.w3.org/TR/REC-html40"><foo:em>emphasized</foo:em><foo:div id="mydiv"><foo:bold>hello</foo:bold><foo:em>world</foo:em></foo:div></foo:body>};
$xm->body( { _xmlns_ => "http://www.w3.org/TR/REC-html40" },
    sub {
    $xm->em("emphasized");
    $xm->div( { id => 'mydiv' }, $xm->bold('hello'), $xm->em('world') );
});
is $builder->render, $expected, "xml test 3";
# test 4
$expected = q{<foo:body xmlns:foo="http://www.w3.org/TR/REC-html40"><foo:em>emphasized</foo:em><foo:div foo:id="mydiv"><foo:bold>hello</foo:bold><foo:em>world</foo:em></foo:div></foo:body>};
$xm2->body( { _xmlns_ => "http://www.w3.org/TR/REC-html40" },
    sub {
    $xm2->em("emphasized");
    $xm2->div( { id => 'mydiv' }, $xm2->bold('hello'), $xm2->em('world') );
});
is $builder->render, $expected, "xml test 4";
t/builder_xml_output.t view on Meta::CPAN
 
my $fh = IO::Scalar->new( \$got );   # so use IO::Scalar insteead
my $builder = Builder->new( output => $fh );
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 $got, $expected, "xml ouput test 1 failed";
##############################################################
# test 2
$expected.= 
q{<body>
t/builder_xml_pretty.t view on Meta::CPAN
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 ) );
( run in 1.664 second using v1.01-cache-2.11-cpan-5dc5da66d9d )