1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
#!/usr/bin/perl
use strict;
use warnings;
use lib 't/lib';
use ExtUtils::MakeMaker;
use File::Temp qw[tempfile];
use Test::More 'no_plan';
sub test_abstract {
my($code, $package, $want, $name) = @_;
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($fh,$file) = tempfile( DIR => 't', UNLINK => 1 );
print $fh $code;
close $fh;
# Hack up a minimal MakeMaker object.
my $mm = bless { DISTNAME => $package }, "MM";
my $have = $mm->parse_abstract($file);
my $ok = is( $have, $want, $name );
return $ok;
}
test_abstract(<<END, "Foo", "Stuff and things", "Simple abstract");
=head1 NAME
Foo - Stuff and things
END
test_abstract(<<END, "NEXT", "Provide a pseudo-class NEXT (et al) that allows method redispatch", "Name.pm");
=head1 NAME
NEXT.pm - Provide a pseudo-class NEXT (et al) that allows method redispatch
END
test_abstract(<<END, "Compress::Raw::Zlib::FAQ", "Frequently Asked Questions about Compress::Raw::Zlib", "double dash");
=pod
Compress::Raw::Zlib::FAQ -- Frequently Asked Questions about Compress::Raw::Zlib
END
test_abstract(<<END, "Foo", "This is", "Only in POD");
# =pod
Foo - This is not in pod
=cut
Foo - This isn't in pod either
=pod
Foo - This is
Foo - So is this.
END
test_abstract(<<END, "Foo", "the abstract", "more spaces");
=pod
Foo - the abstract
END
test_abstract(<<END, "Catalyst::Plugin::Authentication", "Infrastructure plugin for the Catalyst authentication framework.", "contains a line break");
=pod
=head1 NAME
Catalyst::Plugin::Authentication - Infrastructure plugin for the Catalyst
authentication framework.
END
|