properly handle unicode in upper/lowercase types
[gitmo/MooseX-Types-Common.git] / t / 05-unicode.t
1 use strict;
2 use warnings FATAL => 'all';
3
4 use utf8;
5 use open qw(:std :utf8);
6
7 use Test::More;
8 use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';
9
10 use MooseX::Types::Common::String -all;
11
12 ok(  is_UpperCaseStr('CAFÉ'), q[CAFÉ is uppercase] );
13 ok( !is_UpperCaseStr('CAFé'), q[CAFé is not (entirely) uppercase] );
14
15 ok( !is_UpperCaseStr('ŐħĤăĩ'), q[ŐħĤăĩ not entirely uppercase] );
16 ok( !is_LowerCaseStr('ŐħĤăĩ'), q[ŐħĤăĩ not entirely lowercase] );
17
18 ok(  is_LowerCaseStr('café'), q[café is lowercase] );
19 ok( !is_LowerCaseStr('cafÉ'), q[cafÉ is not (entirely) lowercase] );
20
21 ok(  is_UpperCaseSimpleStr('CAFÉ'), q[CAFÉ is uppercase] );
22 ok( !is_UpperCaseSimpleStr('CAFé'), q[CAFé is not (entirely) uppercase] );
23
24 ok(  is_LowerCaseSimpleStr('café'), q[café is lowercase] );
25 ok( !is_LowerCaseSimpleStr('cafÉ'), q[cafÉ is not (entirely) lowercase] );
26
27 done_testing;