Bug 11779: (follow-up) improve GetLoggedInBranchcode() and add test cases
authorGalen Charlton <gmc@esilibrary.com>
Wed, 19 Feb 2014 16:40:06 +0000 (16:40 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 19 Feb 2014 16:40:06 +0000 (16:40 +0000)
This patch adjusts the new GetLoggedInBranchcode() template function so
that it returns the empty string rather than undef if there is no
active user environment.  That way, there won't be lots of undefined
value warnings if/when this function gets used in the OPAC.

This patch also adds test cases.

To test:

[1] Verify that there are no regressions in the main test
    plan for this bug.
[2] Verify that prove -v t/db_dependent/Koha_template_plugin_Branches.t
    passes.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Koha/Template/Plugin/Branches.pm
t/db_dependent/Koha_template_plugin_Branches.t

index d1801be..ddf5f2f 100644 (file)
@@ -39,7 +39,9 @@ sub GetName {
 sub GetLoggedInBranchcode {
     my ($self) = @_;
 
-    return C4::Context->userenv->{'branch'} if C4::Context->userenv;
+    return C4::Context->userenv ?
+        C4::Context->userenv->{'branch'} :
+        '';
 }
 
 1;
index c47c466..6045220 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2013 Equinox Software, Inc.
+# Copyright 2013-2014 Equinox Software, Inc.
 #
 # This file is part of Koha.
 #
@@ -18,8 +18,9 @@
 
 use Modern::Perl;
 
-use Test::More tests => 5;
+use Test::More tests => 7;
 
+use C4::Context;
 BEGIN {
     use_ok('Koha::Template::Plugin::Branches');
 }
@@ -35,3 +36,11 @@ is($name, '', 'received empty string as name of the "__ANY__" placeholder librar
 
 $name = $plugin->GetName(undef);
 is($name, '', 'received empty string as name of NULL/undefined library code');
+
+my $library = $plugin->GetLoggedInBranchcode();
+is($library, '', 'no active library if there is no active user session');
+
+C4::Context->_new_userenv('DUMMY_SESSION_ID');
+C4::Context::set_userenv(123, 'userid', 'usercnum', 'First name', 'Surname', 'MYLIBRARY', 'My Library', 0);
+$library = $plugin->GetLoggedInBranchcode();
+is($library, 'MYLIBRARY', 'GetLoggedInBranchcode() returns active library');