summaryrefslogtreecommitdiffstats
path: root/comm/calendar/test/unit/test_weekinfo_service.js
blob: 9be4d02dd38ae82feb4dbb0d99d5d9462be5aac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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);
}