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 )