/XML-FeedPP/t/45_cdata_multi.t
http://xml-treepp.googlecode.com/ · Raku · 53 lines · 42 code · 3 blank · 8 comment · 0 complexity · a8fd2f351e50743bb58fd28bbe04d6c4 MD5 · raw file
- # ----------------------------------------------------------------
- use strict;
- use Test::More tests => 23;
- BEGIN { use_ok('XML::FeedPP') };
- # ----------------------------------------------------------------
- my $url = "http://www.kawa.net/";
- my $cate1 = "hoge";
- my $cate2 = "pomu";
- my $cate3 = "foobar";
- my $catem = [ \$cate1, \$cate2, \$cate3 ];
- my $caten = scalar @$catem;
- # ----------------------------------------------------------------
- my $feed0 = XML::FeedPP::RSS->new();
- $feed0->link( $url );
- my $item0 = $feed0->add_item( $url );
- $item0->category( $catem );
- ok( ref $item0->category(), "init multi ref" );
- my $source = $feed0->to_string();
- like( $source, qr/><!\[CDATA\[\Q$cate1\E\]\]></s, "init multi 1/3" );
- like( $source, qr/><!\[CDATA\[\Q$cate2\E\]\]></s, "init multi 2/3" );
- like( $source, qr/><!\[CDATA\[\Q$cate3\E\]\]></s, "init multi 3/3" );
- # ----------------------------------------------------------------
- my $feeds = [
- XML::FeedPP::RDF->new(),
- XML::FeedPP::RSS->new(),
- # XML::FeedPP::Atom::Atom10->new(), # Atom 1.0's <category> doesn't use CDATA
- ];
- # ----------------------------------------------------------------
- foreach my $feed1 ( @$feeds ) {
- my $type = ref $feed1;
- $feed1->merge( $source );
- my $item1 = $feed1->get_item(0);
- my $icate = $item1->category();
- ok( ref $icate, "$type load ref" );
- is( scalar @$icate, $caten, "$type load count" );
- $item1->category( \$cate1 );
- is( $item1->category(), $cate1, "$type one" );
- like( $feed1->to_string(), qr/><!\[CDATA\[\Q$cate1\E\]\]></s, "$type one source" );
- $item1->category( $catem );
- my $jcate = $item1->category();
- ok( ref $jcate, "$type multi ref" );
- is( scalar @$jcate, $caten, "$type multi count" );
- $source = $feed1->to_string();
- like( $source, qr/><!\[CDATA\[\Q$cate1\E\]\]></s, "$type multi 1/3" );
- like( $source, qr/><!\[CDATA\[\Q$cate2\E\]\]></s, "$type multi 2/3" );
- like( $source, qr/><!\[CDATA\[\Q$cate3\E\]\]></s, "$type multi 3/3" );
- }
- # ----------------------------------------------------------------
- ;1;
- # ----------------------------------------------------------------