tor-browser

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

time-zones.js (11278B)


      1 // |reftest| skip-if(winWidget) -- Windows doesn't accept IANA names for the TZ env variable
      2 
      3 // bug 158328
      4 inTimeZone("Europe/London", () => {
      5    let dt1 = new Date(2002, Month.July, 19, 16, 10, 55);
      6    assertDateTime(dt1, "Fri Jul 19 2002 16:10:55 GMT+0100 (BST)", "British Summer Time");
      7 
      8    let dt2 = new Date(2009, Month.December, 24, 13, 44, 52);
      9    assertDateTime(dt2, "Thu Dec 24 2009 13:44:52 GMT+0000 (GMT)", "Greenwich Mean Time");
     10 });
     11 
     12 // bug 294908
     13 inTimeZone("America/New_York", () => {
     14    let dt = new Date(2003, Month.April, 6, 2, 30, 00);
     15    assertDateTime(dt, "Sun Apr 06 2003 03:30:00 GMT-0400 (EDT)", "Eastern Daylight Time");
     16 });
     17 
     18 // bug 610183
     19 inTimeZone("America/Los_Angeles", () => {
     20    let dt = new Date(2014, Month.November, 2, 1, 47, 42);
     21    assertDateTime(dt, "Sun Nov 02 2014 01:47:42 GMT-0700 (PDT)", "Pacific Daylight Time");
     22 });
     23 
     24 // bug 629465
     25 inTimeZone("America/Denver", () => {
     26    let dt1 = new Date(Date.UTC(2015, Month.November, 1, 0, 0, 0) + 6 * msPerHour);
     27    assertDateTime(dt1, "Sun Nov 01 2015 00:00:00 GMT-0600 (MDT)", "Mountain Daylight Time");
     28 
     29    let dt2 = new Date(Date.UTC(2015, Month.November, 1, 1, 0, 0) + 6 * msPerHour);
     30    assertDateTime(dt2, "Sun Nov 01 2015 01:00:00 GMT-0600 (MDT)", "Mountain Daylight Time");
     31 
     32    let dt3 = new Date(Date.UTC(2015, Month.November, 1, 1, 0, 0) + 7 * msPerHour);
     33    assertDateTime(dt3, "Sun Nov 01 2015 01:00:00 GMT-0700 (MST)", "Mountain Standard Time");
     34 });
     35 
     36 // bug 637244
     37 inTimeZone("Europe/Helsinki", () => {
     38    let dt1 = new Date(2016, Month.March, 27, 2, 59);
     39    assertDateTime(dt1, "Sun Mar 27 2016 02:59:00 GMT+0200 (EET)", "Eastern European Standard Time");
     40 
     41    let dt2 = new Date(2016, Month.March, 27, 3, 0);
     42    assertDateTime(dt2, "Sun Mar 27 2016 04:00:00 GMT+0300 (EEST)", "Eastern European Summer Time");
     43 });
     44 
     45 // bug 637244
     46 inTimeZone("Asia/Novosibirsk", () => {
     47    let dt1 = new Date(1984, Month.April, 1, -1);
     48    assertDateTime(dt1, "Sat Mar 31 1984 23:00:00 GMT+0700 (Krasnoyarsk Standard Time)", "+07", "Novosibirsk Standard Time");
     49 
     50    let dt2 = new Date(1984, Month.April, 1);
     51    assertDateTime(dt2, "Sun Apr 01 1984 01:00:00 GMT+0800 (Krasnoyarsk Summer Time)", "+08", "Novosibirsk Summer Time");
     52 });
     53 
     54 // bug 718175
     55 inTimeZone("Europe/London", () => {
     56    let dt = new Date(0);
     57    assertEq(dt.getHours(), 1);
     58 });
     59 
     60 // bug 719274
     61 inTimeZone("Pacific/Auckland", () => {
     62    let dt = new Date(2012, Month.January, 19, 12, 54, 27);
     63    assertDateTime(dt, "Thu Jan 19 2012 12:54:27 GMT+1300 (NZDT)", "New Zealand Daylight Time");
     64 });
     65 
     66 // bug 742427
     67 inTimeZone("Europe/Paris", () => {
     68    let dt1 = new Date(2009, Month.March, 29, 1, 0, 0);
     69    assertDateTime(dt1, "Sun Mar 29 2009 01:00:00 GMT+0100 (CET)", "Central European Standard Time");
     70    dt1.setHours(dt1.getHours() + 1);
     71    assertDateTime(dt1, "Sun Mar 29 2009 03:00:00 GMT+0200 (CEST)", "Central European Summer Time");
     72 
     73    let dt2 = new Date(2010, Month.March, 29, 1, 0, 0);
     74    assertDateTime(dt2, "Mon Mar 29 2010 01:00:00 GMT+0200 (CEST)", "Central European Summer Time");
     75    dt2.setHours(dt2.getHours() + 1);
     76    assertDateTime(dt2, "Mon Mar 29 2010 02:00:00 GMT+0200 (CEST)", "Central European Summer Time");
     77 });
     78 inTimeZone("America/New_York", () => {
     79    let dt = new Date(2009, Month.March, 8, 1, 0, 0);
     80    assertDateTime(dt, "Sun Mar 08 2009 01:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     81    dt.setHours(dt.getHours() + 1);
     82    assertDateTime(dt, "Sun Mar 08 2009 03:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
     83 });
     84 inTimeZone("America/Denver", () => {
     85    let dt = new Date(2009, Month.March, 8, 1, 0, 0);
     86    assertDateTime(dt, "Sun Mar 08 2009 01:00:00 GMT-0700 (MST)", "Mountain Standard Time");
     87    dt.setHours(dt.getHours() + 1);
     88    assertDateTime(dt, "Sun Mar 08 2009 03:00:00 GMT-0600 (MDT)", "Mountain Daylight Time");
     89 });
     90 inTimeZone("America/New_York", () => {
     91    let dt1 = new Date(Date.UTC(2008, Month.March, 9, 0, 0, 0) + 5 * msPerHour);
     92    assertDateTime(dt1, "Sun Mar 09 2008 00:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     93 
     94    let dt2 = new Date(Date.UTC(2008, Month.March, 9, 1, 0, 0) + 5 * msPerHour);
     95    assertDateTime(dt2, "Sun Mar 09 2008 01:00:00 GMT-0500 (EST)", "Eastern Standard Time");
     96 
     97    let dt3 = new Date(Date.UTC(2008, Month.March, 9, 4, 0, 0) + 4 * msPerHour);
     98    assertDateTime(dt3, "Sun Mar 09 2008 04:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
     99 });
    100 inTimeZone("Europe/Paris", () => {
    101    let dt1 = new Date(Date.UTC(2008, Month.March, 30, 0, 0, 0) - 1 * msPerHour);
    102    assertDateTime(dt1, "Sun Mar 30 2008 00:00:00 GMT+0100 (CET)", "Central European Standard Time");
    103 
    104    let dt2 = new Date(Date.UTC(2008, Month.March, 30, 1, 0, 0) - 1 * msPerHour);
    105    assertDateTime(dt2, "Sun Mar 30 2008 01:00:00 GMT+0100 (CET)", "Central European Standard Time");
    106 
    107    let dt3 = new Date(Date.UTC(2008, Month.March, 30, 3, 0, 0) - 2 * msPerHour);
    108    assertDateTime(dt3, "Sun Mar 30 2008 03:00:00 GMT+0200 (CEST)", "Central European Summer Time");
    109 
    110    let dt4 = new Date(Date.UTC(2008, Month.March, 30, 4, 0, 0) - 2 * msPerHour);
    111    assertDateTime(dt4, "Sun Mar 30 2008 04:00:00 GMT+0200 (CEST)", "Central European Summer Time");
    112 });
    113 
    114 // bug 802627
    115 inTimeZone("America/New_York", () => {
    116    let dt = new Date(0);
    117    assertDateTime(dt, "Wed Dec 31 1969 19:00:00 GMT-0500 (EST)", "Eastern Standard Time");
    118 });
    119 
    120 // bug 819820
    121 inTimeZone("Europe/London", () => {
    122    let dt1 = new Date(Date.UTC(2012, Month.October, 28, 0, 59, 59));
    123    assertDateTime(dt1, "Sun Oct 28 2012 01:59:59 GMT+0100 (BST)", "British Summer Time");
    124 
    125    let dt2 = new Date(Date.UTC(2012, Month.October, 28, 1, 0, 0));
    126    assertDateTime(dt2, "Sun Oct 28 2012 01:00:00 GMT+0000 (GMT)", "Greenwich Mean Time");
    127 
    128    let dt3 = new Date(Date.UTC(2012, Month.October, 28, 1, 59, 59));
    129    assertDateTime(dt3, "Sun Oct 28 2012 01:59:59 GMT+0000 (GMT)", "Greenwich Mean Time");
    130 
    131    let dt4 = new Date(Date.UTC(2012, Month.October, 28, 2, 0, 0));
    132    assertDateTime(dt4, "Sun Oct 28 2012 02:00:00 GMT+0000 (GMT)", "Greenwich Mean Time");
    133 });
    134 
    135 // bug 879261
    136 inTimeZone("America/New_York", () => {
    137    let dt1 = new Date(1362891600000);
    138    assertDateTime(dt1, "Sun Mar 10 2013 00:00:00 GMT-0500 (EST)", "Eastern Standard Time");
    139 
    140    let dt2 = new Date(dt1.setHours(dt1.getHours() + 24));
    141    assertDateTime(dt2, "Mon Mar 11 2013 00:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
    142 });
    143 inTimeZone("America/Los_Angeles", () => {
    144    let dt1 = new Date(2014, Month.January, 1);
    145    assertDateTime(dt1, "Wed Jan 01 2014 00:00:00 GMT-0800 (PST)", "Pacific Standard Time");
    146 
    147    let dt2 = new Date(2014, Month.August, 1);
    148    assertDateTime(dt2, "Fri Aug 01 2014 00:00:00 GMT-0700 (PDT)", "Pacific Daylight Time");
    149 });
    150 inTimeZone("America/New_York", () => {
    151    let dt1 = new Date(2016, Month.October, 14, 3, 5, 9);
    152    assertDateTime(dt1, "Fri Oct 14 2016 03:05:09 GMT-0400 (EDT)", "Eastern Daylight Time");
    153 
    154    let dt2 = new Date(2016, Month.January, 9, 23, 26, 40);
    155    assertDateTime(dt2, "Sat Jan 09 2016 23:26:40 GMT-0500 (EST)", "Eastern Standard Time");
    156 });
    157 
    158 // bug 994086
    159 inTimeZone("Europe/Vienna", () => {
    160    let dt1 = new Date(2014, Month.March, 30, 2, 0);
    161    assertDateTime(dt1, "Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)", "Central European Summer Time");
    162 
    163    let dt2 = new Date(2014, Month.March, 30, 3, 0);
    164    assertDateTime(dt2, "Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)", "Central European Summer Time");
    165 
    166    let dt3 = new Date(2014, Month.March, 30, 4, 0);
    167    assertDateTime(dt3, "Sun Mar 30 2014 04:00:00 GMT+0200 (CEST)", "Central European Summer Time");
    168 });
    169 
    170 // bug 1084434
    171 inTimeZone("America/Sao_Paulo", () => {
    172    let dt = new Date(2014, Month.October, 19);
    173    assertEq(dt.getDate(), 19);
    174    assertEq(dt.getHours(), 1);
    175    assertDateTime(dt, "Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)", "-02", "Brasilia Summer Time");
    176 });
    177 
    178 // bug 1084547
    179 inTimeZone("America/New_York", () => {
    180    let dt = new Date(Date.parse("2014-11-02T02:00:00-04:00"));
    181    assertDateTime(dt, "Sun Nov 02 2014 01:00:00 GMT-0500 (EST)", "Eastern Standard Time");
    182 
    183    dt.setMilliseconds(0);
    184    assertDateTime(dt, "Sun Nov 02 2014 01:00:00 GMT-0400 (EDT)", "Eastern Daylight Time");
    185 });
    186 
    187 // bug 1118690
    188 inTimeZone("Europe/London", () => {
    189    let dt = new Date(1965, Month.January, 1);
    190    assertEq(dt.getFullYear(), 1965);
    191 });
    192 
    193 // bug 1155096
    194 inTimeZone("Europe/Moscow", () => {
    195    let dt1 = new Date(1981, Month.March, 32);
    196    assertEq(dt1.getDate(), 1);
    197 
    198    let dt2 = new Date(1982, Month.March, 32);
    199    assertEq(dt2.getDate(), 1);
    200 
    201    let dt3 = new Date(1983, Month.March, 32);
    202    assertEq(dt3.getDate(), 1);
    203 
    204    let dt4 = new Date(1984, Month.March, 32);
    205    assertEq(dt4.getDate(), 1);
    206 });
    207 
    208 // bug 1284507
    209 inTimeZone("Atlantic/Azores", () => {
    210    let dt1 = new Date(2017, Month.March, 25, 0, 0, 0);
    211    assertDateTime(dt1, "Sat Mar 25 2017 00:00:00 GMT-0100 (AZOT)", "-01", "Azores Standard Time");
    212 
    213    let dt2 = new Date(2016, Month.October, 30, 0, 0, 0);
    214    assertDateTime(dt2, "Sun Oct 30 2016 00:00:00 GMT+0000 (AZOST)", "+00", "Azores Summer Time");
    215 
    216    let dt3 = new Date(2016, Month.October, 30, 23, 0, 0);
    217    assertDateTime(dt3, "Sun Oct 30 2016 23:00:00 GMT-0100 (AZOT)", "-01", "Azores Standard Time");
    218 });
    219 
    220 // bug 1303306
    221 inTimeZone("America/New_York", () => {
    222    let dt = new Date(2016, Month.September, 15, 16, 14, 48);
    223    assertDateTime(dt, "Thu Sep 15 2016 16:14:48 GMT-0400 (EDT)", "Eastern Daylight Time");
    224 });
    225 
    226 // bug 1317364
    227 inTimeZone("America/Los_Angeles", () => {
    228    let dt = new Date(2016, Month.March, 13, 2, 30, 0, 0);
    229    assertDateTime(dt, "Sun Mar 13 2016 03:30:00 GMT-0700 (PDT)", "Pacific Daylight Time");
    230 
    231    let dt2 = new Date(2016, Month.January, 5, 0, 30, 30, 500);
    232    assertDateTime(dt2, "Tue Jan 05 2016 00:30:30 GMT-0800 (PST)", "Pacific Standard Time");
    233 
    234    let dt3 = new Date(dt2.getTime());
    235    dt3.setMonth(dt2.getMonth() + 2);
    236    dt3.setDate(dt2.getDate() + 7 + 1);
    237    dt3.setHours(dt2.getHours() + 2);
    238 
    239    assertEq(dt3.getHours(), 3);
    240 });
    241 
    242 // bug 1335818
    243 inTimeZone("Asia/Jerusalem", () => {
    244    let dt1 = new Date(2013, Month.March, 22, 1, 0, 0, 0);
    245    assertDateTime(dt1, "Fri Mar 22 2013 01:00:00 GMT+0200 (IST)", "Israel Standard Time");
    246 
    247    let dt2 = new Date(2013, Month.March, 22, 2, 0, 0, 0);
    248    assertDateTime(dt2, "Fri Mar 22 2013 02:00:00 GMT+0200 (IST)", "Israel Standard Time");
    249 
    250    let dt3 = new Date(2013, Month.March, 22, 3, 0, 0, 0);
    251    assertDateTime(dt3, "Fri Mar 22 2013 03:00:00 GMT+0200 (IST)", "Israel Standard Time");
    252 
    253    let dt4 = new Date(2013, Month.March, 29, 1, 0, 0, 0);
    254    assertDateTime(dt4, "Fri Mar 29 2013 01:00:00 GMT+0200 (IST)", "Israel Standard Time");
    255 
    256    let dt5 = new Date(2013, Month.March, 29, 2, 0, 0, 0);
    257    assertDateTime(dt5, "Fri Mar 29 2013 03:00:00 GMT+0300 (IDT)", "Israel Daylight Time");
    258 
    259    let dt6 = new Date(2013, Month.March, 29, 3, 0, 0, 0);
    260    assertDateTime(dt6, "Fri Mar 29 2013 03:00:00 GMT+0300 (IDT)", "Israel Daylight Time");
    261 });
    262 
    263 // bug 1355272
    264 inTimeZone("America/Los_Angeles", () => {
    265    let dt = new Date(2017, Month.April, 10, 17, 25, 07);
    266    assertDateTime(dt, "Mon Apr 10 2017 17:25:07 GMT-0700 (PDT)", "Pacific Daylight Time");
    267 });
    268 
    269 if (typeof reportCompare === "function")
    270    reportCompare(true, true);