tor-browser

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

time-zones-limits.js (2525B)


      1 // |reftest| skip-if(winWidget||!this.hasOwnProperty("Intl")) -- Windows doesn't accept IANA names for the TZ env variable; Requires ICU time zone support
      2 
      3 // Create dates at the minimum and maximum allowed time values. Ensure the same
      4 // result is returned if the input is a UTC value and if the inputs are individual
      5 // date-time parts.
      6 
      7 const MinTime = -8640000000000000;
      8 const MaxTime = 8640000000000000;
      9 
     10 function dateFromParts(dt) {
     11  return new Date(
     12    dt.getFullYear(),
     13    dt.getMonth(),
     14    dt.getDate(),
     15    dt.getHours(),
     16    dt.getMinutes(),
     17    dt.getSeconds(),
     18    dt.getMilliseconds()
     19  );
     20 }
     21 
     22 inTimeZone("America/Los_Angeles", () => {
     23  let dtMin = new Date(MinTime);
     24  assertDateTime(dtMin, "Mon Apr 19 -271821 16:07:02 GMT-0752 (Pacific Standard Time)");
     25  assertEq(dtMin.getTimezoneOffset(), 472.96666666666664);
     26  assertEq(dtMin.getTime(), MinTime);
     27 
     28  let dtMin2 = dateFromParts(dtMin);
     29  assertDateTime(dtMin2, "Mon Apr 19 -271821 16:07:02 GMT-0752 (Pacific Standard Time)");
     30  assertEq(dtMin2.getTimezoneOffset(), 472.96666666666664);
     31  assertEq(dtMin2.getTime(), MinTime);
     32 
     33  let dtMax = new Date(MaxTime);
     34  assertDateTime(dtMax, "Fri Sep 12 275760 17:00:00 GMT-0700 (Pacific Daylight Time)");
     35  assertEq(dtMax.getTimezoneOffset(), 420);
     36  assertEq(dtMax.getTime(), MaxTime);
     37 
     38  let dtMax2 = dateFromParts(dtMax);
     39  assertDateTime(dtMax2, "Fri Sep 12 275760 17:00:00 GMT-0700 (Pacific Daylight Time)");
     40  assertEq(dtMax2.getTimezoneOffset(), 420);
     41  assertEq(dtMax2.getTime(), MaxTime);
     42 });
     43 
     44 inTimeZone("Europe/Berlin", () => {
     45  let dtMin = new Date(MinTime);
     46  assertDateTime(dtMin, "Tue Apr 20 -271821 00:53:28 GMT+0053 (Central European Standard Time)");
     47  assertEq(dtMin.getTimezoneOffset(), -53.46666666666667);
     48  assertEq(dtMin.getTime(), MinTime);
     49 
     50  let dtMin2 = dateFromParts(dtMin);
     51  assertDateTime(dtMin2, "Tue Apr 20 -271821 00:53:28 GMT+0053 (Central European Standard Time)");
     52  assertEq(dtMin2.getTimezoneOffset(), -53.46666666666667);
     53  assertEq(dtMin2.getTime(), MinTime);
     54 
     55  let dtMax = new Date(MaxTime);
     56  assertDateTime(dtMax, "Sat Sep 13 275760 02:00:00 GMT+0200 (Central European Summer Time)");
     57  assertEq(dtMax.getTimezoneOffset(), -120);
     58  assertEq(dtMax.getTime(), MaxTime);
     59 
     60  let dtMax2 = dateFromParts(dtMax);
     61  assertDateTime(dtMax2, "Sat Sep 13 275760 02:00:00 GMT+0200 (Central European Summer Time)");
     62  assertEq(dtMax2.getTimezoneOffset(), -120);
     63  assertEq(dtMax2.getTime(), MaxTime);
     64 });
     65 
     66 if (typeof reportCompare === "function")
     67  reportCompare(true, true);