Add ARM files
[dh-make-perl] / dev / arm / libperl-critic-perl / libperl-critic-perl-1.088 / t / 05_utils_pod.t
diff --git a/dev/arm/libperl-critic-perl/libperl-critic-perl-1.088/t/05_utils_pod.t b/dev/arm/libperl-critic-perl/libperl-critic-perl-1.088/t/05_utils_pod.t
new file mode 100644 (file)
index 0000000..4d574dd
--- /dev/null
@@ -0,0 +1,696 @@
+#!perl
+
+##############################################################################
+#      $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/05_utils_pod.t $
+#     $Date: 2008-06-06 00:48:04 -0500 (Fri, 06 Jun 2008) $
+#   $Author: clonezone $
+# $Revision: 2416 $
+##############################################################################
+
+use 5.006001;
+use strict;
+use warnings;
+
+use English qw< -no_match_vars >;
+use Readonly;
+use Carp qw< confess >;
+
+use Test::More tests => 62;
+
+#-----------------------------------------------------------------------------
+
+Readonly::Scalar my $EXCEPTION_MESSAGE_REGEX =>
+    qr<malformed [ ] name [ ] section>xmsi;
+
+#-----------------------------------------------------------------------------
+
+BEGIN {
+    use_ok('Perl::Critic::Utils::POD', qw< :all >)
+        or confess 'No point in continuing.';
+}
+
+
+can_ok('main', 'get_pod_file_for_module');
+can_ok('main', 'get_raw_pod_section_from_file');
+can_ok('main', 'get_raw_pod_section_from_filehandle');
+can_ok('main', 'get_raw_pod_section_from_string');
+can_ok('main', 'get_raw_pod_section_for_module');
+can_ok('main', 'get_pod_section_from_file');
+can_ok('main', 'get_pod_section_from_filehandle');
+can_ok('main', 'get_pod_section_from_string');
+can_ok('main', 'get_pod_section_for_module');
+can_ok('main', 'trim_raw_pod_section');
+can_ok('main', 'trim_pod_section');
+can_ok('main', 'get_raw_module_abstract_from_file');
+can_ok('main', 'get_raw_module_abstract_from_filehandle');
+can_ok('main', 'get_raw_module_abstract_from_string');
+can_ok('main', 'get_raw_module_abstract_for_module');
+can_ok('main', 'get_module_abstract_from_file');
+can_ok('main', 'get_module_abstract_from_filehandle');
+can_ok('main', 'get_module_abstract_from_string');
+can_ok('main', 'get_module_abstract_for_module');
+
+
+{
+    my $code = q<my $x = 3;>;
+
+    my $pod = get_raw_pod_section_from_string( $code, 'SYNOPSIS' );
+
+    is(
+        $pod,
+        undef,
+        qq<get_raw_pod_section_from_string($code, 'SYNOPSIS')>,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'SYNOPSIS' );
+
+    is(
+        $pod,
+        undef,
+        qq<get_pod_section_from_string($code, 'SYNOPSIS')>,
+    );
+}
+
+
+{
+    my $code = <<'END_CODE';
+=pod
+END_CODE
+
+    my $pod = get_raw_pod_section_from_string( $code, 'SYNOPSIS' );
+
+    is(
+        $pod,
+        undef,
+        q<get_raw_pod_section_from_string('=pod', 'SYNOPSIS')>,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'SYNOPSIS' );
+
+    is(
+        $pod,
+        undef,
+        q<get_pod_section_from_string('=pod', 'SYNOPSIS')>,
+    );
+}
+
+
+{
+    my $code = <<'END_CODE';
+=pod
+
+=head1 FOO
+
+Some plain text.
+
+=cut
+END_CODE
+
+    my $pod = get_raw_pod_section_from_string( $code, 'FOO' );
+
+    my $expected = <<'END_EXPECTED';
+=head1 FOO
+
+Some plain text.
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q<get_raw_pod_section_from_string('=head1 FOO Some plain text.', 'FOO')>,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'FOO' );
+
+    $expected = <<'END_EXPECTED';
+FOO
+    Some plain text.
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q<get_pod_section_from_string('=head1 FOO Some plain text.', 'FOO')>,
+    );
+}
+
+
+{
+    my $code = <<'END_CODE';
+=pod
+
+=head1 FOO
+
+Some C<escaped> text.
+
+=cut
+END_CODE
+
+    my $pod = get_raw_pod_section_from_string( $code, 'FOO' );
+
+    my $expected = <<'END_EXPECTED';
+=head1 FOO
+
+Some C<escaped> text.
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q/get_raw_pod_section_from_string('=head1 FOO Some C<escaped> text.', 'FOO')/,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'FOO' );
+
+    $expected = <<'END_EXPECTED';
+FOO
+    Some `escaped' text.
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q/get_pod_section_from_string('=head1 FOO Some C<escaped> text.', 'FOO')/,
+    );
+}
+
+
+{
+    my $code = <<'END_CODE';
+=pod
+
+=head1 FOO
+
+Some plain text.
+
+=head1 BAR
+
+=cut
+END_CODE
+
+    my $pod = get_raw_pod_section_from_string( $code, 'FOO' );
+
+    my $expected = <<'END_EXPECTED';
+=head1 FOO
+
+Some plain text.
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q<get_raw_pod_section_from_string('=head1 FOO ... =head1 BAR', 'FOO')>,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'FOO' );
+
+    $expected = <<'END_EXPECTED';
+FOO
+    Some plain text.
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q<get_pod_section_from_string('=head1 FOO ... =head1 BAR', 'FOO')>,
+    );
+}
+
+
+{
+    my $code = <<'END_CODE';
+=pod
+
+=head1 FOO
+
+Some plain text.
+
+=head2 BAR
+
+=cut
+END_CODE
+
+    my $pod = get_raw_pod_section_from_string( $code, 'FOO' );
+
+    my $expected = <<'END_EXPECTED';
+=head1 FOO
+
+Some plain text.
+
+=head2 BAR
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q<get_raw_pod_section_from_string('=head1 FOO ... =head2 BAR', 'FOO')>,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'FOO' );
+
+    $expected = <<'END_EXPECTED';
+FOO
+    Some plain text.
+
+  BAR
+
+END_EXPECTED
+    is(
+        $pod,
+        $expected,
+        q<get_pod_section_from_string('=head1 FOO ... =head2 BAR', 'FOO')>,
+    );
+}
+
+{
+    my $code = <<'END_CODE';
+=pod
+
+=head2 FOO
+
+Some plain text.
+
+=cut
+END_CODE
+
+    my $pod = get_raw_pod_section_from_string( $code, 'FOO' );
+
+    is(
+        $pod,
+        undef,
+        q<get_raw_pod_section_from_string('=head2 FOO Some plain text.', 'FOO')>,
+    );
+
+    $pod = get_pod_section_from_string( $code, 'FOO' );
+
+    is(
+        $pod,
+        undef,
+        q<get_pod_section_from_string('=head2 FOO Some plain text.', 'FOO')>,
+    );
+}
+
+#-----------------------------------------------------------------------------
+
+{
+    my $original = <<'END_POD';
+=head1 LYRICS
+
+We like talking dirty. We smoke and we drink. We're KMFDM and all other bands
+stink.
+
+END_POD
+
+    my $trimmed = trim_raw_pod_section( $original );
+
+    my $expected =
+        q<We like talking dirty. We smoke and we drink. >
+        . qq<We're KMFDM and all other bands\n>
+        . q<stink.>;
+
+    is(
+        $trimmed,
+        $expected,
+        'trim_raw_pod_section() with section header',
+    );
+
+    $trimmed = trim_pod_section( $original );
+
+    is(
+        $trimmed,
+        $expected,
+        'trim_pod_section() with section header',
+    );
+}
+
+
+{
+    my $original = <<'END_VOCAL_SAMPLE';
+
+You see, I believe in the noble, aristocratic art of doin' absolutely nothin'.
+And I hope someday to be in a position where I can do even less.
+
+END_VOCAL_SAMPLE
+
+    my $trimmed = trim_raw_pod_section( $original );
+
+    my $expected =
+        q<You see, I believe in the noble, aristocratic art of doin' >
+        . qq<absolutely nothin'.\n>
+        . q<And I hope someday to be in a position where I can do even >
+        . q<less.>;
+
+    is(
+        $trimmed,
+        $expected,
+        'trim_raw_pod_section() without section header',
+    );
+
+    $trimmed = trim_pod_section( $original );
+
+    is(
+        $trimmed,
+        $expected,
+        'trim_pod_section() without section header',
+    );
+}
+
+
+{
+    my $original = <<'END_INDENTATION';
+
+    Some indented text.
+
+END_INDENTATION
+
+    my $trimmed = trim_raw_pod_section( $original );
+
+    my $expected = q<Some indented text.>;
+
+    is(
+        $trimmed,
+        $expected,
+        'trim_raw_pod_section() indented',
+    );
+
+    $trimmed = trim_pod_section( $original );
+
+    $expected = q<    > . $expected;
+
+    is(
+        $trimmed,
+        $expected,
+        'trim_pod_section() indented',
+    );
+}
+
+#-----------------------------------------------------------------------------
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Stupendous::Module - An abstract.
+
+END_MODULE
+
+    my $expected = q<An abstract.>;
+
+    my $result = get_raw_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        $expected,
+        q<get_raw_module_abstract_from_string() with proper abstract>,
+    );
+
+    $result = get_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        $expected,
+        q<get_module_abstract_from_string() with proper abstract>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Stupendous::Code::Module - An abstract involving C<$code>.
+
+END_MODULE
+
+    my $expected = q<An abstract involving C<$code>.>;
+
+    my $result = get_raw_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        $expected,
+        q<get_raw_module_abstract_from_string() with proper abstract>,
+    );
+
+    $expected = q<An abstract involving `$code'.>;
+
+    $result = get_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        $expected,
+        q<get_module_abstract_from_string() with proper abstract>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NOT NAME
+
+There's nobody home.
+
+END_MODULE
+
+    my $result = get_raw_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_raw_module_abstract_from_string() with no name section>,
+    );
+
+    $result = get_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_module_abstract_from_string() with no name section>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+=head1 DESCRIPTION
+
+END_MODULE
+
+    my $result = get_raw_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_raw_module_abstract_from_string() without NAME section content>,
+    );
+
+    $result = get_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_module_abstract_from_string() without NAME section content>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Not::So::Stupendous::Module
+
+END_MODULE
+
+    my $result = get_raw_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_raw_module_abstract_from_string() with no abstract>,
+    );
+
+    $result = get_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_module_abstract_from_string() with no abstract>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Not::So::Stupendous::Module -
+
+END_MODULE
+
+    my $result = get_raw_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_raw_module_abstract_from_string() with hyphen but no abstract>,
+    );
+
+    $result = get_module_abstract_from_string( $source );
+
+    is(
+        $result,
+        undef,
+        q<get_module_abstract_from_string() with hyphen but no abstract>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Not::So::Stupendous::Module No hyphen.
+
+END_MODULE
+
+    test_exception_from_get_raw_module_abstract_from_string(
+        $source, q<with abstract but no hyphen>,
+    );
+
+    test_exception_from_get_module_abstract_from_string(
+        $source, q<with abstract but no hyphen>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Not::So::Stupendous::Module -- Double hyphen.
+
+END_MODULE
+
+    test_exception_from_get_raw_module_abstract_from_string(
+        $source, q<with double hyphen>,
+    );
+
+    test_exception_from_get_module_abstract_from_string(
+        $source, q<with double hyphen>,
+    );
+}
+
+
+{
+    my $source = <<'END_MODULE';
+
+=head1 NAME
+
+A::Not::So::Stupendous::Module - Abstract goes across
+multiple lines.
+
+END_MODULE
+
+    test_exception_from_get_raw_module_abstract_from_string(
+        $source, q<with multiple lines>,
+    );
+
+# Cannot do this test: Pod::PlainText merges the lines.
+#    test_exception_from_get_module_abstract_from_string(
+#        $source, q<with multiple lines>,
+#    );
+}
+
+#-----------------------------------------------------------------------------
+
+sub test_exception_from_get_raw_module_abstract_from_string {
+    my ($source, $name) = @_;
+
+    my $result;
+    my $message_like_name =
+        qq<Got expected message for get_raw_module_abstract_from_string() $name>;
+
+    local $EVAL_ERROR = undef;
+    eval {
+        $result = get_raw_module_abstract_from_string( $source );
+    };
+    _test_exception_from_get_module_abstract_from_string(
+        $source, $name, $result, $message_like_name,
+    );
+
+    return;
+}
+
+sub test_exception_from_get_module_abstract_from_string {
+    my ($source, $name) = @_;
+
+    my $result;
+    my $message_like_name =
+        qq<Got expected message for get_module_abstract_from_string() $name>;
+
+    local $EVAL_ERROR = undef;
+    eval {
+        $result = get_module_abstract_from_string( $source );
+    };
+    _test_exception_from_get_module_abstract_from_string(
+        $source, $name, $result, $message_like_name,
+    );
+
+    return;
+}
+
+sub _test_exception_from_get_module_abstract_from_string {
+    my ($source, $name, $result, $message_like_name) = @_;
+
+    my $eval_error = $EVAL_ERROR;
+    my $exception = Perl::Critic::Exception::Fatal::Generic->caught();
+
+    if (
+        ok(
+            ref $exception,
+            qq<Got the right kind of exception for get_module_abstract_from_string() $name>,
+        )
+    ) {
+        like( $exception->message(), $EXCEPTION_MESSAGE_REGEX, $message_like_name );
+    }
+    else {
+        diag( 'Result: ', (defined $result ? ">$result<" : '<undef>') );
+        if ($eval_error) {
+            diag(
+                qq<However, did get an exception: $eval_error>,
+            );
+            like( $eval_error, $EXCEPTION_MESSAGE_REGEX, $message_like_name );
+        }
+        else {
+            fail($message_like_name);
+        }
+    }
+
+    return;
+}
+
+#-----------------------------------------------------------------------------
+
+# ensure we run true if this test is loaded by
+# t/05_utils_pod.t_without_optional_dependencies.t
+1;
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 78
+#   indent-tabs-mode: nil
+#   c-indentation-style: bsd
+# End:
+# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :