tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

time-zone-pst.js (5732B)


      1 // |reftest| skip-if(!xulRuntime.shell)
      2 
      3 assertEq(/^(PST|PDT)$/.test(getTimeZone()), true,
      4         "The default time zone is set to PST8PDT for all jstests (when run in the shell)");
      5 
      6 const msPerMinute = 60 * 1000;
      7 
      8 function shortTimeZone(str) {
      9    return str.replace("(Pacific Standard Time)", "(PST)")
     10              .replace("(Pacific Daylight Time)", "(PDT)");
     11 }
     12 
     13 function assertEqDate(dt, date, time) {
     14    assertEq(shortTimeZone(dt.toString()), `${date} ${time}`);
     15    assertEq(dt.toDateString(), date);
     16    assertEq(shortTimeZone(dt.toTimeString()), time);
     17 }
     18 
     19 // PDT -> PST, using milliseconds from epoch.
     20 {
     21    let midnight = new Date(2016, Month.November, 6, 0, 0, 0, 0);
     22    let midnightUTC = Date.UTC(2016, Month.November, 6, 0, 0, 0, 0);
     23 
     24    // Ensure midnight time is correct.
     25    assertEq(midnightUTC - midnight.getTime(), -7 * msPerHour);
     26 
     27    let tests = [
     28        { offset: 0 * 60,      date: "Sun Nov 06 2016", time: "00:00:00 GMT-0700 (PDT)" },
     29        { offset: 0 * 60 + 30, date: "Sun Nov 06 2016", time: "00:30:00 GMT-0700 (PDT)" },
     30        { offset: 1 * 60,      date: "Sun Nov 06 2016", time: "01:00:00 GMT-0700 (PDT)" },
     31        { offset: 1 * 60 + 30, date: "Sun Nov 06 2016", time: "01:30:00 GMT-0700 (PDT)" },
     32        { offset: 2 * 60,      date: "Sun Nov 06 2016", time: "01:00:00 GMT-0800 (PST)" },
     33        { offset: 2 * 60 + 30, date: "Sun Nov 06 2016", time: "01:30:00 GMT-0800 (PST)" },
     34        { offset: 3 * 60,      date: "Sun Nov 06 2016", time: "02:00:00 GMT-0800 (PST)" },
     35        { offset: 3 * 60 + 30, date: "Sun Nov 06 2016", time: "02:30:00 GMT-0800 (PST)" },
     36        { offset: 4 * 60,      date: "Sun Nov 06 2016", time: "03:00:00 GMT-0800 (PST)" },
     37        { offset: 4 * 60 + 30, date: "Sun Nov 06 2016", time: "03:30:00 GMT-0800 (PST)" },
     38    ];
     39 
     40    for (let {offset, date, time} of tests) {
     41        let dt = new Date(midnight.getTime() + offset * msPerMinute);
     42        assertEqDate(dt, date, time);
     43    }
     44 }
     45 
     46 
     47 // PDT -> PST, using local date-time.
     48 {
     49    let tests = [
     50        { offset: 0 * 60,      date: "Sun Nov 06 2016", time: "00:00:00 GMT-0700 (PDT)" },
     51        { offset: 0 * 60 + 30, date: "Sun Nov 06 2016", time: "00:30:00 GMT-0700 (PDT)" },
     52        { offset: 1 * 60,      date: "Sun Nov 06 2016", time: "01:00:00 GMT-0700 (PDT)" },
     53        { offset: 1 * 60 + 30, date: "Sun Nov 06 2016", time: "01:30:00 GMT-0700 (PDT)" },
     54        { offset: 2 * 60,      date: "Sun Nov 06 2016", time: "02:00:00 GMT-0800 (PST)" },
     55        { offset: 2 * 60 + 30, date: "Sun Nov 06 2016", time: "02:30:00 GMT-0800 (PST)" },
     56        { offset: 3 * 60,      date: "Sun Nov 06 2016", time: "03:00:00 GMT-0800 (PST)" },
     57        { offset: 3 * 60 + 30, date: "Sun Nov 06 2016", time: "03:30:00 GMT-0800 (PST)" },
     58        { offset: 4 * 60,      date: "Sun Nov 06 2016", time: "04:00:00 GMT-0800 (PST)" },
     59        { offset: 4 * 60 + 30, date: "Sun Nov 06 2016", time: "04:30:00 GMT-0800 (PST)" },
     60    ];
     61 
     62    for (let {offset, date, time} of tests) {
     63        let dt = new Date(2016, Month.November, 6, (offset / 60)|0, (offset % 60), 0, 0);
     64        assertEqDate(dt, date, time);
     65    }
     66 }
     67 
     68 
     69 // PST -> PDT, using milliseconds from epoch.
     70 {
     71    let midnight = new Date(2016, Month.March, 13, 0, 0, 0, 0);
     72    let midnightUTC = Date.UTC(2016, Month.March, 13, 0, 0, 0, 0);
     73 
     74    // Ensure midnight time is correct.
     75    assertEq(midnightUTC - midnight.getTime(), -8 * msPerHour);
     76 
     77    let tests = [
     78        { offset: 0 * 60,      date: "Sun Mar 13 2016", time: "00:00:00 GMT-0800 (PST)" },
     79        { offset: 0 * 60 + 30, date: "Sun Mar 13 2016", time: "00:30:00 GMT-0800 (PST)" },
     80        { offset: 1 * 60,      date: "Sun Mar 13 2016", time: "01:00:00 GMT-0800 (PST)" },
     81        { offset: 1 * 60 + 30, date: "Sun Mar 13 2016", time: "01:30:00 GMT-0800 (PST)" },
     82        { offset: 2 * 60,      date: "Sun Mar 13 2016", time: "03:00:00 GMT-0700 (PDT)" },
     83        { offset: 2 * 60 + 30, date: "Sun Mar 13 2016", time: "03:30:00 GMT-0700 (PDT)" },
     84        { offset: 3 * 60,      date: "Sun Mar 13 2016", time: "04:00:00 GMT-0700 (PDT)" },
     85        { offset: 3 * 60 + 30, date: "Sun Mar 13 2016", time: "04:30:00 GMT-0700 (PDT)" },
     86        { offset: 4 * 60,      date: "Sun Mar 13 2016", time: "05:00:00 GMT-0700 (PDT)" },
     87        { offset: 4 * 60 + 30, date: "Sun Mar 13 2016", time: "05:30:00 GMT-0700 (PDT)" },
     88    ];
     89 
     90    for (let {offset, date, time} of tests) {
     91        let dt = new Date(midnight.getTime() + offset * msPerMinute);
     92        assertEqDate(dt, date, time);
     93    }
     94 }
     95 
     96 
     97 // PST -> PDT, using local date-time.
     98 {
     99    let tests = [
    100        { offset: 0 * 60,      date: "Sun Mar 13 2016", time: "00:00:00 GMT-0800 (PST)" },
    101        { offset: 0 * 60 + 30, date: "Sun Mar 13 2016", time: "00:30:00 GMT-0800 (PST)" },
    102        { offset: 1 * 60,      date: "Sun Mar 13 2016", time: "01:00:00 GMT-0800 (PST)" },
    103        { offset: 1 * 60 + 30, date: "Sun Mar 13 2016", time: "01:30:00 GMT-0800 (PST)" },
    104        { offset: 2 * 60,      date: "Sun Mar 13 2016", time: "03:00:00 GMT-0700 (PDT)" },
    105        { offset: 2 * 60 + 30, date: "Sun Mar 13 2016", time: "03:30:00 GMT-0700 (PDT)" },
    106        { offset: 3 * 60,      date: "Sun Mar 13 2016", time: "03:00:00 GMT-0700 (PDT)" },
    107        { offset: 3 * 60 + 30, date: "Sun Mar 13 2016", time: "03:30:00 GMT-0700 (PDT)" },
    108        { offset: 4 * 60,      date: "Sun Mar 13 2016", time: "04:00:00 GMT-0700 (PDT)" },
    109        { offset: 4 * 60 + 30, date: "Sun Mar 13 2016", time: "04:30:00 GMT-0700 (PDT)" },
    110    ];
    111 
    112    for (let {offset, date, time} of tests) {
    113        let dt = new Date(2016, Month.March, 13, (offset / 60)|0, (offset % 60), 0, 0);
    114        assertEqDate(dt, date, time);
    115    }
    116 }
    117 
    118 
    119 if (typeof reportCompare === "function")
    120    reportCompare(true, true);