summaryrefslogtreecommitdiff
path: root/t/mro/next_NEXT_utf8.t
diff options
context:
space:
mode:
Diffstat (limited to 't/mro/next_NEXT_utf8.t')
-rw-r--r--t/mro/next_NEXT_utf8.t50
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');
+