emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r108529: icalendar / icalendar-tests:


From: Ulf Jasper
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r108529: icalendar / icalendar-tests: Fix Bug#11473 -- unescape commas in timezone specs
Date: Fri, 08 Jun 2012 19:34:09 +0200
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108529
committer: Ulf Jasper <address@hidden>
branch nick: trunk
timestamp: Fri 2012-06-08 19:34:09 +0200
message:
  icalendar / icalendar-tests: Fix Bug#11473 -- unescape commas in timezone 
specs
  
  2012-06-08 Nick Dokos <address@hidden>
  
        * calendar/icalendar.el (icalendar--parse-vtimezone): Import TZID
        string properly, fixes Bug#11473.
  
  2012-06-08  Ulf Jasper  <address@hidden>
  
        * automated/icalendar-tests.el (icalendar--parse-vtimezone): Test
        escaped commas in TZID (Bug#11473).
        (icalendar-import-with-timezone): New.
        (icalendar-real-world): Add new testcase as found in the bugreport
        of Bug#11473.
modified:
  lisp/ChangeLog
  lisp/calendar/icalendar.el
  test/ChangeLog
  test/automated/icalendar-tests.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-06-08 16:39:49 +0000
+++ b/lisp/ChangeLog    2012-06-08 17:34:09 +0000
@@ -1,3 +1,8 @@
+2012-06-08 Nick Dokos <address@hidden>
+
+       * calendar/icalendar.el (icalendar--parse-vtimezone): Import TZID
+       string properly, fixes Bug#11473.
+
 2012-06-08  Chong Yidong  <address@hidden>
 
        * faces.el (set-face-attribute): Doc fix.

=== modified file 'lisp/calendar/icalendar.el'
--- a/lisp/calendar/icalendar.el        2012-05-29 19:42:49 +0000
+++ b/lisp/calendar/icalendar.el        2012-06-08 17:34:09 +0000
@@ -500,7 +500,8 @@
 (defun icalendar--parse-vtimezone (alist)
   "Turn a VTIMEZONE ALIST into a cons (ID . TZ-STRING).
 Return nil if timezone cannot be parsed."
-  (let* ((tz-id (icalendar--get-event-property alist 'TZID))
+  (let* ((tz-id (icalendar--convert-string-for-import
+                 (icalendar--get-event-property alist 'TZID)))
         (daylight (cadr (cdar (icalendar--get-children alist 'DAYLIGHT))))
         (day (and daylight (icalendar--convert-tz-offset daylight t)))
         (standard (cadr (cdar (icalendar--get-children alist 'STANDARD))))

=== modified file 'test/ChangeLog'
--- a/test/ChangeLog    2012-05-29 19:42:49 +0000
+++ b/test/ChangeLog    2012-06-08 17:34:09 +0000
@@ -1,3 +1,11 @@
+2012-06-08  Ulf Jasper  <address@hidden>
+
+       * automated/icalendar-tests.el (icalendar--parse-vtimezone): Test
+       escaped commas in TZID (Bug#11473).
+       (icalendar-import-with-timezone): New.
+       (icalendar-real-world): Add new testcase as given in the bugreport
+       of Bug#11473.
+
 2012-05-29  Ulf Jasper  <address@hidden>
 
        * automated/icalendar-tests.el (icalendar-tests--test-import):

=== modified file 'test/automated/icalendar-tests.el'
--- a/test/automated/icalendar-tests.el 2012-05-29 19:42:49 +0000
+++ b/test/automated/icalendar-tests.el 2012-06-08 17:34:09 +0000
@@ -188,7 +188,7 @@
     (should (string= "STD-02:00DST-03:00,M3.5.0/03:00:00,M10.5.0/04:00:00"
                      (cdr result)))
     (setq vtimezone (icalendar-tests--get-ical-event "BEGIN:VTIMEZONE
-TZID:anothername
+TZID:anothername\, with a comma
 BEGIN:STANDARD
 DTSTART:16010101T040000
 TZOFFSETFROM:+0300
@@ -204,7 +204,7 @@
 END:VTIMEZONE
 "))
     (setq result (icalendar--parse-vtimezone vtimezone))
-    (should (string= "anothername" (car result)))
+    (should (string= "anothername, with a comma" (car result)))
     (message (cdr result))
     (should (string= "STD-02:00DST-03:00,M3.2.1/03:00:00,M10.2.1/04:00:00"
                      (cdr result)))))
@@ -1103,6 +1103,44 @@
    "&19/9/2003 09:00-11:30 non-recurring\n UID: 1234567890uid\n"
    "&9/19/2003 09:00-11:30 non-recurring\n UID: 1234567890uid\n"))
 
+(ert-deftest icalendar-import-with-timezone ()
+  ;; bug#11473
+  (icalendar-tests--test-import
+   "BEGIN:VCALENDAR
+BEGIN:VTIMEZONE
+TZID:fictional\, nonexistent\, arbitrary
+BEGIN:STANDARD
+DTSTART:20100101T000000
+TZOFFSETFROM:+0200
+TZOFFSETTO:-0200
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=01
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20101201T000000
+TZOFFSETFROM:-0200
+TZOFFSETTO:+0200
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+SUMMARY:standardtime
+DTSTART;TZID=\"fictional, nonexistent, arbitrary\":20120115T120000
+DTEND;TZID=\"fictional, nonexistent, arbitrary\":20120115T123000
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY:daylightsavingtime
+DTSTART;TZID=\"fictional, nonexistent, arbitrary\":20121215T120000
+DTEND;TZID=\"fictional, nonexistent, arbitrary\":20121215T123000
+END:VEVENT
+END:VCALENDAR"
+   ;; "standardtime" begins first sunday in january and is 4 hours behind CET
+   ;; "daylightsavingtime" begins first sunday in november and is 1 hour 
before CET
+   "&2012/1/15 15:00-15:30 standardtime
+&2012/12/15 11:00-11:30 daylightsavingtime
+"
+   nil
+   nil)
+  )
 ;; ======================================================================
 ;; Cycle
 ;; ======================================================================
@@ -1863,7 +1901,72 @@
 RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=11;BYMONTHDAY=1
 SUMMARY:NNN Wwwwwwww Wwwww - Aaaaaa Pppppppp rrrrrr ddd oo Nnnnnnnn 30
 ")
-  )
+
+  ;; bug#11473
+  (icalendar-tests--test-import
+   "BEGIN:VCALENDAR
+METHOD:REQUEST
+PRODID:Microsoft Exchange Server 2007
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:(UTC+01:00) Amsterdam\, Berlin\, Bern\, Rome\, Stockholm\, Vienna
+BEGIN:STANDARD
+DTSTART:16010101T030000
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T020000
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+ORGANIZER;CN=\"A. Luser\":MAILTO:address@hidden
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"Luser, Oth
+ er\":MAILTO:address@hidden
+DESCRIPTION;LANGUAGE=en-US:\nWhassup?\n\n
+SUMMARY;LANGUAGE=en-US:Query
+DTSTART;TZID=\"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\"
+ :20120515T150000
+DTEND;TZID=\"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\":2
+ 0120515T153000
+UID:040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000
+ 010000000575268034ECDB649A15349B1BF240F15
+RECURRENCE-ID;TZID=\"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, V
+ ienna\":20120515T170000
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20120514T153645Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:15
+LOCATION;LANGUAGE=en-US:phone
+X-MICROSOFT-CDO-APPT-SEQUENCE:15
+X-MICROSOFT-CDO-OWNERAPPTID:1907632092
+X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:3
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:REMINDER
+TRIGGER;RELATED=START:-PT15M
+END:VALARM
+END:VEVENT
+END:VCALENDAR"
+   nil
+   "&15/5/2012 15:00-15:30 Query
+ Location: phone
+ Organizer: MAILTO:address@hidden
+ Status: CONFIRMED
+ Class: PUBLIC
+ UID: 
040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000010000000575268034ECDB649A15349B1BF240F15
+"     nil)
+)
 
 (provide 'icalendar-tests)
 ;;; icalendar-tests.el ends here


reply via email to

[Prev in Thread] Current Thread [Next in Thread]