diff options
Diffstat (limited to 't/mro/next_NEXT_utf8.t')
-rw-r--r-- | t/mro/next_NEXT_utf8.t | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/t/mro/next_NEXT_utf8.t b/t/mro/next_NEXT_utf8.t new file mode 100644 index 0000000000..5961a954a2 --- /dev/null +++ b/t/mro/next_NEXT_utf8.t @@ -0,0 +1,50 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use NEXT; +use utf8; +use open qw( :utf8 :std ); + +require './test.pl'; +plan(tests => 4); + +{ + package ᕘ; + use strict; + use warnings; + use mro 'c3'; + + sub fಓ { 'ᕘ::fಓ' } + + package Fᶽ; + use strict; + use warnings; + use mro 'c3'; + use base 'ᕘ'; + + sub fಓ { 'Fᶽ::fಓ => ' . (shift)->next::method } + + package Bᛆ; + use strict; + use warnings; + use mro 'c3'; + use base 'ᕘ'; + + sub fಓ { 'Bᛆ::fಓ => ' . (shift)->next::method } + + package Baᕃ; + use strict; + use warnings; + + use base 'Bᛆ', 'Fᶽ'; + + sub fಓ { 'Baᕃ::fಓ => ' . (shift)->NEXT::fಓ } +} + +is(ᕘ->fಓ, 'ᕘ::fಓ', '... got the right value from ᕘ->fಓ'); +is(Fᶽ->fಓ, 'Fᶽ::fಓ => ᕘ::fಓ', '... got the right value from Fᶽ->fಓ'); +is(Bᛆ->fಓ, 'Bᛆ::fಓ => ᕘ::fಓ', '... got the right value from Bᛆ->fಓ'); + +is(Baᕃ->fಓ, 'Baᕃ::fಓ => Bᛆ::fಓ => Fᶽ::fಓ => ᕘ::fಓ', '... got the right value using NEXT in a subclass of a C3 class'); + |