1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
use Test2::Bundle::Extended;
use Test2::Util::Table::LineBreak;
BEGIN { $ENV{TABLE_TERM_SIZE} = 80 }
subtest with_unicode_linebreak => sub {
my $one = Test2::Util::Table::LineBreak->new(string => 'aaaa婧bbbb');
$one->break(3);
is(
[ map { $one->next } 1 .. 5 ],
[
'aaa',
'a婧',
'bbb',
'b ',
undef
],
"Got all parts"
);
$one = Test2::Util::Table::LineBreak->new(string => 'a婧bb');
$one->break(2);
is(
[ map { $one->next } 1 .. 4 ],
[
'a ',
'婧',
'bb',
undef
],
"Padded the problem"
);
} if $INC{'Unicode/LineBreak.pm'};
subtest without_unicode_linebreak => sub {
my @parts;
{
local %INC = %INC;
delete $INC{'Unicode/GCString.pm'};
my $one = Test2::Util::Table::LineBreak->new(string => 'aaaa婧bbbb');
$one->break(3);
@parts = map { $one->next } 1 .. 5;
}
todo "Can't handle unicode properly without Unicode::GCString" => sub {
is(
\@parts,
[
'aaa',
'a婧',
'bbb',
'b ',
undef
],
"Got all parts"
);
};
my $one = Test2::Util::Table::LineBreak->new(string => 'aaabbbx');
$one->break(2);
is(
[ map { $one->next } 1 .. 5 ],
[
'aa',
'ab',
'bb',
'x ',
undef
],
"Padded the problem"
);
};
done_testing;
|