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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
#!/usr/bin/perl -w
use strict;
use lib 't/lib';
use MBTest tests => 16;
use Encode 'encode';
blib_load('Module::Build::PodParser');
#########################
{
open my $fh, '<', \<<'EOF';
=head1 NAME
Foo::Bar - Perl extension for blah blah blah
=head1 AUTHOR
C<Foo::Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.
Home page: http://example.com/~eh/
=cut
EOF
my $pp = Module::Build::PodParser->new(fh => $fh);
ok $pp, 'object created';
is $pp->get_author->[0], 'C<Foo::Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.', 'author';
is $pp->get_abstract, 'Perl extension for blah blah blah', 'abstract';
}
{
# Try again without a valid author spec
open my $fh, '<', \<<'EOF';
=head1 NAME
Foo::Bar - Perl extension for blah blah blah
=cut
EOF
my $pp = Module::Build::PodParser->new(fh => $fh);
ok $pp, 'object created';
is_deeply $pp->get_author, [], 'author';
is $pp->get_abstract, 'Perl extension for blah blah blah', 'abstract';
}
{
# Try again with mixed-case =head1s.
open my $fh, '<', \<<'EOF';
=head1 Name
Foo::Bar - Perl extension for blah blah blah
=head1 Author
C<Foo::Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.
Home page: http://example.com/~eh/
=cut
EOF
my $pp = Module::Build::PodParser->new(fh => $fh);
ok $pp, 'object created';
is $pp->get_author->[0], 'C<Foo::Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.', 'author';
is $pp->get_abstract, 'Perl extension for blah blah blah', 'abstract';
}
{
# Now with C<Module::Name>
open my $fh, '<', \<<'EOF';
=head1 Name
C<Foo::Bar> - Perl extension for blah blah blah
=head1 Author
C<Foo::Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.
Home page: http://example.com/~eh/
=cut
EOF
my $pp = Module::Build::PodParser->new(fh => $fh);
ok $pp, 'object created';
is $pp->get_author->[0], 'C<Foo::Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.', 'author';
is $pp->get_abstract, 'Perl extension for blah blah blah', 'abstract';
}
{
open my $fh, '<', \<<'EOF';
=head1 NAME
Foo_Bar - Perl extension for eating pie
=head1 AUTHOR
C<Foo_Bar> was written by Engelbert Humperdinck I<E<lt>eh@example.comE<gt>> in 2004.
Home page: http://example.com/~eh/
=cut
EOF
my $pp = Module::Build::PodParser->new(fh => $fh);
ok $pp, 'object created';
is $pp->get_abstract, 'Perl extension for eating pie', 'abstract';
}
{
open my $fh, '<', \ encode 'UTF-8', <<"EOF";
=encoding utf8
=head1 NAME
Foo_Bar - I \x{2764} Perl
=head1 AUTHOR
C<Foo_Bar> was written by Engelbert Humperdinck I<E<lt>eh\@example.comE<gt>> in 2004.
Home page: http://example.com/~eh/
=cut
EOF
my $pp = Module::Build::PodParser->new(fh => $fh);
ok $pp, 'object created';
is $pp->get_abstract, "I \x{2764} Perl", 'abstract with unicode';
}
|