403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.7
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/thread-self/root/usr/share/doc/perl-Class-Method-Modifiers/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/thread-self/root/usr/share/doc/perl-Class-Method-Modifiers/t/002-cache.t
use strict;
use warnings;
use Test::More 0.88;
use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';

my $orig;
my $code = sub { die };

do {
    package Class;
    use Class::Method::Modifiers;

    sub method {}
    $orig = Class->can('method');

    before method => $code;
};


is_deeply(\%Class::Method::Modifiers::MODIFIER_CACHE, {
    Class => {
        method => {
            before  => [$code],
            after   => [],
            around  => [],
            orig    => $orig,
            wrapped => $orig,
        },
    },
});

my $code2 = sub { 1 + 1 };

do {
    package Child;
    BEGIN { our @ISA = 'Class' }
    use Class::Method::Modifiers;

    after method => $code2;
};

my $fake = $Class::Method::Modifiers::MODIFIER_CACHE{Child}{method}{wrapped};

is_deeply(\%Class::Method::Modifiers::MODIFIER_CACHE, {
    Class => {
        method => {
            before  => [$code],
            after   => [],
            around  => [],
            orig    => $orig,
            wrapped => $orig,
        },
    },
    Child => {
        method => {
            before  => [],
            after   => [$code2],
            around  => [],
            orig    => undef,
            wrapped => $fake,
        },
    },
});

my $around1 = sub { "around1" };
my $around2 = sub { "around2" };

do {
    package Class;
    use Class::Method::Modifiers;

    around method => $around1;
    around method => $around2;
};

# XXX: hard to test, we have no other way of getting at this coderef
my $wrapped  = $Class::Method::Modifiers::MODIFIER_CACHE{Class}{method}{wrapped};

is_deeply(\%Class::Method::Modifiers::MODIFIER_CACHE, {
    Class => {
        method => {
            around  => [$around2, $around1],
            before  => [$code],
            after   => [],
            orig    => $orig,
            wrapped => $wrapped,
        },
    },
    Child => {
        method => {
            before  => [],
            after   => [$code2],
            around  => [],
            orig    => undef,
            wrapped => $fake,
        },
    },
});

done_testing;

Youez - 2016 - github.com/yon3zu
LinuXploit