diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/calendar/test/unit/test_bug494140.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/calendar/test/unit/test_bug494140.js')
-rw-r--r-- | comm/calendar/test/unit/test_bug494140.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/comm/calendar/test/unit/test_bug494140.js b/comm/calendar/test/unit/test_bug494140.js new file mode 100644 index 0000000000..9a5baa6956 --- /dev/null +++ b/comm/calendar/test/unit/test_bug494140.js @@ -0,0 +1,57 @@ +/* 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/. */ + +/** + * In bug 494140 we found out that creating an exception to a series duplicates + * alarms. This unit test makes sure the alarms don't duplicate themselves. The + * same goes for relations and attachments. + */ +add_task(async () => { + let storageCal = getStorageCal(); + + let item = createEventFromIcalString( + "BEGIN:VEVENT\r\n" + + "CREATED:20090603T171401Z\r\n" + + "LAST-MODIFIED:20090617T080410Z\r\n" + + "DTSTAMP:20090617T080410Z\r\n" + + "UID:c1a6cfe7-7fbb-4bfb-a00d-861e07c649a5\r\n" + + "SUMMARY:Test\r\n" + + "DTSTART:20090603T073000Z\r\n" + + "DTEND:20090603T091500Z\r\n" + + "RRULE:FREQ=DAILY;COUNT=5\r\n" + + "RELATED-TO:RELTYPE=SIBLING:<foo@example.org>\r\n" + + "ATTACH:http://www.example.org/\r\n" + + "BEGIN:VALARM\r\n" + + "ACTION:DISPLAY\r\n" + + "TRIGGER;VALUE=DURATION:-PT10M\r\n" + + "DESCRIPTION:Mozilla Alarm: Test\r\n" + + "END:VALARM\r\n" + + "END:VEVENT" + ); + + // There should be one alarm, one relation and one attachment + equal(item.getAlarms().length, 1); + equal(item.getRelations().length, 1); + equal(item.getAttachments().length, 1); + + // Change the occurrence to another day + let occ = item.recurrenceInfo.getOccurrenceFor(cal.createDateTime("20090604T073000Z")); + occ.QueryInterface(Ci.calIEvent); + occ.startDate = cal.createDateTime("20090618T073000Z"); + item.recurrenceInfo.modifyException(occ, true); + + // There should still be one alarm, one relation and one attachment + equal(item.getAlarms().length, 1); + equal(item.getRelations().length, 1); + equal(item.getAttachments().length, 1); + + // Add the item to the storage calendar and retrieve it again + await storageCal.adoptItem(item); + + let retrievedItem = await storageCal.getItem("c1a6cfe7-7fbb-4bfb-a00d-861e07c649a5"); + // There should still be one alarm, one relation and one attachment + equal(retrievedItem.getAlarms().length, 1); + equal(retrievedItem.getRelations().length, 1); + equal(retrievedItem.getAttachments().length, 1); +}); |