summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMarcus Stollsteimer <sto.mar@web.de>2017-04-13 12:38:00 +0200
committerMarcus Stollsteimer <sto.mar@web.de>2017-05-22 15:56:05 +0200
commitd2db988626a6bab441b6609a10d31e39b09fc784 (patch)
treea2e4dfeb24cdcb8308314c30a9596b331293ea1b /test
parent3719891f6f066c870ebc605eda55bcbfcdc44b47 (diff)
downloadpsych-d2db988626a6bab441b6609a10d31e39b09fc784.zip
Preserve time zone offset when deserializing times
Fix support of time zone offsets. Now the time zone offset will be preserved when times are deserialized from YAML with a specified offset. Previously, times other than UTC ("Z") where converted to local time. The test cases use two different offsets to account for the possibility of an erratic success when the tests are run in the corresponding time zone.
Diffstat (limited to 'test')
-rw-r--r--test/psych/test_date_time.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/psych/test_date_time.rb b/test/psych/test_date_time.rb
index 7745eb4..3c8b436 100644
--- a/test/psych/test_date_time.rb
+++ b/test/psych/test_date_time.rb
@@ -19,6 +19,14 @@ module Psych
assert_cycle time
end
+ def test_timezone_offset
+ times = [Time.new(2017, 4, 13, 12, 0, 0, "+09:00"),
+ Time.new(2017, 4, 13, 12, 0, 0, "-05:00")]
+ cycled = Psych::load(Psych.dump times)
+ assert_match(/12:00:00 \+0900/, cycled.first.to_s)
+ assert_match(/12:00:00 -0500/, cycled.last.to_s)
+ end
+
def test_new_datetime
assert_cycle DateTime.new
end
@@ -28,6 +36,14 @@ module Psych
assert_cycle dt
end
+ def test_datetime_timezone_offset
+ times = [DateTime.new(2017, 4, 13, 12, 0, 0, "+09:00"),
+ DateTime.new(2017, 4, 13, 12, 0, 0, "-05:00")]
+ cycled = Psych::load(Psych.dump times)
+ assert_match(/12:00:00\+09:00/, cycled.first.to_s)
+ assert_match(/12:00:00-05:00/, cycled.last.to_s)
+ end
+
def test_invalid_date
assert_cycle "2013-10-31T10:40:07-000000000000033"
end