Bug 18746: Text_CSV_Various parse failures
While it might be an idea to just delete it, this patch attempts to catch everything and make it clear that Text::CSV::Unicode (binary) is the parser that should be used. Signed-off-by: Lee Jamison <ldjamison@marywood.edu> Running 'prove xt/author/Text_CSV_Various.t' passes Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
1577460c71
commit
89d36585bb
|
|
@ -3,15 +3,16 @@
|
|||
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');
|
||||
|
|
@ -42,7 +43,9 @@ my $lines = [
|
|||
];
|
||||
# 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";
|
||||
|
|
@ -54,15 +57,31 @@ LINE: foreach (@$lines) {
|
|||
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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue