tor-browser

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

extended-time-zone-names.js (4259B)


      1 // |reftest| skip-if(!this.hasOwnProperty("Intl"))
      2 
      3 const tests = {
      4  "America/Los_Angeles": {
      5    date: Date.UTC(2021, 5-1, 20, 12, 0, 0),
      6    timeZoneName: "longGeneric",
      7    locales: {
      8      "en": "5/20/2021, Pacific Time",
      9      "de": "20.5.2021, Nordamerikanische Westküstenzeit",
     10      "fr": "20/05/2021 à heure du Pacifique nord-américain",
     11      "ar-EG": "٢٠‏/٥‏/٢٠٢١ توقيت المحيط الهادي",
     12      "th": "20/5/2564 เวลาแปซิฟิกในอเมริกาเหนือ",
     13      "zh": "2021/5/20 北美太平洋时间",
     14      "ja": "2021/5/20 アメリカ太平洋時間",
     15    }
     16  },
     17  "America/Los_Angeles": {
     18    date: Date.UTC(2021, 5-1, 20, 12, 0, 0),
     19    timeZoneName: "shortGeneric",
     20    locales: {
     21      "en": "5/20/2021, PT",
     22      "de": "20.5.2021, Los Angeles Zeit",
     23      "fr": "20/05/2021 à heure : Los Angeles",
     24      "ar-EG": "٢٠‏/٥‏/٢٠٢١ توقيت Los Angeles",
     25      "th": "20/5/2564 เวลาLos Angeles",
     26      "zh": "2021/5/20 Los Angeles时间",
     27      "ja": "2021/5/20 Los Angeles時間",
     28    }
     29  },
     30  "America/Los_Angeles": {
     31    date: Date.UTC(2021, 5-1, 20, 12, 0, 0),
     32    timeZoneName: "longOffset",
     33    locales: {
     34      "en": "5/20/2021, GMT-07:00",
     35      "de": "20.5.2021, GMT-07:00",
     36      "fr": "20/05/2021 à UTC−07:00",
     37      "ar-EG": "٢٠‏/٥‏/٢٠٢١ غرينتش-٠٧:٠٠",
     38      "th": "20/5/2564 GMT-07:00",
     39      "zh": "2021/5/20 GMT-07:00",
     40      "ja": "2021/5/20 GMT-07:00",
     41    }
     42  },
     43  "America/Los_Angeles": {
     44    date: Date.UTC(2021, 5-1, 20, 12, 0, 0),
     45    timeZoneName: "shortOffset",
     46    locales: {
     47      "en": "5/20/2021, GMT-7",
     48      "de": "20.5.2021, GMT-7",
     49      "fr": "20/05/2021 UTC−7",
     50      "ar-EG": "٢٠‏/٥‏/٢٠٢١، غرينتش-٧",
     51      "th": "20/5/2564 GMT-7",
     52      "zh": "2021/5/20 GMT-7",
     53      "ja": "2021/5/20 GMT-7",
     54    }
     55  },
     56  "Europe/Berlin": {
     57    date: Date.UTC(2021, 5-1, 20, 12, 0, 0),
     58    timeZoneName: "longGeneric",
     59    locales: {
     60      "en": "5/20/2021, Central European Time",
     61      "de": "20.5.2021, Mitteleuropäische Zeit",
     62      "fr": "20/05/2021 à heure d’Europe centrale",
     63      "ar-EG": "٢٠‏/٥‏/٢٠٢١ توقيت وسط أوروبا",
     64      "th": "20/5/2564 เวลายุโรปกลาง",
     65      "zh": "2021/5/20 中欧时间",
     66      "ja": "2021/5/20 中央ヨーロッパ時間",
     67    }
     68  },
     69  "Europe/Berlin": {
     70    date: Date.UTC(2021, 5-1, 20, 12, 0, 0),
     71    timeZoneName: "shortGeneric",
     72    locales: {
     73      "en": "5/20/2021, Germany Time",
     74      "de": "20.5.2021, MEZ",
     75      "fr": "20/05/2021 heure : Allemagne",
     76      "ar-EG": "٢٠‏/٥‏/٢٠٢١، توقيت ألمانيا",
     77      "th": "20/5/2564 เวลาเยอรมนี",
     78      "zh": "2021/5/20 德国时间",
     79      "ja": "2021/5/20 ドイツ時間",
     80    }
     81  },
     82  "Africa/Monrovia": {
     83    date: Date.UTC(1971, 12-1, 6, 12, 0, 0),
     84    timeZoneName: "longOffset",
     85    locales: {
     86      "en": "12/6/1971, GMT-00:44:30",
     87      "de": "6.12.1971, GMT-00:44:30",
     88      "fr": "06/12/1971 UTC−00:44:30",
     89      "ar-EG": "٦‏/١٢‏/١٩٧١ غرينتش-٠٠:٤٤:٣٠",
     90      "th": "6/12/2514 GMT-00:44:30",
     91      "zh": "1971/12/6 GMT-00:44:30",
     92      "ja": "1971/12/6 GMT-00:44:30",
     93    }
     94  },
     95  "Africa/Monrovia": {
     96    date: Date.UTC(1971, 12-1, 6, 12, 0, 0),
     97    timeZoneName: "shortOffset",
     98    locales: {
     99      "en": "12/6/1971, GMT-0:44:30",
    100      "de": "6.12.1971, GMT-0:44:30",
    101      "fr": "06/12/1971 UTC−0:44:30",
    102      "ar-EG": "٦‏/١٢‏/١٩٧١، غرينتش-٠:٤٤:٣٠",
    103      "th": "6/12/2514 GMT-0:44:30",
    104      "zh": "1971/12/6 GMT-0:44:30",
    105      "ja": "1971/12/6 GMT-0:44:30",
    106    }
    107  },
    108 };
    109 
    110 for (let [timeZone, {timeZoneName, date, locales}] of Object.entries(tests)) {
    111  for (let [locale, expected] of Object.entries(locales)) {
    112    let dtf = new Intl.DateTimeFormat(locale, {timeZone, timeZoneName});
    113    assertEq(dtf.format(date), expected);
    114 
    115    let parts = dtf.formatToParts(date);
    116    assertEq(parts.map(p => p.value).join(""), expected);
    117    assertEq(parts.filter(p => p.type === "timeZoneName").length, 1);
    118 
    119    assertEq(dtf.resolvedOptions().timeZoneName, timeZoneName);
    120  }
    121 }
    122 
    123 if (typeof reportCompare === "function")
    124  reportCompare(0, 0, "ok");