xref: /openbsd-src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_abstract.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1898184e3Ssthen#!/usr/bin/perl
2898184e3Ssthen
3898184e3Ssthenuse strict;
4898184e3Ssthenuse warnings;
5898184e3Ssthen
691f110e0Safresh1use lib 't/lib';
7898184e3Ssthenuse ExtUtils::MakeMaker;
891f110e0Safresh1use File::Temp qw[tempfile];
9898184e3Ssthenuse Test::More 'no_plan';
10898184e3Ssthen
11898184e3Ssthensub test_abstract {
12898184e3Ssthen    my($code, $package, $want, $name) = @_;
13898184e3Ssthen
14898184e3Ssthen    local $Test::Builder::Level = $Test::Builder::Level + 1;
15898184e3Ssthen
16*5759b3d2Safresh1    my $ok = 0;
17*5759b3d2Safresh1    for my $crlf (0, 1) {
1891f110e0Safresh1        my ($fh,$file) = tempfile( DIR => 't', UNLINK => 1 );
19*5759b3d2Safresh1        binmode $fh, $crlf ? ':crlf' : ':raw';
20898184e3Ssthen        print $fh $code;
21898184e3Ssthen        close $fh;
22898184e3Ssthen        # Hack up a minimal MakeMaker object.
23898184e3Ssthen        my $mm = bless { DISTNAME => $package }, "MM";
24898184e3Ssthen        my $have = $mm->parse_abstract($file);
25*5759b3d2Safresh1        $ok += is( $have, $want, "$name :crlf=$crlf" ) ? 1 : 0;
26*5759b3d2Safresh1    }
27898184e3Ssthen    return $ok;
28898184e3Ssthen}
29898184e3Ssthen
30898184e3Ssthen
31898184e3Ssthentest_abstract(<<END, "Foo", "Stuff and things", "Simple abstract");
32898184e3Ssthen=head1 NAME
33898184e3Ssthen
34898184e3SsthenFoo - Stuff and things
35898184e3SsthenEND
36898184e3Ssthen
37898184e3Ssthen
38898184e3Ssthentest_abstract(<<END, "NEXT", "Provide a pseudo-class NEXT (et al) that allows method redispatch", "Name.pm");
39898184e3Ssthen=head1 NAME
40898184e3Ssthen
41898184e3SsthenNEXT.pm - Provide a pseudo-class NEXT (et al) that allows method redispatch
42898184e3SsthenEND
43898184e3Ssthen
44898184e3Ssthen
45898184e3Ssthentest_abstract(<<END, "Compress::Raw::Zlib::FAQ", "Frequently Asked Questions about Compress::Raw::Zlib", "double dash");
46898184e3Ssthen=pod
47898184e3Ssthen
48898184e3SsthenCompress::Raw::Zlib::FAQ -- Frequently Asked Questions about Compress::Raw::Zlib
49898184e3SsthenEND
50898184e3Ssthen
51898184e3Ssthen
52898184e3Ssthentest_abstract(<<END, "Foo", "This is", "Only in POD");
53898184e3Ssthen# =pod
54898184e3Ssthen
55898184e3SsthenFoo - This is not in pod
56898184e3Ssthen
57898184e3Ssthen=cut
58898184e3Ssthen
59898184e3SsthenFoo - This isn't in pod either
60898184e3Ssthen
61898184e3Ssthen=pod
62898184e3Ssthen
63898184e3SsthenFoo - This is
64898184e3Ssthen
65898184e3SsthenFoo - So is this.
66898184e3SsthenEND
67898184e3Ssthen
68898184e3Ssthen
69898184e3Ssthentest_abstract(<<END, "Foo", "the abstract", "more spaces");
70898184e3Ssthen=pod
71898184e3Ssthen
72898184e3SsthenFoo   -  the abstract
73898184e3SsthenEND
746fb12b70Safresh1
756fb12b70Safresh1test_abstract(<<END, "Catalyst::Plugin::Authentication", "Infrastructure plugin for the Catalyst authentication framework.", "contains a line break");
766fb12b70Safresh1=pod
776fb12b70Safresh1
786fb12b70Safresh1=head1 NAME
796fb12b70Safresh1
806fb12b70Safresh1Catalyst::Plugin::Authentication - Infrastructure plugin for the Catalyst
816fb12b70Safresh1authentication framework.
826fb12b70Safresh1END
83