From a34479c418cd6be5c83bf5cd36121e9c42332da3 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Thu, 30 Mar 2017 18:11:52 +0200 Subject: [PATCH] [JENKINS-43228] Add test --- .../hudson/triggers/TimerTriggerTest.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/src/test/java/hudson/triggers/TimerTriggerTest.java b/core/src/test/java/hudson/triggers/TimerTriggerTest.java index ef6edf4400..8489776eee 100644 --- a/core/src/test/java/hudson/triggers/TimerTriggerTest.java +++ b/core/src/test/java/hudson/triggers/TimerTriggerTest.java @@ -24,9 +24,14 @@ package hudson.triggers; import antlr.ANTLRException; +import hudson.scheduler.CronTabList; +import hudson.scheduler.Hash; +import org.junit.Assert; import org.junit.Test; import org.jvnet.hudson.test.Issue; +import java.util.TimeZone; + /** * @author Kanstantsin Shautsou */ @@ -36,4 +41,22 @@ public class TimerTriggerTest { public void testNoNPE() throws ANTLRException { new TimerTrigger("").run(); } + + @Issue("JENKINS-43328") + @Test + public void testTimeZoneOffset() throws Exception { + TimeZone defaultTz = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin")); + try { + String cron = "TZ=GMT\nH 0 * * *"; + CronTabList ctl = CronTabList.create(cron, Hash.from("whatever")); + Assert.assertEquals("previous occurrence is in GMT", "GMT", ctl.previous().getTimeZone().getID()); + + cron = "TZ=America/Denver\nH 0 * * *"; + ctl = CronTabList.create(cron, Hash.from("whatever")); + Assert.assertEquals("next occurrence is in America/Denver", "America/Denver", ctl.next().getTimeZone().getID()); + } finally { + TimeZone.setDefault(defaultTz); + } + } }