tor-browser

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

test_intlUtils_getDisplayNames.html (6467B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1341994
      5 -->
      6 <head>
      7  <title>Test for Bug 1341994 </title>
      8  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
     10 </head>
     11 <body>
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1341994 ">Mozilla Bug 1341994</a>
     13 <p id="display"></p>
     14 <div id="content" style="display: none">
     15 <script>
     16 
     17 var testData = [
     18  {
     19    locales: ["en-US"],
     20    options: {
     21      type: "language",
     22    },
     23    expected: {
     24      locale: "en-US",
     25      type: "language",
     26      style: "long",
     27      calendar: "gregory",
     28      values: [],
     29    }
     30  },
     31  {
     32    locales: ["en-US"],
     33    options: {
     34      type: "weekday",
     35      style: "narrow",
     36      calendar: "gregory",
     37      keys: [3],
     38    },
     39    expected: {
     40      locale: "en-US",
     41      type: "weekday",
     42      style: "narrow",
     43      calendar: "gregory",
     44      values: ["W"]
     45    }
     46  },
     47 
     48  {
     49    locales: ["fr"],
     50    options: {
     51      type: "dateTimeField",
     52      keys: ["year", "day"],
     53    },
     54    expected: {
     55      locale: "fr",
     56      type: "dateTimeField",
     57      style: "long",
     58      calendar: "gregory",
     59      values: ["année", "jour"],
     60    }
     61  },
     62  {
     63    locales: ["fr"],
     64    options: {
     65      type: "month",
     66      keys: [10],
     67    },
     68    expected: {
     69      locale: "fr",
     70      type: "month",
     71      style: "long",
     72      calendar: "gregory",
     73      values: ["octobre"],
     74    }
     75  },
     76  {
     77    locales: ["fr"],
     78    options: {
     79      type: "weekday",
     80      keys: [6],
     81    },
     82    expected: {
     83      locale: "fr",
     84      type: "weekday",
     85      style: "long",
     86      calendar: "gregory",
     87      values: ["samedi"],
     88    }
     89  },
     90  {
     91    locales: ["fr"],
     92    options: {
     93      type: "dayPeriod",
     94      keys: ["pm"],
     95    },
     96    expected: {
     97      locale: "fr",
     98      type: "dayPeriod",
     99      style: "long",
    100      calendar: "gregory",
    101      values: ["PM"],
    102    }
    103  },
    104 
    105  {
    106    locales: ["it"],
    107    options: {
    108      type: "weekday",
    109      style: "short",
    110      keys: [4],
    111    },
    112    expected: {
    113      locale: "it",
    114      type: "weekday",
    115      style: "short",
    116      calendar: "gregory",
    117      values: ["gio"],
    118    }
    119  },
    120  {
    121    locales: ["it"],
    122    options: {
    123      type: "month",
    124      style: "short",
    125      keys: [8],
    126    },
    127    expected: {
    128      locale: "it",
    129      type: "month",
    130      style: "short",
    131      calendar: "gregory",
    132      values: ["ago"],
    133    }
    134  },
    135  {
    136    locales: ["it"],
    137    options: {
    138      type: "dayPeriod",
    139      style: "short",
    140      keys: ["am"],
    141    },
    142    expected: {
    143      locale: "it",
    144      type: "dayPeriod",
    145      style: "short",
    146      calendar: "gregory",
    147      values: ["AM"],
    148    }
    149  },
    150  {
    151    locales: ["it"],
    152    options: {
    153      type: "dateTimeField",
    154      style: "short",
    155      keys: ["month"],
    156    },
    157    expected: {
    158      locale: "it",
    159      type: "dateTimeField",
    160      style: "short",
    161      calendar: "gregory",
    162      values: ["mese"],
    163    }
    164  },
    165 
    166  {
    167    locales: ["ar"],
    168    options: {
    169      type: "weekday",
    170      style: "long",
    171      keys: [4],
    172    },
    173    expected: {
    174      locale: "ar",
    175      type: "weekday",
    176      style: "long",
    177      calendar: "gregory",
    178      values: ["الخميس"],
    179    }
    180  },
    181  {
    182    locales: ["ar"],
    183    options: {
    184      type: "month",
    185      style: "long",
    186      keys: [8],
    187    },
    188    expected: {
    189      locale: "ar",
    190      type: "month",
    191      style: "long",
    192      calendar: "gregory",
    193      values: ["أغسطس"],
    194    }
    195  },
    196  {
    197    locales: ["ar"],
    198    options: {
    199      type: "dayPeriod",
    200      style: "long",
    201      keys: ["am"],
    202    },
    203    expected: {
    204      locale: "ar",
    205      type: "dayPeriod",
    206      style: "long",
    207      calendar: "gregory",
    208      values: ["ص"],
    209    }
    210  },
    211  {
    212    locales: ["ar"],
    213    options: {
    214      type: "dateTimeField",
    215      style: "long",
    216      keys: ["month"],
    217    },
    218    expected: {
    219      locale: "ar",
    220      type: "dateTimeField",
    221      style: "long",
    222      calendar: "gregory",
    223      values: ["الشهر"],
    224    }
    225  },
    226 
    227  {
    228    locales: ["zh-TW"],
    229    options: {
    230      type: "weekday",
    231      style: "abbreviated",
    232      keys: [4],
    233    },
    234    expected: {
    235      locale: "zh-TW",
    236      type: "weekday",
    237      style: "abbreviated",
    238      calendar: "gregory",
    239      values: ["週四"],
    240    }
    241  },
    242  {
    243    locales: ["zh-TW"],
    244    options: {
    245      type: "month",
    246      style: "short",
    247      keys: [8],
    248    },
    249    expected: {
    250      locale: "zh-TW",
    251      type: "month",
    252      style: "short",
    253      calendar: "gregory",
    254      values: ["8月"],
    255    }
    256  },
    257  {
    258    locales: ["zh-TW"],
    259    options: {
    260      type: "dayPeriod",
    261      style: "short",
    262      keys: ["am"],
    263    },
    264    expected: {
    265      locale: "zh-TW",
    266      type: "dayPeriod",
    267      style: "short",
    268      calendar: "gregory",
    269      values: ["上午"],
    270    }
    271  },
    272  {
    273    locales: ["zh-TW"],
    274    options: {
    275      type: "dateTimeField",
    276      style: "short",
    277      keys: ["month"],
    278    },
    279    expected: {
    280      locale: "zh-TW",
    281      type: "dateTimeField",
    282      style: "short",
    283      calendar: "gregory",
    284      values: ["月"],
    285    }
    286  },
    287 
    288  /* Invalid input */
    289 
    290  {
    291    locales: ["en-US"],
    292    options: {
    293      type: "weekday",
    294      style: "",
    295      keys: [4]
    296    },
    297    expected: {
    298      exception: true
    299    }
    300  },
    301  {
    302    locales: ["foo-X"],
    303    options: {
    304      type: "weekday",
    305      keys: [4]
    306    },
    307    expected: {
    308      exception: true
    309    }
    310  },
    311  {
    312    locales: ["en-US"],
    313    options: {
    314      keys: [
    315        ""
    316      ],
    317    },
    318    expected: {
    319      exception: true
    320    }
    321  },
    322 ]
    323 
    324 let intlUtils = window.intlUtils;
    325 ok(intlUtils, "window.intlUtils should exist");
    326 
    327 for (let { locales, options, expected } of testData) {
    328  try {
    329    let result = intlUtils.getDisplayNames(locales, options);
    330 
    331    is(result.locale, expected.locale, "locale is " + expected.locale);
    332    is(result.type, expected.type, "type is " + expected.type);
    333    is(result.style, expected.style, "style is " + expected.style);
    334    is(result.calendar, expected.calendar, "calendar is " + expected.calendar);
    335 
    336    let values = result.values;
    337    let expectedValues = expected.values;
    338 
    339    is(values.length, expectedValues.length, "values' length is " + expectedValues.length);
    340 
    341    for (let i = 0; i < expectedValues.length; ++i) {
    342      is(values[i], expectedValues[i], "value is " + expectedValues[i]);
    343    }
    344  } catch (e) {
    345    ok(expected.exception, "Exception expected : " + e);
    346  }
    347 }
    348 
    349 </script>
    350 </body>
    351 </html>