# $Id: 04-standard-tests.t 67 2008-06-29 14:17:37Z adam $
use Test::More;
use strict;
use warnings;
my $test_warn;
BEGIN {
eval ' require Test::NoWarnings; ';
if ( $@ ) {
plan( tests => 26 );
undef $test_warn;
}
else {
plan( tests => 27 );
$test_warn = 1;
}
use_ok( 'XML::RSS::Tools' );
}
my $rss_object = XML::RSS::Tools->new;
ok( defined $rss_object, 'Object defined okay' );
isa_ok( $rss_object, 'XML::RSS::Tools', 'Object check okay' );
eval { $rss_object->transform; };
like( $@, qr/No XSLT loaded/, 'No XSLT loaded yet');
ok( !($rss_object->rss_file( 'foo.bar' )), 'Set a sillyfile' );
is( $rss_object->as_string( 'error' ),
'File error: Cannot find foo.bar',
'Correct file error' );
ok( !( $rss_object->rss_uri ), 'No URI oject yet' );
ok( !( $rss_object->rss_uri( "wibble wobble" ) ), 'Impossible uri' );
ok( $rss_object = XML::RSS::Tools->new( version => 0.91 ),
'Created new ojcte okay' );
eval { $rss_object->rss_string( '' ); };
ok( !( $@ ), 'Valid XML string is valid' );
eval { $rss_object->rss_file( './t/test.rdf' ); };
ok( !( $@ ), 'Valid XML file was okay' );
eval { $rss_object->rss_uri( 'file:./t/test.rdf' ); };
ok( !( $@ ), 'valid XML file via URI handler okay' );
eval { $rss_object->xsl_string( "" ); };
ok( !( $@ ), 'Valid XSL string okay' );
eval { $rss_object->xsl_file( './t/test.xsl' ); };
ok( !( $@ ), 'Valid XSL file okay' );
eval { $rss_object->xsl_uri( 'file:./t/test.xsl' ); };
ok( !( $@ ), 'Valid XSL file via URI handler okay' );
eval { $rss_object->transform; };
ok( !( $@ ), 'Transformation okay' );
eval { $rss_object->transform; };
like( $@, qr/Can't transform twice without a change/,
'Transformation duplication error okay' );
my $output = $rss_object->as_string;
my $length = length $output;
ok( $length, 'We got a length of sorts' );
ok( ( $length == 1333 ) || ( $length == 1487 ), 'Length was okay' );
$rss_object->set_version( 0 );
eval { $rss_object->rss_file( './t/test.rdf' ); };
$output = $rss_object->as_string( 'rss' );
$length = length $output;
ok( $length, 'We got a length of sorts' );
ok( ( $length == 3787 ) || ( $length == 3857 ), 'Length was okay' );
$output = $rss_object->as_string( 'xsl' );
$length = length $output;
ok( $length, 'We got a length of sorts' );
is( $length, 1007, 'Length correct' );
is( $rss_object->set_auto_wash( 1 ), 1, 'Autowash is okay' );
is( $rss_object->set_auto_wash(), 1, 'Setting autowash okay' );
is( $rss_object->set_auto_wash( 0 ), 0, 'Setting autowash off okay' );
if ( $test_warn ) {
Test::NoWarnings::had_no_warnings();
}
exit;