xref: /openbsd-src/gnu/usr.bin/perl/t/class/utf8.t (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
1*5486feefSafresh1#!./perl
2*5486feefSafresh1
3*5486feefSafresh1BEGIN {
4*5486feefSafresh1    chdir 't' if -d 't';
5*5486feefSafresh1    require './test.pl';
6*5486feefSafresh1    set_up_inc('../lib');
7*5486feefSafresh1    require Config;
8*5486feefSafresh1}
9*5486feefSafresh1
10*5486feefSafresh1use v5.36;
11*5486feefSafresh1use utf8;
12*5486feefSafresh1use feature 'class';
13*5486feefSafresh1no warnings 'experimental::class';
14*5486feefSafresh1
15*5486feefSafresh1# A bunch of test cases with non-ASCII, non-Latin1. Esperanto is good for that
16*5486feefSafresh1# as the accented characters are not in Latin1.
17*5486feefSafresh1
18*5486feefSafresh1STDOUT->binmode( ":encoding(UTF-8)" );
19*5486feefSafresh1
20*5486feefSafresh1my $manĝis;
21*5486feefSafresh1
22*5486feefSafresh1class Sandviĉon {
23*5486feefSafresh1   method manĝu { $manĝis++ }
24*5486feefSafresh1
25*5486feefSafresh1   field $tranĉaĵoj :param :reader = undef;
26*5486feefSafresh1}
27*5486feefSafresh1
28*5486feefSafresh1# class name
29*5486feefSafresh1{
30*5486feefSafresh1   my $s = Sandviĉon->new;
31*5486feefSafresh1   isa_ok( $s, "Sandviĉon", '$s' );
32*5486feefSafresh1}
33*5486feefSafresh1
34*5486feefSafresh1# methods
35*5486feefSafresh1{
36*5486feefSafresh1   my $s = Sandviĉon->new;
37*5486feefSafresh1   $s->manĝu;
38*5486feefSafresh1   ok( $manĝis, 'UTF-8 method name works' );
39*5486feefSafresh1}
40*5486feefSafresh1
41*5486feefSafresh1# field params + accessors default names
42*5486feefSafresh1{
43*5486feefSafresh1   my $s = Sandviĉon->new( tranĉaĵoj => 3 );
44*5486feefSafresh1   is( $s->tranĉaĵoj, 3, 'Can obtain value from field via accessor' );
45*5486feefSafresh1}
46*5486feefSafresh1
47*5486feefSafresh1class Sandwich {
48*5486feefSafresh1   field $slices :param(tranĉaĵoj) :reader(tranĉaĵoj) = undef;
49*5486feefSafresh1}
50*5486feefSafresh1
51*5486feefSafresh1{
52*5486feefSafresh1   my $s = Sandwich->new( tranĉaĵoj => 5 );
53*5486feefSafresh1   is( $s->tranĉaĵoj, 5, 'Can obtain value from field via accessor with overridden name' );
54*5486feefSafresh1}
55*5486feefSafresh1
56*5486feefSafresh1done_testing;
57