tor-browser

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

non-iana-canon.js (2189B)


      1 // Copyright 2018 André Bargull; Igalia, S.L. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 // Slip from intl402/Locale/constructor-non-iana-canon.js
      5 /*---
      6 esid: sec-intl.getcanonicallocales
      7 description: >
      8    Verifies canonicalization, of specific tags.
      9 info: |
     10    ApplyOptionsToTag( tag, options )
     11    10. Return CanonicalizeLanguageTag(tag).
     12 ---*/
     13 
     14 // Test some language tags where we know that either CLDR or ICU produce
     15 // different results compared to the canonicalization specified in RFC 5646.
     16 var testData = [
     17    {
     18        tag: "mo",
     19        canonical: "ro",
     20    },
     21    {
     22        tag: "es-ES-preeuro",
     23    },
     24    {
     25        tag: "uz-UZ-cyrillic",
     26    },
     27    {
     28        tag: "posix",
     29    },
     30    {
     31        tag: "hi-direct",
     32    },
     33    {
     34        tag: "zh-pinyin",
     35    },
     36    {
     37        tag: "zh-stroke",
     38    },
     39    {
     40        tag: "aar-x-private",
     41        // "aar" should be canonicalized into "aa" because "aar" matches the type attribute of
     42        // a languageAlias element in 
     43        // https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml
     44        canonical: "aa-x-private", 
     45    },
     46    {
     47        tag: "heb-x-private",
     48        // "heb" should be canonicalized into "he" because "heb" matches the type attribute of
     49        // a languageAlias element in 
     50        // https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml
     51        canonical: "he-x-private",
     52    },
     53    {
     54        tag: "de-u-kf",
     55    },
     56    {
     57        tag: "ces",
     58        // "ces" should be canonicalized into "cs" because "ces" matches the type attribute of
     59        // a languageAlias element in 
     60        // https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml
     61        canonical: "cs",
     62    },
     63    {
     64        tag: "hy-arevela",
     65        canonical: "hy",
     66    },
     67    {
     68        tag: "hy-arevmda",
     69        canonical: "hyw",
     70    },
     71 ];
     72 
     73 for (const {tag, canonical = tag} of testData) {
     74    assert.sameValue(
     75      Intl.getCanonicalLocales(tag)[0],
     76      canonical,
     77      'The value of Intl.getCanonicalLocales(tag)[0] equals the value of `canonical`'
     78    );
     79 }
     80 
     81 reportCompare(0, 0);