Fix epoch=0 issues with Session/DateTime and D_date macro.

Add an edge case test for D_date macro.
This commit is contained in:
Colin Kuskie 2009-12-01 17:08:12 -08:00
parent ae08335e9c
commit a7aa1d2fb2
3 changed files with 18 additions and 9 deletions

View file

@ -37,12 +37,13 @@ time is used instead.
#-------------------------------------------------------------------
sub process {
my $session = shift;
my (@param, $temp, $time);
@param = @_;
$time = $param[1] ||time();
$temp =$session->datetime->epochToHuman($time,$param[0]);
return $temp;
my $session = shift;
my $time = $_[1];
if (! defined $time) {
$time = time();
}
my $temp = $session->datetime->epochToHuman($time, $_[0]);
return $temp;
}

View file

@ -298,8 +298,11 @@ A string representing the output format for the date. Defaults to '%z %Z'. You c
=cut
sub epochToHuman {
my $self = shift;
my $epoch = shift || time();
my $self = shift;
my $epoch = shift;
if (!defined $epoch || $epoch eq '') {
$epoch = time();
}
my $i18n = WebGUI::International->new($self->session);
my $language = $i18n->getLanguage($self->session->user->profileField('language'));
my $locale = $language->{languageAbbreviation} || 'en';

View file

@ -34,7 +34,7 @@ my @testSets = (
},
);
my $numTests = scalar @testSets + 1;
my $numTests = scalar @testSets + 2;
plan tests => $numTests;
@ -59,3 +59,8 @@ while ($time1 != $time2) {
}
is($output, $session->datetime->epochToHuman($time1), 'checking default time and format');
##Checking for edge case, time=0
is WebGUI::Macro::D_date::process($session, '', 0),
'12/31/1969 6:00 pm',
'...checking for handling time=0';