File: no-clobbering.t

package info (click to toggle)
libdancer2-perl 0.400001%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,580 kB
  • sloc: perl: 8,461; makefile: 9
file content (63 lines) | stat: -rw-r--r-- 1,225 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
51
52
53
54
55
56
57
58
59
60
61
62
63
use strict;
use warnings;

use Test::More;

BEGIN {
    package 
        Dancer2::Plugin::Foo;

    use Dancer2::Plugin;

    plugin_keywords 'from_config', 'from_plugin_setting', 'from_indirect';

    sub from_config :PluginKeyword {
        $_[0]->config->{oops};
    }

    sub from_plugin_setting :PluginKeyword {
        plugin_setting()->{oops};
    }

    sub from_indirect :PluginKeyword {
        _indirect();
    }

    sub _indirect {
        plugin_setting()->{oops};
    }
}

{
    package 
        Alpha;

    use Dancer2 '!pass';
    use Test::More;

    dancer_app->config->{plugins}{Foo}{oops} = 'alpha';

    use Dancer2::Plugin::Foo;

    is from_config()         => 'alpha', 'alpha from config';
    is from_plugin_setting() => 'alpha', 'alpha from plugin_setting';
    is from_indirect()       => 'alpha', 'alpha from indirect';

}
{
    package 
        Beta;

    use Dancer2 '!pass';
    use Test::More;

    dancer_app->config->{plugins}{Foo}{oops} = 'beta';

    use Dancer2::Plugin::Foo;

    is from_config()         => 'beta', 'beta from config';
    is from_plugin_setting() => 'beta', 'beta from plugin_setting';
    is from_indirect()       => 'beta', 'beta from indirect';
}

done_testing();