tor-browser

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

time.js (1803B)


      1 // |reftest| skip-if(!this.hasOwnProperty("Temporal")||!this.hasOwnProperty("Intl"))
      2 
      3 // Test Temporal types which can produce time formats.
      4 
      5 const locales = [
      6  "en",
      7  "de",
      8  "fr",
      9  "es",
     10  "ar",
     11  "th",
     12  "zh",
     13  "ja",
     14 ];
     15 
     16 const options = [
     17  {
     18    hour: "2-digit",
     19    minute: "numeric",
     20    second: "numeric",
     21    fractionalSecondDigits: 3,
     22  },
     23  {
     24    hour: "numeric",
     25    minute: "numeric",
     26    second: "numeric",
     27  },
     28  {
     29    hour: "numeric",
     30    minute: "numeric",
     31  },
     32 
     33  {
     34    dayPeriod: "long",
     35    hour: "numeric",
     36    minute: "numeric",
     37    second: "numeric",
     38    fractionalSecondDigits: 3,
     39  },
     40  {
     41    dayPeriod: "long",
     42    hour: "numeric",
     43    minute: "numeric",
     44    second: "numeric",
     45  },
     46  {
     47    dayPeriod: "short",
     48    hour: "2-digit",
     49    minute: "numeric",
     50  },
     51  {
     52    dayPeriod: "narrow",
     53    hour: "numeric",
     54  },
     55 
     56  {
     57    minute: "2-digit",
     58    second: "2-digit",
     59  },
     60 ];
     61 
     62 const timeZone = "UTC";
     63 
     64 let date = new Date(0);
     65 let instant = date.toTemporalInstant();
     66 let zonedDateTime = instant.toZonedDateTimeISO(timeZone);
     67 let plainDateTime = zonedDateTime.toPlainDateTime();
     68 let plainTime = zonedDateTime.toPlainTime();
     69 
     70 for (let locale of locales) {
     71  let expected = date.toLocaleTimeString(locale, {timeZone});
     72  assertEq(plainTime.toLocaleString(locale, {timeZone}), expected);
     73 
     74  for (let opts of options) {
     75    let expected = date.toLocaleTimeString(locale, {timeZone, ...opts});
     76    assertEq(instant.toLocaleString(locale, {timeZone, ...opts}), expected);
     77    assertEq(zonedDateTime.toLocaleString(locale, {...opts}), expected);
     78    assertEq(plainDateTime.toLocaleString(locale, {timeZone, ...opts}), expected);
     79    assertEq(plainTime.toLocaleString(locale, {timeZone, ...opts}), expected);
     80  }
     81 }
     82 
     83 if (typeof reportCompare === "function")
     84  reportCompare(true, true);