tor-browser

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

time-zones-posix.js (5840B)


      1 // |reftest| skip-if(winWidget&&!xulRuntime.shell) -- Windows browser in automation doesn't pick up new time zones correctly
      2 
      3 // Repeats the test from "time-zones.js", but uses POSIX instead of IANA names
      4 // for the time zones. This allows to run these tests on Windows, too.
      5 
      6 // From bug 1330149:
      7 //
      8 // Windows only supports a very limited set of IANA time zone names for the TZ
      9 // environment variable.
     10 //
     11 // TZ format supported by Windows: "TZ=tzn[+|-]hh[:mm[:ss]][dzn]".
     12 //
     13 // Complete list of all IANA time zone ids matching that format.
     14 //
     15 // From tzdata's "northamerica" file:
     16 //   EST5EDT
     17 //   CST6CDT
     18 //   MST7MDT
     19 //   PST8PDT
     20 //
     21 // From tzdata's "backward" file:
     22 //   GMT+0
     23 //   GMT-0
     24 //   GMT0
     25 //
     26 // Also supported on Windows even though they don't match the format listed
     27 // above.
     28 //
     29 // From tzdata's "backward" file:
     30 //   UCT
     31 //   UTC
     32 //
     33 // From tzdata's "etcetera" file:
     34 //   GMT
     35 
     36 
     37 // Perform the following replacements:
     38 //   America/New_York    -> EST5EDT
     39 //   America/Chicago     -> CST6CDT
     40 //   America/Denver      -> MST7MDT
     41 //   America/Los_Angeles -> PST8PDT
     42 //
     43 // And remove any tests not matching one of the four time zones from above.
     44 
     45 // bug 294908
     46 inTimeZone("EST5EDT", () => {
     47    let dt = new Date(2003, Month.April, 6, 2, 30, 00);
     48    assertDateTime(dt, "Sun Apr 06 2003 03:30:00 GMT-0400 (EDT)", "Eastern Daylight Time");
     49 });
     50 
     51 // bug 610183
     52 inTimeZone("PST8PDT", () => {
     53    let dt = new Date(2014, Month.November, 2, 1, 47, 42);
     54    assertDateTime(dt, "Sun Nov 02 2014 01:47:42 GMT-0700 (PDT)", "Pacific Daylight Time");
     55 });
     56 
     57 // bug 629465
     58 inTimeZone("MST7MDT", () => {
     59    let dt1 = new Date(Date.UTC(2015, Month.November, 1, 0, 0, 0) + 6 * msPerHour);
     60    assertDateTime(dt1, "Sun Nov 01 2015 00:00:00 GMT-0600 (MDT)", "Mountain Daylight Time");
     61 
     62    let dt2 = new Date(Date.UTC(2015, Month.November, 1, 1, 0, 0) + 6 * msPerHour);
     63    assertDateTime(dt2, "Sun Nov 01 2015 01:00:00 GMT-0600 (MDT)", "Mountain Daylight Time");
     64 
     65    let dt3 = new Date(Date.UTC(2015, Month.November, 1, 1, 0, 0) + 7 * msPerHour);
     66    assertDateTime(dt3, "Sun Nov 01 2015 01:00:00 GMT-0700 (MST)", "Mountain Standard Time");
     67 });
     68 
     69 // bug 742427
     70 inTimeZone("EST5EDT", () => {
     71    let dt = new Date(2009, Month.March, 8, 1, 0, 0);
     72    assertDateTime(dt, "Sun Mar 08 2009 01:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     73    dt.setHours(dt.getHours() + 1);
     74    assertDateTime(dt, "Sun Mar 08 2009 03:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
     75 });
     76 inTimeZone("MST7MDT", () => {
     77    let dt = new Date(2009, Month.March, 8, 1, 0, 0);
     78    assertDateTime(dt, "Sun Mar 08 2009 01:00:00 GMT-0700 (MST)", "Mountain Standard Time");
     79    dt.setHours(dt.getHours() + 1);
     80    assertDateTime(dt, "Sun Mar 08 2009 03:00:00 GMT-0600 (MDT)", "Mountain Daylight Time");
     81 });
     82 inTimeZone("EST5EDT", () => {
     83    let dt1 = new Date(Date.UTC(2008, Month.March, 9, 0, 0, 0) + 5 * msPerHour);
     84    assertDateTime(dt1, "Sun Mar 09 2008 00:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     85 
     86    let dt2 = new Date(Date.UTC(2008, Month.March, 9, 1, 0, 0) + 5 * msPerHour);
     87    assertDateTime(dt2, "Sun Mar 09 2008 01:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     88 
     89    let dt3 = new Date(Date.UTC(2008, Month.March, 9, 4, 0, 0) + 4 * msPerHour);
     90    assertDateTime(dt3, "Sun Mar 09 2008 04:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
     91 });
     92 
     93 // bug 802627
     94 inTimeZone("EST5EDT", () => {
     95    let dt = new Date(0);
     96    assertDateTime(dt, "Wed Dec 31 1969 19:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     97 });
     98 
     99 // bug 879261
    100 inTimeZone("EST5EDT", () => {
    101    let dt1 = new Date(1362891600000);
    102    assertDateTime(dt1, "Sun Mar 10 2013 00:00:00 GMT-0500 (EST)", "Eastern Standard Time");
    103 
    104    let dt2 = new Date(dt1.setHours(dt1.getHours() + 24));
    105    assertDateTime(dt2, "Mon Mar 11 2013 00:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
    106 });
    107 inTimeZone("PST8PDT", () => {
    108    let dt1 = new Date(2014, Month.January, 1);
    109    assertDateTime(dt1, "Wed Jan 01 2014 00:00:00 GMT-0800 (PST)", "Pacific Standard Time");
    110 
    111    let dt2 = new Date(2014, Month.August, 1);
    112    assertDateTime(dt2, "Fri Aug 01 2014 00:00:00 GMT-0700 (PDT)", "Pacific Daylight Time");
    113 });
    114 inTimeZone("EST5EDT", () => {
    115    let dt1 = new Date(2016, Month.October, 14, 3, 5, 9);
    116    assertDateTime(dt1, "Fri Oct 14 2016 03:05:09 GMT-0400 (EDT)", "Eastern Daylight Time");
    117 
    118    let dt2 = new Date(2016, Month.January, 9, 23, 26, 40);
    119    assertDateTime(dt2, "Sat Jan 09 2016 23:26:40 GMT-0500 (EST)", "Eastern Standard Time");
    120 });
    121 
    122 // bug 1084547
    123 inTimeZone("EST5EDT", () => {
    124    let dt = new Date(Date.parse("2014-11-02T02:00:00-04:00"));
    125    assertDateTime(dt, "Sun Nov 02 2014 01:00:00 GMT-0500 (EST)", "Eastern Standard Time");
    126 
    127    dt.setMilliseconds(0);
    128    assertDateTime(dt, "Sun Nov 02 2014 01:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
    129 });
    130 
    131 // bug 1303306
    132 inTimeZone("EST5EDT", () => {
    133    let dt = new Date(2016, Month.September, 15, 16, 14, 48);
    134    assertDateTime(dt, "Thu Sep 15 2016 16:14:48 GMT-0400 (EDT)", "Eastern Daylight Time");
    135 });
    136 
    137 // bug 1317364
    138 inTimeZone("PST8PDT", () => {
    139    let dt = new Date(2016, Month.March, 13, 2, 30, 0, 0);
    140    assertDateTime(dt, "Sun Mar 13 2016 03:30:00 GMT-0700 (PDT)", "Pacific Daylight Time");
    141 
    142    let dt2 = new Date(2016, Month.January, 5, 0, 30, 30, 500);
    143    assertDateTime(dt2, "Tue Jan 05 2016 00:30:30 GMT-0800 (PST)", "Pacific Standard Time");
    144 
    145    let dt3 = new Date(dt2.getTime());
    146    dt3.setMonth(dt2.getMonth() + 2);
    147    dt3.setDate(dt2.getDate() + 7 + 1);
    148    dt3.setHours(dt2.getHours() + 2);
    149 
    150    assertEq(dt3.getHours(), 3);
    151 });
    152 
    153 // bug 1355272
    154 inTimeZone("PST8PDT", () => {
    155    let dt = new Date(2017, Month.April, 10, 17, 25, 07);
    156    assertDateTime(dt, "Mon Apr 10 2017 17:25:07 GMT-0700 (PDT)", "Pacific Daylight Time");
    157 });
    158 
    159 if (typeof reportCompare === "function")
    160    reportCompare(true, true);