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 )