XML-NewsML_G2
view release on metacpan or search on metacpan
t/07-Package_Item.t view on Meta::CPAN
'create Scheme Manager' );
ok( my $writer = XML::NewsML_G2::Writer::Package_Item->new(
package_item => $pi,
scheme_manager => $sm,
),
'create package writer'
);
ok( my $dom = $writer->create_dom(), 'package writer creates DOM' );
ok( my $xpc = XML::LibXML::XPathContext->new($dom),
'create XPath context for DOM tree' );
basic_checks($xpc);
validate_g2( $dom, undef, 'PackageItem' );
#diag($dom->serialize(1));
# for slideshows: create several news items + images, each pair in its own group
my $title = 'Slideshow of the day';
ok( $pi = XML::NewsML_G2::Package_Item->new(
title => $title,
root_role => 'slideshow',
%args
),
'create Package_Item'
);
$pi->root_group->mode('sequential');
for my $id ( 1 .. 4 ) {
$text = create_ni_text( id => $id );
$pic = create_ni_picture( id => $id );
my $g = XML::NewsML_G2::Group->new( role => 'slide' );
$g->add_item( $text, $pic );
$pi->add_to_root_group($g);
}
# and add a final inner group, just for the kicks
my $last_group = $pi->root_group->items->[-1];
$last_group->add_item( my $inner_group =
XML::NewsML_G2::Group->new( role => 'slide-in-a-slide' ) );
$text = create_ni_text( id => 42 );
$pic = create_ni_picture( id => 42 );
$inner_group->add_item( $text, $pic );
ok( $writer = XML::NewsML_G2::Writer::Package_Item->new(
package_item => $pi,
scheme_manager => $sm,
),
'create package writer'
);
ok( $dom = $writer->create_dom(), 'package writer creates DOM' );
ok( $xpc = XML::LibXML::XPathContext->new($dom),
'create XPath context for DOM tree'
);
basic_checks($xpc);
is( $xpc->find('//nar:packageItem/nar:itemMeta/nar:title'),
$title, 'package title correct' );
ok( $xpc->find('//nar:group[@id="root_group"]/nar:groupRef'),
'slideshow has grouprefs' );
ok( $xpc->find('//nar:group[@id="group_4"]/nar:groupRef'),
'last group has groupref' );
is( $xpc->findvalue('//nar:group[@id="root_group"]/@role'),
'apagroup:slideshow', 'slideshow has correct role' );
is( $xpc->findvalue('//nar:group[@id="root_group"]/@mode'),
'pgrmod:seq', 'slideshow has correct mode' );
validate_g2( $dom, undef, 'PackageItemSlideshow' );
#diag($dom->serialize(1));
done_testing;
( run in 0.826 second using v1.01-cache-2.11-cpan-5511b514fd6 )