Bug 11402: make Labels::_guide_box return undef if undefned data is passed
authorTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 16 Dec 2013 14:55:56 +0000 (11:55 -0300)
committerGalen Charlton <gmc@esilibrary.com>
Mon, 30 Dec 2013 16:17:35 +0000 (16:17 +0000)
That's it. A guide box cannot be created if invalid data is passed.

Sponsored-by: Universidad Nacional de Cordoba
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script, includes new unit tests.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Labels/Label.pm
t/Labels.t

index f62d50c..cb6a631 100644 (file)
@@ -62,6 +62,8 @@ sub _check_params {
 
 sub _guide_box {
     my ( $llx, $lly, $width, $height ) = @_;
+    return unless ( defined $llx and defined $lly and
+                    defined $width and defined $height );
     my $obj_stream = "q\n";                            # save the graphic state
     $obj_stream .= "0.5 w\n";                          # border line width
     $obj_stream .= "1.0 0.0 0.0  RG\n";                # border color red
index 823511b..0b2b804 100644 (file)
@@ -20,7 +20,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 6;
+use Test::More tests => 10;
 
 BEGIN {
     use_ok('C4::Labels::Label');
@@ -36,7 +36,17 @@ is_deeply($parsed_fields, $expected_fields, '"callnumber" in label layout alias
 
 is(C4::Labels::Label::_check_params(),"0",'test checking parameters');
 
-ok(C4::Labels::Label::_guide_box(), 'test guide box with nothing entered');
+my ($llx,$lly,$width,$height) = ( 0, 0, 10, 10 );
+ok(!defined C4::Labels::Label::_guide_box(),
+        "Test guide box with undefined parameters returns undef");
+ok(!defined C4::Labels::Label::_guide_box(undef,$lly,$width,$height),
+        "Test guide box with undefined 'x' coordinate returns undef");
+ok(!defined C4::Labels::Label::_guide_box($llx,undef,$width,$height),
+        "Test guide box with undefined 'y' coordinate returns undef");
+ok(!defined C4::Labels::Label::_guide_box($llx,$lly,undef,$height),
+        "Test guide box with undefined 'width' returns undef");
+ok(!defined C4::Labels::Label::_guide_box($llx,$lly,$width,undef),
+        "Test guide box with undefined 'height' returns undef");
 
 ok(C4::Labels::Label::_get_text_fields(), 'test getting textx fields');