summaryrefslogtreecommitdiffstats
path: root/comm/calendar/test/unit/test_weekinfo_service.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/calendar/test/unit/test_weekinfo_service.js')
-rw-r--r--comm/calendar/test/unit/test_weekinfo_service.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/comm/calendar/test/unit/test_weekinfo_service.js b/comm/calendar/test/unit/test_weekinfo_service.js
new file mode 100644
index 0000000000..9be4d02dd3
--- /dev/null
+++ b/comm/calendar/test/unit/test_weekinfo_service.js
@@ -0,0 +1,33 @@
+/* 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() {
+ // Bug 1239622. The 1st of January after a leap year which ends with
+ // a Thursday belongs to week number 53 unless the start of week is
+ // set on Friday.
+ let wkst_wknum_date = [
+ [1, 53, "20210101T000000Z"], // Year 2021 affected by Bug 1239622
+ [5, 1, "20210101T000000Z"], //
+ [3, 53, "20490101T000000Z"], // Year 2049 affected by Bug 1239622
+ [5, 1, "20490101T000000Z"], //
+ [0, 1, "20170101T000000Z"], // Year that starts on Sunday ...
+ [3, 52, "20180101T000000Z"], // ... Monday
+ [0, 1, "20190101T000000Z"], // ... Tuesday
+ [4, 52, "20200101T000000Z"], // ... Wednesday
+ [0, 1, "20260101T000000Z"], // ... Thursday
+ [0, 53, "20270101T000000Z"], // ... Friday
+ [0, 52, "20280101T000000Z"],
+ ]; // ... Saturday
+
+ let savedWeekStart = Services.prefs.getIntPref("calendar.week.start", 0);
+ for (let [weekStart, weekNumber, dateString] of wkst_wknum_date) {
+ Services.prefs.setIntPref("calendar.week.start", weekStart);
+ let date = cal.createDateTime(dateString);
+ date.isDate = true;
+ let week = cal.weekInfoService.getWeekTitle(date);
+
+ equal(week, weekNumber, "Week number matches for " + dateString);
+ }
+ Services.prefs.setIntPref("calendar.week.start", savedWeekStart);
+}