summaryrefslogtreecommitdiffstats
path: root/luni/src/test/java/libcore/java/util/TimeZoneTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'luni/src/test/java/libcore/java/util/TimeZoneTest.java')
-rw-r--r--luni/src/test/java/libcore/java/util/TimeZoneTest.java62
1 files changed, 58 insertions, 4 deletions
diff --git a/luni/src/test/java/libcore/java/util/TimeZoneTest.java b/luni/src/test/java/libcore/java/util/TimeZoneTest.java
index d94b017..6e8b8d8 100644
--- a/luni/src/test/java/libcore/java/util/TimeZoneTest.java
+++ b/luni/src/test/java/libcore/java/util/TimeZoneTest.java
@@ -17,12 +17,14 @@
package libcore.java.util;
import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
-import java.util.TimeZone;
import java.util.SimpleTimeZone;
+import java.util.TimeZone;
+import junit.framework.TestCase;
-public class TimeZoneTest extends junit.framework.TestCase {
+public class TimeZoneTest extends TestCase {
// http://code.google.com/p/android/issues/detail?id=877
public void test_useDaylightTime_Taiwan() {
TimeZone asiaTaipei = TimeZone.getTimeZone("Asia/Taipei");
@@ -144,8 +146,8 @@ public class TimeZoneTest extends junit.framework.TestCase {
// http://code.google.com/p/android/issues/detail?id=11918
public void testHasSameRules() throws Exception {
- TimeZone denver = TimeZone.getTimeZone ("America/Denver") ;
- TimeZone phoenix = TimeZone.getTimeZone ("America/Phoenix") ;
+ TimeZone denver = TimeZone.getTimeZone("America/Denver");
+ TimeZone phoenix = TimeZone.getTimeZone("America/Phoenix");
assertFalse(denver.hasSameRules(phoenix));
}
@@ -157,4 +159,56 @@ public class TimeZoneTest extends junit.framework.TestCase {
} catch (NullPointerException expected) {
}
}
+
+ // http://b.corp.google.com/issue?id=6556561
+ public void testCustomZoneIds() throws Exception {
+ // These are all okay (and equivalent).
+ assertEquals("GMT+05:00", TimeZone.getTimeZone("GMT+05:00").getID());
+ assertEquals("GMT+05:00", TimeZone.getTimeZone("GMT+5:00").getID());
+ assertEquals("GMT+05:00", TimeZone.getTimeZone("GMT+0500").getID());
+ assertEquals("GMT+05:00", TimeZone.getTimeZone("GMT+500").getID());
+ assertEquals("GMT+05:00", TimeZone.getTimeZone("GMT+5").getID());
+ // These aren't.
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5.5").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:5").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:0").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:005").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:000").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+005:00").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+05:99").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+28:00").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+05:00.00").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+05:00:00").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+junk").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5junk").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:junk").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("GMT+5:00junk").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("junkGMT+5:00").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("junk").getID());
+ assertEquals("GMT", TimeZone.getTimeZone("gmt+5:00").getID());
+ }
+
+ public void test_getDSTSavings() throws Exception {
+ assertEquals(0, TimeZone.getTimeZone("UTC").getDSTSavings());
+ assertEquals(3600000, TimeZone.getTimeZone("America/Los_Angeles").getDSTSavings());
+ assertEquals(1800000, TimeZone.getTimeZone("Australia/Lord_Howe").getDSTSavings());
+ }
+
+ public void testSimpleTimeZoneDoesNotCallOverrideableMethodsFromConstructor() {
+ new SimpleTimeZone(0, "X", Calendar.MARCH, 1, 1, 1, Calendar.SEPTEMBER, 1, 1, 1) {
+ @Override public void setStartRule(int m, int d, int dow, int time) {
+ fail();
+ }
+ @Override public void setStartRule(int m, int d, int dow, int time, boolean after) {
+ fail();
+ }
+ @Override public void setEndRule(int m, int d, int dow, int time) {
+ fail();
+ }
+ @Override public void setEndRule(int m, int d, int dow, int time, boolean after) {
+ fail();
+ }
+ };
+ }
}