Browse Source

Bug 13075: Silence warnings and improve Charset testing.

Calls to C4/Charset.pm's NormalizeString function with an
undefined string were triggering warnings when running:
  prove -v t/db_dependent/Holds.t

Sadly, t/Charset.t was also lacking calls to NormalizeString.

TEST PLAN
---------
1) prove -v t/db_dependent/Holds.t
   -- This should generate the uninitialized string warnings.
      Make sure CPL and MPL are in your branches to save
      yourself from headaches due to expected data.
2) cat t/Charset.t
   -- note there are no function calls to NormalizeString.
      You can see other shortfalls in the tests beyond
      NormalizeString with: grep ^sub C4/Charset.pm
3) prove -v t/Charset.t
4) Apply patch
5) prove -v t/Charset.t
   -- Run as before with more tests.
6) cat t/Charset.t
   -- note there are now function calls to NormalizeString.
7) prove -v t/db_dependent/Holds.t
   -- Nice and clean run! :)
8) koha-qa.pl -v 2 -c 1
   -- all should be Ok.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
3.18.x
Mark Tompsett 8 years ago
committed by Tomas Cohen Arazi
parent
commit
878fa77c30
  1. 1
      C4/Charset.pm
  2. 11
      t/Charset.t

1
C4/Charset.pm

@ -179,6 +179,7 @@ Sample code :
sub NormalizeString{
my ($string,$nfd,$transform)=@_;
return $string unless defined($string); # force scalar context return.
utf8::decode($string) unless (utf8::is_utf8($string));
if ($nfd){
$string= NFD($string);

11
t/Charset.t

@ -17,7 +17,7 @@
use Modern::Perl;
use Test::More tests => 11;
use Test::More tests => 16;
use MARC::Record;
use utf8;
@ -27,6 +27,15 @@ BEGIN {
use_ok('C4::Charset');
}
my $string;
ok(!defined(NormalizeString($string,undef,1)),'Uninitialized string case 1 normalizes to uninitialized string.');
$string = 'Sample';
ok(defined(NormalizeString($string,undef,0)), 'Initialized string case 1 normalizes to some string.');
ok(defined(NormalizeString($string,undef,1)), 'Initialized string case 2 normalizes to some string.');
ok(defined(NormalizeString($string,1,0)), 'Initialized string case 3 normalizes to some string.');
ok(defined(NormalizeString($string,1,1)), 'Initialized string case 4 normalizes to some string.');
my $octets = "abc";
ok(IsStringUTF8ish($octets), "verify octets are valid UTF-8 (ASCII)");

Loading…
Cancel
Save