View | Details | Raw Unified | Return to bug 13601
Collapse All | Expand All

(-)a/t/DateUtils.t (-10 / +36 lines)
Lines 3-11 use DateTime; Link Here
3
use DateTime::TimeZone;
3
use DateTime::TimeZone;
4
4
5
use C4::Context;
5
use C4::Context;
6
use Test::More tests => 42;
6
use Test::More tests => 52;
7
use Test::MockModule;
7
use Test::MockModule;
8
use Time::HiRes qw/ gettimeofday /;
8
use Time::HiRes qw/ gettimeofday /;
9
use t::lib::Mocks;
9
10
10
BEGIN { use_ok('Koha::DateUtils'); }
11
BEGIN { use_ok('Koha::DateUtils'); }
11
12
Lines 25-37 $dt->set_minute(0); Link Here
25
26
26
my $date_string;
27
my $date_string;
27
28
28
my $module_context = new Test::MockModule('C4::Context');
29
t::lib::Mocks::mock_preference('dateformat', 'us');
29
$module_context->mock(
30
    'preference',
31
    sub {
32
        return 'us';
33
    }
34
);
35
30
36
my $dateformat = C4::Context->preference('dateformat');
31
my $dateformat = C4::Context->preference('dateformat');
37
cmp_ok  output_pref({ dt => $dt, dateformat => $dateformat }),
32
cmp_ok  output_pref({ dt => $dt, dateformat => $dateformat }),
Lines 117-123 $dt0 = dt_from_string( '0000-00-00', 'iso' ); Link Here
117
is( $dt0, undef, "undefined returned for 0 iso date" );
112
is( $dt0, undef, "undefined returned for 0 iso date" );
118
113
119
# Return undef if passed mysql 9999-* date
114
# Return undef if passed mysql 9999-* date
120
my $dt9999 = dt_from_string( '9999-12-31' );
115
my $dt9999 = dt_from_string( '9999-12-31', 'sql' );
121
is( $dt9999->ymd(), '9999-12-31', "dt_from_string should return a DateTime object for 9999-12-31" );
116
is( $dt9999->ymd(), '9999-12-31', "dt_from_string should return a DateTime object for 9999-12-31" );
122
117
123
my $formatted = format_sqldatetime( '2011-06-16 12:00:07', 'metric', '24hr' );
118
my $formatted = format_sqldatetime( '2011-06-16 12:00:07', 'metric', '24hr' );
Lines 162-164 cmp_ok $date_string, 'eq', '12/11/2013 06:35 PM', 'as_due_date with hours and ti Link Here
162
157
163
my $now = DateTime->now;
158
my $now = DateTime->now;
164
is( dt_from_string, $now, "Without parameter, dt_from_string should return today" );
159
is( dt_from_string, $now, "Without parameter, dt_from_string should return today" );
165
- 
160
161
# Test dt_from_string
162
t::lib::Mocks::mock_preference('dateformat', 'metric');
163
t::lib::Mocks::mock_preference('TimeFormat', '24hr');
164
165
# dt_from_string should take into account the dateformat pref, or the given parameter
166
$dt = dt_from_string('31/01/2015');
167
is( ref($dt), 'DateTime', '31/01/2015 is a correct date in metric format' );
168
is( output_pref( { dt => $dt, dateonly => 1 } ), '31/01/2015' );
169
$dt = eval { dt_from_string( '31/01/2015', 'iso' ); };
170
is( ref($dt), '', '31/01/2015 is not a correct date in iso format' );
171
$dt = eval { dt_from_string( '01/01/2015', 'iso' ); };
172
is( ref($dt), '', '01/01/2015 is not a correct date in iso format' );
173
$dt = eval { dt_from_string( '31/01/2015', 'us' ); };
174
is( ref($dt), '', '31/01/2015 is not a correct date in us format' );
175
$dt = dt_from_string( '01/01/2015', 'us' );
176
is( ref($dt), 'DateTime', '01/01/2015 is a correct date in us format' );
177
178
179
# default value for hh and mm is 00:00
180
$dt = dt_from_string('31/01/2015');
181
is( output_pref( { dt => $dt } ), '31/01/2015 00:00', 'dt_from_string should generate a DT object with 00:00 as default hh:mm' );
182
183
$dt = dt_from_string('31/01/2015 12:34');
184
is( output_pref( { dt => $dt } ), '31/01/2015 12:34', 'dt_from_string should match hh:mm' );
185
186
$dt = dt_from_string('31/01/2015 12:34:56');
187
is( output_pref( { dt => $dt } ), '31/01/2015 12:34', 'dt_from_string should match hh:mm:ss' );
188
189
# date before 1900
190
$dt = dt_from_string('01/01/1900');
191
is( output_pref( { dt => $dt, dateonly => 1 } ), '01/01/1900', 'dt_from_string should manage date < 1900' );

Return to bug 13601