Update podlators to version 4.03
[perl.git] / cpan / podlators / t / man / devise-date.t
1 #!/usr/bin/perl
2 #
3 # In order for MakeMaker to build in the core, nothing can use Fcntl which
4 # includes POSIX.  devise_date()'s use of strftime() was replaced.  This tests
5 # that it's identical.  It also tests special handling of the POD_MAN_DATE
6 # environment variable.
7
8 use 5.006;
9 use strict;
10 use warnings;
11
12 use Pod::Man;
13 use POSIX qw(strftime);
14
15 use Test::More tests => 6;
16
17 # Start with environment variables affecting the date stripped.
18 local $ENV{SOURCE_DATE_EPOCH};
19 local $ENV{POD_MAN_DATE};
20
21 # Check that the results of device_date matches strftime.  There is no input
22 # file name, so this will use the current time.
23 my $parser = Pod::Man->new;
24 is(
25     $parser->devise_date,
26     strftime('%Y-%m-%d', gmtime()),
27     'devise_date matches strftime'
28 );
29
30 # Set the override environment variable and ensure that it's honored.
31 local $ENV{POD_MAN_DATE} = '2014-01-01';
32 is($parser->devise_date, '2014-01-01', 'devise_date honors POD_MAN_DATE');
33
34 # Check that an empty environment variable is honored.
35 local $ENV{POD_MAN_DATE} = q{};
36 is($parser->devise_date, q{}, 'devise_date honors empty POD_MAN_DATE');
37
38 # Set another environment variable and ensure that it's honored.
39 local $ENV{POD_MAN_DATE};
40 local $ENV{SOURCE_DATE_EPOCH} = 1439390140;
41 is($parser->devise_date, '2015-08-12', 'devise_date honors SOURCE_DATE_EPOCH');
42
43 # Check that POD_MAN_DATE overrides SOURCE_DATE_EPOCH
44 local $ENV{POD_MAN_DATE}      = '2013-01-01';
45 local $ENV{SOURCE_DATE_EPOCH} = 1482676620;
46 is($parser->devise_date, '2013-01-01',
47    'devise_date honors POD_MAN_DATE over SOURCE_DATE_EPOCH');
48
49 # Check that an invalid SOURCE_DATE_EPOCH is not accepted
50 local $ENV{POD_MAN_DATE};
51 local $ENV{SOURCE_DATE_EPOCH} = '1482676620B';
52 is(
53     $parser->devise_date,
54     strftime('%Y-%m-%d', gmtime()),
55     'devise_date ignores invalid SOURCE_DATE_EPOCH'
56 );