File: 007_edge.t

package info (click to toggle)
libdatetime-format-strptime-perl 1.0700-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 164 kB
  • ctags: 19
  • sloc: perl: 891; makefile: 45
file content (64 lines) | stat: -rw-r--r-- 1,629 bytes parent folder | download | duplicates (2)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!perl -w

# t/007_edge.t - these tests are for edge case bug report errors

use Test::More tests => 10;
use DateTime;
use DateTime::Format::Strptime;

#diag("1.0600 - Midnight assumption");
test(
	pattern   => "%a %b %e %T %Y",
	time_zone => 'Asia/Manila',
	locale    => 'en_PH',
	input     => 'Wed Mar 22 01:00:00 1978',
	epoch     => '259344000',
);


#diag("1.0601 - Timezone defaults to UTC .. shoudld be floating")
{
	my $parser = DateTime::Format::Strptime->new(
		pattern   => '%F %T',
		locale    => 'en',
		on_error  => 'undef',
	);
	isa_ok($parser, 'DateTime::Format::Strptime');
	my $parsed = $parser->parse_datetime('2005-11-05 09:33:00');
	isa_ok($parsed, 'DateTime');
	is($parsed->time_zone->name,'floating');
}


#diag("1.0601 - Olson Time Zones - %O");
{
	my $parser = DateTime::Format::Strptime->new(
		pattern   => '%F %T %O',
		on_error  => 'undef',
	);
	isa_ok($parser, 'DateTime::Format::Strptime');
	my $parsed = $parser->parse_datetime('2005-11-05 09:33:00 Australia/Melbourne');
	isa_ok($parsed, 'DateTime');
	is($parsed->time_zone->name,'Australia/Melbourne', 'Time zone determined from string');
	is($parsed->epoch,'1131143580', 'Time zone applied to string');
}



sub test {
	my %arg = @_;

	my $strptime = DateTime::Format::Strptime->new(
		pattern   => $arg{pattern}   || '%F %T',
		locale    => $arg{locale}    || 'en',
		time_zone => $arg{time_zone} || 'UTC',
		diagnostic=> $arg{diagnostic}|| 0,
		on_error  => 'undef',
	);
	isa_ok($strptime, 'DateTime::Format::Strptime');

	my $parsed = $strptime->parse_datetime($arg{input});
	isa_ok($parsed, 'DateTime');

	is($parsed->epoch,$arg{epoch});
}