File: timezones.t

package info (click to toggle)
libdatetime-format-mail-perl 0.4030-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,176 kB
  • sloc: perl: 395; makefile: 2
file content (46 lines) | stat: -rw-r--r-- 939 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use strict;
use Test::More tests => 13;
use vars qw( $class );
BEGIN {
    $class = 'DateTime::Format::Mail';
    use_ok $class;
}

my $fn = sub {
    DateTime::Format::Mail::_determine_timezone( @_ );
};

my %testsuite = (
    'EDT translates' => { 'EDT' => '-0400' },
    '+0400 remains the same' => { '+0400' => '+0400' },
    'leading GMTs on valids stripped' => {
	'GMT+0300' => '+0300',
	'GMT-0300' => '-0300',
    },
    'slightly off forms' => {
	'400'	=> '+0400',
	'-400'	=> '-0400',
	'+400'	=> '+0400',
    },
    'GMT normals' => {
	'GMT'	=> '+0000',
	'UTC'	=> '+0000',
    },
    'multiple signs' => {
	'+-700'	=> '-0700',
	'--700'	=> '-0700',
    },
    'invalids to -0000' => {
	'fnar'	=> '-0000',
    },
);

for my $label (sort keys %testsuite)
{
    my $tests = $testsuite{$label};
    for my $input (sort keys %$tests)
    {
	my $expected = $tests->{$input};
	is $fn->( $input ) => $expected => "$label ($input)";
    }
}