From 3e8ec14402afd88a6ad42b89efdbf2bd47d1e6b5 Mon Sep 17 00:00:00 2001 From: sakebook Date: Wed, 6 Nov 2019 09:05:50 +0900 Subject: [PATCH 1/3] Add Locale.ROOT use SimpleDateFormat --- .../java/com/google/firebase/internal/DateUtils.java | 7 ++++--- .../internal/RetryUnsuccessfulResponseHandlerTest.java | 5 ++++- .../java/com/google/firebase/messaging/MessageTest.java | 9 +++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/google/firebase/internal/DateUtils.java b/src/main/java/com/google/firebase/internal/DateUtils.java index 6c4eeb7b0..21020ad51 100644 --- a/src/main/java/com/google/firebase/internal/DateUtils.java +++ b/src/main/java/com/google/firebase/internal/DateUtils.java @@ -20,6 +20,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.Locale; import java.util.TimeZone; /** @@ -57,9 +58,9 @@ final class DateUtils { static final String PATTERN_ASCTIME = "EEE MMM d HH:mm:ss yyyy"; private static final SimpleDateFormat[] DEFAULT_PATTERNS = new SimpleDateFormat[] { - new SimpleDateFormat(PATTERN_RFC1123), - new SimpleDateFormat(PATTERN_RFC1036), - new SimpleDateFormat(PATTERN_ASCTIME) + new SimpleDateFormat(PATTERN_RFC1123, Locale.ROOT), + new SimpleDateFormat(PATTERN_RFC1036, Locale.ROOT), + new SimpleDateFormat(PATTERN_ASCTIME, Locale.ROOT) }; static final TimeZone GMT = TimeZone.getTimeZone("GMT"); diff --git a/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java b/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java index 077e9e52f..1c9f59a09 100644 --- a/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java +++ b/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java @@ -35,7 +35,9 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.TimeZone; + import org.junit.Test; public class RetryUnsuccessfulResponseHandlerTest { @@ -137,7 +139,8 @@ public void testRetryAfterGivenAsSeconds() throws IOException { @Test public void testRetryAfterGivenAsDate() throws IOException { - SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz"); + SimpleDateFormat dateFormat = + new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ROOT); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = new Date(1000); Clock clock = new FixedClock(date.getTime()); diff --git a/src/test/java/com/google/firebase/messaging/MessageTest.java b/src/test/java/com/google/firebase/messaging/MessageTest.java index 7c8f528df..fabff0a5d 100644 --- a/src/test/java/com/google/firebase/messaging/MessageTest.java +++ b/src/test/java/com/google/firebase/messaging/MessageTest.java @@ -33,6 +33,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.concurrent.TimeUnit; import org.junit.Test; @@ -769,7 +770,7 @@ public void testImageInAndroidNotification() throws IOException { assertJsonEquals(ImmutableMap.of( "topic", "test-topic", "notification", notification, "android", androidConfig), message); } - + @Test public void testImageInApnsNotification() throws IOException { Message message = Message.builder() @@ -799,7 +800,7 @@ public void testImageInApnsNotification() throws IOException { .build(); assertJsonEquals(expected, message); } - + @Test public void testInvalidColorInAndroidNotificationLightSettings() throws IOException { try { @@ -814,7 +815,7 @@ public void testInvalidColorInAndroidNotificationLightSettings() throws IOExcept // expected } } - + @Test public void testExtendedAndroidNotificationParameters() throws IOException { long[] vibrateTimings = {1000L, 1001L}; @@ -848,7 +849,7 @@ public void testExtendedAndroidNotificationParameters() throws IOException { .put("title", "title") .put("body", "body") .build(); - String eventTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'") + String eventTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'", Locale.ROOT) .format(new Date(1546304523123L)); Map androidConfig = ImmutableMap.builder() .put("notification", ImmutableMap.builder() From 861efb1744e58ff730243ab13fa3a5d3dd659bc7 Mon Sep 17 00:00:00 2001 From: sakebook Date: Wed, 6 Nov 2019 09:40:30 +0900 Subject: [PATCH 2/3] Fix SimpleDateFormat locale use UK --- src/main/java/com/google/firebase/internal/DateUtils.java | 6 +++--- .../internal/RetryUnsuccessfulResponseHandlerTest.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/google/firebase/internal/DateUtils.java b/src/main/java/com/google/firebase/internal/DateUtils.java index 21020ad51..825c54178 100644 --- a/src/main/java/com/google/firebase/internal/DateUtils.java +++ b/src/main/java/com/google/firebase/internal/DateUtils.java @@ -58,9 +58,9 @@ final class DateUtils { static final String PATTERN_ASCTIME = "EEE MMM d HH:mm:ss yyyy"; private static final SimpleDateFormat[] DEFAULT_PATTERNS = new SimpleDateFormat[] { - new SimpleDateFormat(PATTERN_RFC1123, Locale.ROOT), - new SimpleDateFormat(PATTERN_RFC1036, Locale.ROOT), - new SimpleDateFormat(PATTERN_ASCTIME, Locale.ROOT) + new SimpleDateFormat(PATTERN_RFC1123, Locale.UK), + new SimpleDateFormat(PATTERN_RFC1036, Locale.UK), + new SimpleDateFormat(PATTERN_ASCTIME, Locale.UK) }; static final TimeZone GMT = TimeZone.getTimeZone("GMT"); diff --git a/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java b/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java index 1c9f59a09..2eb30160b 100644 --- a/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java +++ b/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java @@ -140,7 +140,7 @@ public void testRetryAfterGivenAsSeconds() throws IOException { @Test public void testRetryAfterGivenAsDate() throws IOException { SimpleDateFormat dateFormat = - new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ROOT); + new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.UK); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = new Date(1000); Clock clock = new FixedClock(date.getTime()); From de215779fdf1afac505eb7416a86e488d9714543 Mon Sep 17 00:00:00 2001 From: sakebook Date: Wed, 6 Nov 2019 10:09:59 +0900 Subject: [PATCH 3/3] Change default locale to US --- src/main/java/com/google/firebase/internal/DateUtils.java | 6 +++--- .../internal/RetryUnsuccessfulResponseHandlerTest.java | 2 +- .../java/com/google/firebase/messaging/MessageTest.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/google/firebase/internal/DateUtils.java b/src/main/java/com/google/firebase/internal/DateUtils.java index 825c54178..a55fac8c0 100644 --- a/src/main/java/com/google/firebase/internal/DateUtils.java +++ b/src/main/java/com/google/firebase/internal/DateUtils.java @@ -58,9 +58,9 @@ final class DateUtils { static final String PATTERN_ASCTIME = "EEE MMM d HH:mm:ss yyyy"; private static final SimpleDateFormat[] DEFAULT_PATTERNS = new SimpleDateFormat[] { - new SimpleDateFormat(PATTERN_RFC1123, Locale.UK), - new SimpleDateFormat(PATTERN_RFC1036, Locale.UK), - new SimpleDateFormat(PATTERN_ASCTIME, Locale.UK) + new SimpleDateFormat(PATTERN_RFC1123, Locale.US), + new SimpleDateFormat(PATTERN_RFC1036, Locale.US), + new SimpleDateFormat(PATTERN_ASCTIME, Locale.US) }; static final TimeZone GMT = TimeZone.getTimeZone("GMT"); diff --git a/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java b/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java index 2eb30160b..f0bc2d0b3 100644 --- a/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java +++ b/src/test/java/com/google/firebase/internal/RetryUnsuccessfulResponseHandlerTest.java @@ -140,7 +140,7 @@ public void testRetryAfterGivenAsSeconds() throws IOException { @Test public void testRetryAfterGivenAsDate() throws IOException { SimpleDateFormat dateFormat = - new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.UK); + new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = new Date(1000); Clock clock = new FixedClock(date.getTime()); diff --git a/src/test/java/com/google/firebase/messaging/MessageTest.java b/src/test/java/com/google/firebase/messaging/MessageTest.java index fabff0a5d..562466f4a 100644 --- a/src/test/java/com/google/firebase/messaging/MessageTest.java +++ b/src/test/java/com/google/firebase/messaging/MessageTest.java @@ -849,7 +849,7 @@ public void testExtendedAndroidNotificationParameters() throws IOException { .put("title", "title") .put("body", "body") .build(); - String eventTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'", Locale.ROOT) + String eventTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'", Locale.US) .format(new Date(1546304523123L)); Map androidConfig = ImmutableMap.builder() .put("notification", ImmutableMap.builder()