[california] Use DM when parsing for YMD locales: Bug #735096



commit f7ee14fa27450a332e947c37e10e7d1942f61af4
Author: Jim Nelson <jim yorba org>
Date:   Fri Aug 22 15:54:07 2014 -0700

    Use DM when parsing for YMD locales: Bug #735096
    
    User reports that although their locale uses dates in YMD format,
    DM is used for two-digit dates (i.e. "9/6" is June 9th).  Updating
    DetailsParser to reflect this custom.

 src/component/component-details-parser.vala |    6 +++---
 src/tests/tests-quick-add.vala              |   20 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 3 deletions(-)
---
diff --git a/src/component/component-details-parser.vala b/src/component/component-details-parser.vala
index fe57080..f59b284 100644
--- a/src/component/component-details-parser.vala
+++ b/src/component/component-details-parser.vala
@@ -886,9 +886,9 @@ public class DetailsParser : BaseObject {
                     m = b;
                     y = a;
                 } else {
-                    // MD
-                    d = b;
-                    m = a;
+                    // DM; see https://bugzilla.gnome.org/show_bug.cgi?id=735096
+                    d = a;
+                    m = b;
                     y = -1;
                 }
             break;
diff --git a/src/tests/tests-quick-add.vala b/src/tests/tests-quick-add.vala
index 19e6b3e..168ea73 100644
--- a/src/tests/tests-quick-add.vala
+++ b/src/tests/tests-quick-add.vala
@@ -58,6 +58,7 @@ private class QuickAdd : UnitTest.Harness {
         add_case("quoted", quoted);
         add_case("open-quoted", open_quoted);
         add_case("quoted-atsign", quoted_atsign);
+        add_case("ymd-dm", ymd_dm);
     }
     
     protected override void setup() throws Error {
@@ -677,6 +678,25 @@ private class QuickAdd : UnitTest.Harness {
             && parser.event.exact_time_span.end_exact_time.minute == 0
             && parser.event.exact_time_span.get_date_span().equal_to(Calendar.System.today.to_date_span());
     }
+    
+    // See https://bugzilla.gnome.org/show_bug.cgi?id=735096
+    private bool ymd_dm(out string? dump) throws Error {
+        Calendar.DateOrdering saved = Calendar.System.date_ordering;
+        Calendar.System.date_ordering = Calendar.DateOrdering.YMD;
+        
+        Component.DetailsParser parser = new Component.DetailsParser(
+            "Meeting at 9/6", null);
+        
+        Calendar.System.date_ordering = saved;
+        
+        dump = parser.event.source;
+        
+        return parser.event.summary == "Meeting"
+            && California.String.is_empty(parser.event.location)
+            && parser.event.is_all_day
+            && parser.event.date_span.start_date.day_of_month.value == 9
+            && parser.event.date_span.start_date.month.value == 6;
+    }
 }
 
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]