From 2d40869c1a2020cf006a99fe8a7e823fdf350efa Mon Sep 17 00:00:00 2001 From: Jesse Gumm Date: Sun, 31 Jan 2016 09:07:54 -0600 Subject: [PATCH 1/2] Add some tests for new tz_database changes --- rebar.config | 6 ++---- src/qdate.erl | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/rebar.config b/rebar.config index 622fcf5..bc55303 100644 --- a/rebar.config +++ b/rebar.config @@ -1,14 +1,12 @@ %% -*- erlang -*- %% vim:ts=4 sw=4 et ft=erlang -{require_otp_vsn, "R13B04|R14|R15|R16|17|18"}. - {cover_enabled, true}. %% For rebar2 compat {deps, [ - {erlware_commons, ".*", {git, "git://github.com/erlware/erlware_commons.git", {branch, master}}}, - {erlang_localtime, ".*", {git, "git://github.com/choptastic/erlang_localtime.git", {branch, master}}} + {erlware_commons, ".*", {git, "git://github.com/erlware/erlware_commons.git", {tag, "v0.15.0"}}}, + {erlang_localtime, ".*", {git, "git://github.com/choptastic/erlang_localtime.git", {branch, 'merged-gmt-fix'}}} ]}. %% for rebar3 diff --git a/src/qdate.erl b/src/qdate.erl index 0e6a804..5cf7fce 100644 --- a/src/qdate.erl +++ b/src/qdate.erl @@ -752,6 +752,20 @@ tz_tests(_) -> ?_assertEqual({{2013,3,6},{18,0,0}}, to_date("GMT","3/7/2013 12:00am +0600")), ?_assertEqual({{2013,3,6},{12,0,0}}, to_date("CST","3/7/2013 12:00am +0600")), + %% These next two test check to make sure that the tz database properly + %% interprets GMT+/-X timezones (an earlier issue with + %% erlang_localtime's tz database had it incrementing/decrementing the + %% minute field rather than hours. + %% + %% It also ensures that GMT+/-X handling is interpreted the way you'd + %% intuitively expect, rather than the POSIX way, which is, quite + %% frankly, broken. + ?_assertEqual({{2013,3,7},{10,0,0}}, to_date("GMT-0","3/7/2013 10:00am GMT")), + ?_assertEqual({{2013,3,7},{10,0,0}}, to_date("GMT+0","3/7/2013 10:00am GMT")), + ?_assertEqual({{2013,3,7},{9,0,0}}, to_date("GMT-1","3/7/2013 10:00am GMT")), + ?_assertEqual({{2013,3,7},{11,0,0}}, to_date("GMT+1","3/7/2013 10:00am GMT")), + + %% parsing, then reformatting the same time with a different timezone using the php "r" (rfc2822) ?_assertEqual("Thu, 07 Mar 2013 12:15:00 -0600", to_string("r","CST",to_string("r","EST",{{2013,3,7},{13,15,0}}))), From 2a053253fb4a7c0ff47eb1f7f838e5d17dfc8ff8 Mon Sep 17 00:00:00 2001 From: Jesse Gumm Date: Sun, 31 Jan 2016 09:08:31 -0600 Subject: [PATCH 2/2] Point to my master branch --- rebar.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rebar.config b/rebar.config index bc55303..59316c2 100644 --- a/rebar.config +++ b/rebar.config @@ -6,7 +6,7 @@ {deps, [ {erlware_commons, ".*", {git, "git://github.com/erlware/erlware_commons.git", {tag, "v0.15.0"}}}, - {erlang_localtime, ".*", {git, "git://github.com/choptastic/erlang_localtime.git", {branch, 'merged-gmt-fix'}}} + {erlang_localtime, ".*", {git, "git://github.com/choptastic/erlang_localtime.git", {branch, master}}} ]}. %% for rebar3