Bug 16813: Allow empty string for OPACBaseURL
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 27 Jun 2016 12:32:31 +0000 (13:32 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 15 Jul 2016 15:02:13 +0000 (15:02 +0000)
The pref is prefixed by 'http://', but it should not when the pref is
set to an empty string.
This will fix the bug raised on bug 14790 comment 14.

Test plan:
Empty OPACBaseURL and confirm that it's save as it in DB

Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
OPACBaseURL is saved up empty. Prefix http:// is not saved anymore

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
C4/Context.pm
t/db_dependent/Context.t

index 1bf23c2..4ff47af 100644 (file)
@@ -615,7 +615,7 @@ sub set_preference {
     $value = 0 if ( $type && $type eq 'YesNo' && $value eq '' );
 
     # force explicit protocol on OPACBaseURL
-    if ( $variable eq 'opacbaseurl' && substr( $value, 0, 4 ) !~ /http/ ) {
+    if ( $variable eq 'opacbaseurl' && $value && substr( $value, 0, 4 ) !~ /http/ ) {
         $value = 'http://' . $value;
     }
 
index b5a050f..bce0cef 100755 (executable)
@@ -39,6 +39,10 @@ C4::Context->clear_syspref_cache();
 $OPACBaseURL = C4::Context->preference('OPACBaseURL');
 is($OPACBaseURL,'http://junk2','OPACBaseURL saved with http:// as specified');
 
+C4::Context->set_preference('OPACBaseURL', '');
+$OPACBaseURL = C4::Context->preference('OPACBaseURL');
+is($OPACBaseURL,'','OPACBaseURL saved empty as specified');
+
 C4::Context->set_preference('SillyPreference','random');
 C4::Context->clear_syspref_cache();
 my $SillyPeference = C4::Context->preference('SillyPreference');