From 5fc93d42f0bad089f61c48b38a09a222acab2310 Mon Sep 17 00:00:00 2001 From: CJ Lynce Date: Thu, 3 Oct 2024 14:24:31 +0000 Subject: [PATCH] Bug 38043: Add unit tests for KohaTimes TT filter This adds units tests for the new KohaTimes TT filter. This also corrects a minor issue with a wrong comparitor operation in KohaTimes.pm causing a WARN to be thrown. To test 1. Apply patch 2. prove t/db_dependent/Template/Plugin/KohaTimes.t 3. Verify 5 Tests PASS --- Koha/Template/Plugin/KohaTimes.pm | 2 +- t/db_dependent/Template/Plugin/KohaTimes.t | 38 ++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100755 t/db_dependent/Template/Plugin/KohaTimes.t diff --git a/Koha/Template/Plugin/KohaTimes.pm b/Koha/Template/Plugin/KohaTimes.pm index c65c68eaf64..3e383e327fd 100644 --- a/Koha/Template/Plugin/KohaTimes.pm +++ b/Koha/Template/Plugin/KohaTimes.pm @@ -26,7 +26,7 @@ sub filter { return "" unless $text; my ( $hours, $minutes, $seconds ) = split( ':', $text ); - if ( C4::Context->preference('TimeFormat') == "12hr" ) { + if ( C4::Context->preference('TimeFormat') eq "12hr" ) { my $ampm = ( $hours >= 12 ) ? 'pm' : 'am'; $hours = ( $hours == 0 ) ? "12" : $hours; $hours = ( $hours > 12 ) ? ( $hours - 12 ) : $hours; diff --git a/t/db_dependent/Template/Plugin/KohaTimes.t b/t/db_dependent/Template/Plugin/KohaTimes.t new file mode 100755 index 00000000000..4a35f018f8f --- /dev/null +++ b/t/db_dependent/Template/Plugin/KohaTimes.t @@ -0,0 +1,38 @@ +#!/usr/bin/perl + +use Modern::Perl; + +use C4::Context; + +use Test::MockModule; +use Test::More tests => 5; +use t::lib::Mocks; + +BEGIN { + use_ok('Koha::Template::Plugin::KohaTimes'); +} + +my $module_context = Test::MockModule->new('C4::Context'); + +my $test_time = "21:45:32"; +my $test_midnight = "00:00:00"; + +my $context = C4::Context->new(); + +my $filter = Koha::Template::Plugin::KohaTimes->new(); +ok( $filter, "new()" ); + +t::lib::Mocks::mock_preference( "TimeFormat", '24hr' ); +$context->clear_syspref_cache(); + +my $filtered_time = $filter->filter($test_time); +is( $filtered_time, "21:45", "24-hour conversion" ) or diag("24-hour conversion failed"); + +t::lib::Mocks::mock_preference( "TimeFormat", '12hr' ); +$context->clear_syspref_cache(); + +$filtered_time = $filter->filter($test_time); +is( $filtered_time, "09:45 pm", "12-hour conversion" ) or diag("12-hour conversion failed"); + +$filtered_time = $filter->filter($test_midnight); +is( $filtered_time, "12:00 am", "12-hour midnight/AM conversion" ) or diag("12-hour midnight/AM conversion failed"); -- 2.46.2