|
Packit |
e99357 |
use strict;
|
|
Packit |
e99357 |
use Test::More tests => 13;
|
|
Packit |
e99357 |
use vars qw( $class );
|
|
Packit |
e99357 |
BEGIN {
|
|
Packit |
e99357 |
$class = 'DateTime::Format::Mail';
|
|
Packit |
e99357 |
use_ok $class;
|
|
Packit |
e99357 |
}
|
|
Packit |
e99357 |
|
|
Packit |
e99357 |
my $fn = sub {
|
|
Packit |
e99357 |
DateTime::Format::Mail::_determine_timezone( @_ );
|
|
Packit |
e99357 |
};
|
|
Packit |
e99357 |
|
|
Packit |
e99357 |
my %testsuite = (
|
|
Packit |
e99357 |
'EDT translates' => { 'EDT' => '-0400' },
|
|
Packit |
e99357 |
'+0400 remains the same' => { '+0400' => '+0400' },
|
|
Packit |
e99357 |
'leading GMTs on valids stripped' => {
|
|
Packit |
e99357 |
'GMT+0300' => '+0300',
|
|
Packit |
e99357 |
'GMT-0300' => '-0300',
|
|
Packit |
e99357 |
},
|
|
Packit |
e99357 |
'slightly off forms' => {
|
|
Packit |
e99357 |
'400' => '+0400',
|
|
Packit |
e99357 |
'-400' => '-0400',
|
|
Packit |
e99357 |
'+400' => '+0400',
|
|
Packit |
e99357 |
},
|
|
Packit |
e99357 |
'GMT normals' => {
|
|
Packit |
e99357 |
'GMT' => '+0000',
|
|
Packit |
e99357 |
'UTC' => '+0000',
|
|
Packit |
e99357 |
},
|
|
Packit |
e99357 |
'multiple signs' => {
|
|
Packit |
e99357 |
'+-700' => '-0700',
|
|
Packit |
e99357 |
'--700' => '-0700',
|
|
Packit |
e99357 |
},
|
|
Packit |
e99357 |
'invalids to -0000' => {
|
|
Packit |
e99357 |
'fnar' => '-0000',
|
|
Packit |
e99357 |
},
|
|
Packit |
e99357 |
);
|
|
Packit |
e99357 |
|
|
Packit |
e99357 |
for my $label (sort keys %testsuite)
|
|
Packit |
e99357 |
{
|
|
Packit |
e99357 |
my $tests = $testsuite{$label};
|
|
Packit |
e99357 |
for my $input (sort keys %$tests)
|
|
Packit |
e99357 |
{
|
|
Packit |
e99357 |
my $expected = $tests->{$input};
|
|
Packit |
e99357 |
is $fn->( $input ) => $expected => "$label ($input)";
|
|
Packit |
e99357 |
}
|
|
Packit |
e99357 |
}
|