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 <c...@cketti.de>
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: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to