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 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
use Term::Table::LineBreak;
use strict;
use warnings;
use utf8;
BEGIN {
if (eval { require Test2::Tools::Tiny }) {
print "# Using Test2::Tools::Tiny\n";
Test2::Tools::Tiny->import();
}
else {
print "1..0 # SKIP Test2::Tools::Tiny is not installed\n";
exit(0);
}
}
use Test2::API qw/test2_stack/;
test2_stack->top->format->encoding('utf8');
tests with_unicode_linebreak => sub {
my $one = Term::Table::LineBreak->new(string => 'aaaa婧bbbb');
$one->break(3);
is_deeply(
[ map { $one->next } 1 .. 5 ],
[
'aaa',
'a婧',
'bbb',
'b ',
undef
],
"Got all parts"
);
$one = Term::Table::LineBreak->new(string => 'a婧bb');
$one->break(2);
is_deeply(
[ map { $one->next } 1 .. 4 ],
[
'a ',
'婧',
'bb',
undef
],
"Padded the problem"
);
} if $INC{'Unicode/LineBreak.pm'};
tests without_unicode_linebreak => sub {
my @parts;
{
local %INC = %INC;
delete $INC{'Unicode/GCString.pm'};
my $one = Term::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_deeply(
\@parts,
[
'aaa',
'a婧',
'bbb',
'b ',
undef
],
"Got all parts"
);
};
my $one = Term::Table::LineBreak->new(string => 'aaabbbx');
$one->break(2);
is_deeply(
[ map { $one->next } 1 .. 5 ],
[
'aa',
'ab',
'bb',
'x ',
undef
],
"Padded the problem"
);
};
done_testing;
|