summaryrefslogtreecommitdiffstats
path: root/comm/calendar/test/unit/test_bug356207.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--comm/calendar/test/unit/test_bug356207.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/comm/calendar/test/unit/test_bug356207.js b/comm/calendar/test/unit/test_bug356207.js
new file mode 100644
index 0000000000..1ad23c6acd
--- /dev/null
+++ b/comm/calendar/test/unit/test_bug356207.js
@@ -0,0 +1,47 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+function run_test() {
+ do_calendar_startup(really_run_test);
+}
+
+function really_run_test() {
+ // Check that Bug 356207 doesn't regress:
+ // Freeze (hang) on RRULE which has BYMONTHDAY and BYDAY
+
+ let icalString =
+ "BEGIN:VCALENDAR\n" +
+ "PRODID:-//Randy L Pearson//NONSGML Outlook2vCal V1.1//EN\n" +
+ "VERSION:2.0\n" +
+ "BEGIN:VEVENT\n" +
+ "CREATED:20040829T163323\n" +
+ "UID:00000000EBFAC68C9B92BF119D643623FBD17E1424312000\n" +
+ "SEQUENCE:1\n" +
+ "LAST-MODIFIED:20060615T231158\n" +
+ "DTSTAMP:20040829T163323\n" +
+ "ORGANIZER:Unknown\n" +
+ "DTSTART:20040901T141500\n" +
+ "DESCRIPTION:Contact Mary Tindall for more details.\n" +
+ "CLASS:PUBLIC\n" +
+ "LOCATION:Church\n" +
+ "CATEGORIES:Church Events\n" +
+ "SUMMARY:Friendship Circle\n" +
+ "PRIORITY:1\n" +
+ "DTEND:20040901T141500\n" +
+ "RRULE:FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=1;BYDAY=WE\n" +
+ "END:VEVENT\n" +
+ "END:VCALENDAR";
+
+ let event = createEventFromIcalString(icalString);
+ let start = createDate(2009, 0, 1);
+ let end = createDate(2009, 11, 31);
+
+ // the following call caused a never ending loop:
+ let occurrenceDates = event.recurrenceInfo.getOccurrenceDates(start, end, 0);
+ equal(occurrenceDates.length, 2);
+
+ // the following call caused a never ending loop:
+ let occurrences = event.recurrenceInfo.getOccurrences(start, end, 0);
+ equal(occurrences.length, 2);
+}