#!/usr/bin/perl
# Regression testing for rt.cpan.org
use strict;
BEGIN {
$| = 1;
$^W = 1;
}
use Class::Autouse ':devel';
use File::Spec::Functions ':ALL';
use Test::More tests => 7;
use Test::Inline ();
# Change to the correct directory
chdir catdir( 't', 'data', '09_regression' ) or die "Failed to change to test directory";
#####################################################################
# Regression tests for rt.cpan.org bug #557
# (Test::Inline doesn't catch improper nesting)
{
# Create basic Test::Inline object
my $Inline = My::Inline->new();
isa_ok( $Inline, 'Test::Inline' );
my @errors = '';
# Add the files
my $rv = $Inline->add( 'My/BadPodNesting.pm' );
is( $rv, undef, 'Adding bad file returns undef' );
is_deeply( \@errors, [
'Failed to parse sections: Test::Inline::Section: POD statement \'=begin testing bar\' illegally nested inside of section \'=begin testing foo\''
],
'Bad nesting error is triggered as expected' );
package My::Inline;
use base 'Test::Inline';
sub _error {
shift;
@errors = @_;
undef;
}
1;
}
#####################################################################
# Regression tests for anonymous bug
# "=begin testing SETUP after DDS::Info 1" is not a setup section
{
my $POD = <<'END_POD';
=begin testing SETUP after DDS::Info 1
# This is ok
ok( 1, 'This is true' );
=end testing
END_POD
# Create the Section
my $Section = Test::Inline::Section->new( $POD );
isa_ok( $Section, 'Test::Inline::Section' );
ok( $Section->setup, 'Is a setup section' );
ok( ! $Section->example, 'Is not an example section' );
is( $Section->name, '', 'Does not have a name' );
}
syntax highlighted by Code2HTML, v. 0.9.1