File: 05b_plugins_and_c3.t

package info (click to toggle)
libdancer-perl 1.3521%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,460 kB
  • sloc: perl: 7,436; xml: 2,211; sh: 54; makefile: 32; sql: 5
file content (50 lines) | stat: -rw-r--r-- 1,210 bytes parent folder | download | duplicates (5)
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
use strict;
use warnings;
use Test::More import => ['!pass'];
plan tests => 3;

SKIP: {
    use Dancer ':syntax';

    # This plugin already inherits from Data::Dumper
    use File::Spec;
    use lib File::Spec->catdir( 't', 'lib' );

    eval { require TestPluginMRO;
           TestPluginMRO->import };

    if (my $error = $@) {

        diag($error);

        if ($error =~ /Can't locate mro\.pm/) {

            # normal error, skip 3
            skip 'mro is not available on this machine', 3;

        } else {

            fail('plugins can be used under the C3 MRO');
            skip 'no point in running the rest', 2;

        }

    } else {

        # this can't be pass because Dancer exports pass() :/
        ok(1, 'plugins can be used under the C3 MRO');

        # and the plugin otherwise behaves.  these tests are cribbed
        # from the existing 05_plugins_and_OO.t
    
        # Make sure the keyword is well registerd
        is(some_other_plugin_keyword(), 42, 'plugin keyword is exported');

        # Make sure the plugin is still a Data::Dumper child
        my $d = TestPluginMRO->new( [ 1, 2 ], [ qw(foo bar) ] );
        is($d->Dump(), "\$foo = 1;\n\$bar = 2;\n");


    }

}