Bug 20422: Add unit test to Output.t for parametrized_url
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Thu, 15 Mar 2018 13:07:11 +0000 (14:07 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 26 Mar 2018 20:31:13 +0000 (17:31 -0300)
This test will reveal that we need to resolve a warning too.

Test plan:
[1] Run t/Output.t without the second patch.
[2] The test will fail on the warning raised by an undefined value.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
t/Output.t

index 4474d18..279ce06 100755 (executable)
@@ -3,7 +3,8 @@
 use strict;
 use warnings;
 
-use Test::More tests => 5;
+use Test::More tests => 6;
+use Test::Warn;
 use CGI qw ( -utf8 );
 
 BEGIN {
@@ -28,3 +29,15 @@ my $output = 'foobarbaz';
     like($stdout, qr/Cache-control: no-cache[^,]/, 'not using force_no_caching sets Cache-control as desired');
     unlike($stdout, qr/Expires: /, 'force_no_caching does not set an Expires header');
 }
+
+subtest 'parametrized_url' => sub {
+    plan tests => 2;
+
+    my $url = 'https://somesite.com/search?q={TITLE}&author={AUTHOR}{SUFFIX}';
+    my $subs = { TITLE => '_title_', AUTHOR => undef, ISBN => '123456789' };
+    my $res;
+    warning_is { $res = C4::Output::parametrized_url( $url, $subs ) }
+        q{}, 'No warning expected on undefined author';
+    is( $res, 'https://somesite.com/search?q=_title_&author=',
+        'Title replaced, author empty and SUFFIX removed' );
+};