@@ -, +, @@ - Apply the patch - Run $ prove t/Koha_Template_Plugin_Koha.t - Sign off :-D --- Koha/Template/Plugin/Koha.pm | 14 +++++++ t/Koha_Template_Plugin_Koha.t | 77 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 0 deletions(-) create mode 100644 t/Koha_Template_Plugin_Koha.t --- a/Koha/Template/Plugin/Koha.pm +++ a/Koha/Template/Plugin/Koha.pm @@ -45,4 +45,18 @@ sub Preference { return encode('UTF-8', C4::Context->preference( $pref ) ); } +sub Version { + my $version_string = C4::Context::KOHAVERSION; + my ($major,$minor,$maintenance,$development) = split('\.',$version_string); + + return { + major => $major, + release => $major . "." . $minor, + maintenance => $major . "." . $minor . "." . $maintenance, + development => ( $development ne '000' ) + ? $development + : undef + }; +} + 1; --- a/t/Koha_Template_Plugin_Koha.t +++ a/t/Koha_Template_Plugin_Koha.t @@ -0,0 +1,77 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Test::More tests => 3; +use Test::MockModule; + +use String::Random; + +# Test the plugin is usable +use_ok( 'Koha::Template::Plugin::Koha' ); +ok( my $cache = Koha::Template::Plugin::Koha->new() ); + +subtest "Koha::Template::Plugin::Koha::Version tests" => sub { + + plan tests => 2; + + # Variables for mocking KOHAVERSION + my $major; + my $minor; + my $maintenance; + my $development; + + # Mock C4::Context::KOHAVERSION + my $context = new Test::MockModule('C4::Context'); + $context->mock( 'KOHAVERSION', sub { + return "$major.$minor.$maintenance.$development"; + }); + + my $rnd = new String::Random; + # development version test + $major = $rnd->randregex('\d'); + $minor = $rnd->randregex('\d\d'); + $maintenance = $rnd->randregex('\d\d'); + $development = $rnd->randregex('\d\d\d'); + my $version = "$major.$minor.$maintenance.$development"; + my $res = Koha::Template::Plugin::Koha::Version( $version ); + is_deeply( $res, { + major => $major, + release => $major . "." . $minor, + maintenance => $major . "." . $minor . "." . $maintenance, + development => $development + }, "Correct development version"); + + + # maintenance release test + $major = $rnd->randregex('\d'); + $minor = $rnd->randregex('\d\d'); + $maintenance = $rnd->randregex('\d\d'); + $development = "000"; + $version = "$major.$minor.$maintenance.$development"; + $res = Koha::Template::Plugin::Koha::Version( $version ); + is_deeply( $res, { + major => $major, + release => $major . "." . $minor, + maintenance => $major . "." . $minor . "." . $maintenance, + development => undef + }, "Correct maintenance version"); + +}; + +1; --