This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-mime4j.git
The following commit(s) were added to refs/heads/master by this push:
new ccf26e8c MIME4J-320 Make DateTimeParser case-insensitive for day of
week and month
ccf26e8c is described below
commit ccf26e8cbb62418638e09ef2020da9eaf47820bb
Author: cketti <[email protected]>
AuthorDate: Wed Aug 10 21:42:09 2022 +0200
MIME4J-320 Make DateTimeParser case-insensitive for day of week and month
---
.../james/mime4j/field/datetime/DateTimeParser.jj | 53 ++++++++++++++++------
.../apache/james/mime4j/field/DateTimeTest.java | 30 ++++++++++++
2 files changed, 70 insertions(+), 13 deletions(-)
diff --git
a/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
b/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
index dc110cab..8582f6e9 100644
---
a/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
+++
b/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
@@ -187,7 +187,7 @@ DateTime date_time() :
String day_of_week() :
{}
{
-( "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun"
+( <MON> | <TUE> | <WED> | <THU> | <FRI> | <SAT> | <SUN>
)
{ return token.image; }
}
@@ -208,18 +208,18 @@ int day() :
int month() :
{}
{
- "Jan" { return 1; }
-| "Feb" { return 2; }
-| "Mar" { return 3; }
-| "Apr" { return 4; }
-| "May" { return 5; }
-| "Jun" { return 6; }
-| "Jul" { return 7; }
-| "Aug" { return 8; }
-| "Sep" { return 9; }
-| "Oct" { return 10; }
-| "Nov" { return 11; }
-| "Dec" { return 12; }
+ <JAN> { return 1; }
+| <FEB> { return 2; }
+| <MAR> { return 3; }
+| <APR> { return 4; }
+| <MAY> { return 5; }
+| <JUN> { return 6; }
+| <JUL> { return 7; }
+| <AUG> { return 8; }
+| <SEP> { return 9; }
+| <OCT> { return 10; }
+| <NOV> { return 11; }
+| <DEC> { return 12; }
}
String year() :
@@ -346,6 +346,33 @@ TOKEN :
< DIGITS: ( ["0"-"9"] )+ >
}
+TOKEN [IGNORE_CASE] :
+{
+ < JAN: "Jan" >
+| < FEB: "Feb" >
+| < MAR: "Mar" >
+| < APR: "Apr" >
+| < MAY: "May" >
+| < JUN: "Jun" >
+| < JUL: "Jul" >
+| < AUG: "Aug" >
+| < SEP: "Sep" >
+| < OCT: "Oct" >
+| < NOV: "Nov" >
+| < DEC: "Dec" >
+}
+
+TOKEN [IGNORE_CASE] :
+{
+ < MON: "Mon" >
+| < TUE: "Tue" >
+| < WED: "Wed" >
+| < THU: "Thu" >
+| < FRI: "Fri" >
+| < SAT: "Sat" >
+| < SUN: "Sun" >
+}
+
// GLOBALS
<*>
diff --git a/dom/src/test/java/org/apache/james/mime4j/field/DateTimeTest.java
b/dom/src/test/java/org/apache/james/mime4j/field/DateTimeTest.java
index ca217db1..b914b885 100644
--- a/dom/src/test/java/org/apache/james/mime4j/field/DateTimeTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/field/DateTimeTest.java
@@ -112,4 +112,34 @@ public class DateTimeTest {
Assert.assertEquals(1515169108000L, f.getTime());
}
+ @Test
+ public void parseShouldSupportUppercaseDayOfWeek() throws Exception {
+ Date f = parse("WED, 10 Aug 2022 20:00:00 +0200");
+ Assert.assertEquals(1660154400000L, f.getTime());
+ }
+
+ @Test
+ public void parseShouldSupportLowercaseDayOfWeek() throws Exception {
+ Date f = parse("wed, 10 Aug 2022 20:00:00 +0200");
+ Assert.assertEquals(1660154400000L, f.getTime());
+ }
+
+ @Test
+ public void parseShouldSupportUppercaseMonth() throws Exception {
+ Date f = parse("Wed, 10 AUG 2022 20:00:00 +0200");
+ Assert.assertEquals(1660154400000L, f.getTime());
+ }
+
+ @Test
+ public void parseShouldSupportLowercaseMonth() throws Exception {
+ Date f = parse("Wed, 10 aug 2022 20:00:00 +0200");
+ Assert.assertEquals(1660154400000L, f.getTime());
+ }
+
+ @Test
+ public void parseShouldSupportMixedCaseDate() throws Exception {
+ Date f = parse("WeD, 10 aUg 2022 20:00:00 +0200");
+ Assert.assertEquals(1660154400000L, f.getTime());
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]