Catalyst-Plugin-BigSitemap
view release on metacpan or search on metacpan
t/package_BigSitemap_SitemapBuilder.t view on Meta::CPAN
use Modern::Perl '2010';
use Try::Tiny;
use DateTime;
use Test::More;
BEGIN {
use_ok 'URI::http';
use_ok 'WWW::Sitemap::XML::URL';
use_ok 'Catalyst::Plugin::BigSitemap::SitemapBuilder'
};
diag "Testing Catalyst::Plugin::BigSitemap::SitemapBuilder module";
# test adding good and bad urls
# make sure failed, urls_count, sitemap_count and failed_count all increment correctly.
{
my $sb = Catalyst::Plugin::BigSitemap::SitemapBuilder->new(
sitemap_base_uri => URI->new('http://localhost/'),
sitemap_name_format => 'sitemap%d.xml'
);
# test adding valid urls in 5 different ways
my $uri_string = 'http://www.google.com';
$sb->add( $uri_string );
cmp_ok( @{$sb->urls}, '==', 1, 'SitemapBuilder->add() with stringified URI should succeed.' );
my $uri = URI->new('http://www.google.com');
$sb->add( $uri );
cmp_ok( @{$sb->urls}, '==', 2, 'SitemapBuilder->add() with URI object should succeed.' );
my %np_string1 = ( loc => $uri_string, );
$sb->add( %np_string1 );
cmp_ok( @{$sb->urls}, '==', 3, 'SitemapBuilder->add() with parameterized loc set of type Str should succeed.' );
my %np_string2 = ( loc => $uri_string, lastmod => '2013-19-09', changefreq => 'always', priority => 1.0 );
$sb->add( %np_string2 );
cmp_ok( @{$sb->urls}, '==', 4, 'SitemapBuilder->add() with full parameterized args specified should succeed.');
my %np_uri = ( loc => $uri );
$sb->add( %np_uri );
cmp_ok( @{$sb->urls}, '==', 5, 'SitemapBuilder->add() with parameterized loc of type URI should succeed.' );
# make sure zero errors, 5 urls and 1 sitemap
cmp_ok( $sb->failed_count, '==', 0, 'SitemapBuilder->faild_count should report 0 after successful adds.');
cmp_ok( $sb->urls_count, '==', 5, 'SitemapBuilder->urls_count() should report 5 after 5 successful calls to add.' );
cmp_ok( $sb->sitemap_count, '==', 1, 'Sitemap_count() should report 1 after 5 successful adds.');
# test adding 2 bad urls
my ( $bad_uri1, $bad_uri2 ) = ( 'I am not a URI', DateTime->now() );
$sb->add( $bad_uri1 );
$sb->add( $bad_uri2 );
cmp_ok( @{$sb->urls}, '==', 5, 'SitemapBuilder->urls should still have 5 elements after 2 invalid adds.' );
cmp_ok( $sb->urls_count, '==', 5, 'SitemapBuilder->urls_count should report the same as the number of elements in URLs array.' );
cmp_ok( $sb->failed_count, '==', 2, 'SitemapBuilder->failed_count should report 2 after 2 invalid adds.' );
cmp_ok( $sb->sitemap_count, '==', 1, 'Sitemap_builder->sitemap_count should still report 1 after 5 successful adds and 2 failed adds.' );
} # incrementing tests
{ # test large number of urls
( run in 1.948 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )