use strict;
use warnings;
-use Test::More tests => 25;
+use Test::More tests => 32;
+use Test::Warn;
BEGIN {
- diag "
-This test demonstrates why Koha uses the CSV parser and configration it does.
-Specifically, the test is for Unicode compliance in text parsing and data.
-This test requires other modules that Koha doesn't actually use, in order to compare.
-Therefore, running this test is not necessary to test your Koha installation.
-
-";
+ diag q{
+This test demonstrates why Koha uses the CSV parser and configration
+it does. Specifically, the test is for Unicode compliance in text
+parsing and data. This test requires other modules that Koha doesn't
+actually use, in order to compare. Therefore, running this test is not
+necessary to test your Koha installation.
+};
use FindBin;
use lib $FindBin::Bin;
use_ok('Text::CSV');
];
# 010D: č LATIN SMALL LETTER C WITH CARON
# 0117: ė LATIN SMALL LETTER E WITH DOT ABOVE
-diag sprintf "Testing %d lines with %d parsers.", scalar(@$lines), scalar(keys %parsers);
+ok( scalar(keys %parsers)>0 && scalar(@$lines)>0,
+ sprintf "Testing %d lines with %d parsers.",
+ scalar(@$lines), scalar(keys %parsers) );
foreach my $key (sort keys %parsers) {
my $parser = $parsers{$key};
print "Testing parser $key version " . ($parser->version||'?') . "\n";
foreach my $key (sort keys %parsers) {
my $parser = $parsers{$key};
my ($status,$count,@fields);
- ok($status = $parser->parse($_->{line}), "parse ($key)");
+ $status = $parser->parse($_->{line});
if ($status) {
+ ok($status, "parse ($key)");
@fields = $parser->fields;
ok(($count = scalar(@fields)) == 6, "Number of fields ($count of 6)");
my $j = 0;
foreach my $f (@fields) {
- print "\t field " . ++$j . ": $f\n";
+ ++$j;
+ if ($j==4) {
+ if ($key ne 'Text::CSV::Unicode (binary)') {
+ warning_like {
+ print "\t field " . $j . ": $f\n"
+ } [ qr/Wide character in print/ ], 'Expected wide print';
+ } else {
+ print "\t field " . $j . ": $f\n"
+ }
+ }
+ else {
+ print "\t field " . $j . ": $f\n";
+ }
}
}
+ else {
+ ok(! $status, "parse ($key) fails as expected");
+ }
}
}
-diag "done.\n";
+done_testing();